使用drawtext
官方文档:FFmpeg Filters Documentation

开发环境mac,首先安装ffmpeg(时间可能会较长。。):

brew install ffmpeg

添加文字:

ffmpeg -i original.mp4 -vf drawtext=fontcolor=black:fontsize=50:text='Hello World':x=0:y=100 -y out.mp4. 

上面简单命令的相关参数:

  1. 输入文件 original.mp4
  2. fontcolor 文字颜色 为黑色black
  3. fontsize 文字大小 为50
  4. text 文本内容 “Hello Word”
  5. 文本所处的位置 x=0,y=50
  6. 输出文件 out.mp4

看一下输入文件:

输出结果:

对于文本的坐标位置(x,y)–>(0, 100)位置如下:

高阶使用

参考:https://ffmpeg.org/ffmpeg-utils.html

相关命令参数:

between(x, min, max)
Return 1 if x is greater than or equal to min and lesser than or equal to max, 0 otherwise.
...
gt(x, y)
Return 1 if x is greater than y, 0 otherwise.gte(x, y)
Return 1 if x is greater than or equal to y, 0 otherwise....
if(x, y)
Evaluate x, and if the result is non-zero return the result of the evaluation of y, return 0 otherwise.if(x, y, z)
Evaluate x, and if the result is non-zero return the evaluation result of y, otherwise the evaluation result of z.
...
lt(x, y)
Return 1 if x is lesser than y, 0 otherwise.lte(x, y)
Return 1 if x is lesser than or equal to y, 0 otherwise....
mod(x, y)
Compute the remainder of division of x by y.
  1. 前5秒加文字
ffmpeg -i bunny.mp4 -vf drawtext=fontcolor=white:fontsize=40:fontfile=msyh.ttf:line_spacing=7:text='test':x=50:y=50:enable='lte(t\,5)'   -y out.mp4. 
  1. 后五秒加文字
ffmpeg -i original.mp4 -vf drawtext=fontcolor=white:fontsize=40:fontfile=msyh.ttf:line_spacing=7:text='test':x=50:y=50:enable='gte(t\,5)'   -y out.mp4. 
  1. 第十秒到第二十秒加文字
ffmpeg -i original.mp4 -vf drawtext=fontcolor=white:fontsize=40:fontfile=msyh.ttf:line_spacing=7:text='test':x=50:y=50:enable='between(t\,10\,20)'   -y out.mp4. 

切片的时候使用 比如每个切片10秒 对第二个切片的前5秒 加文字 也就是总文件的10~15秒 当前切片的前5秒

ffmpeg -i original.mp4 -vf drawtext=fontcolor=white:fontsize=40:fontfile=msyh.ttf:line_spacing=7:text='test':x=50:y=50:enable='between(t+10\,0\,15)'   -y out.mp4 
  1. 显示5秒 然后5秒不显示 然后再显示5秒 然后5秒不显示; 依次。。
ffmpeg -i original.mp4 -vf drawtext=fontcolor=white:fontsize=40:fontfile=msyh.ttf:line_spacing=7:text='test':x=50:y=50:enable='lte(mod(t\,10)\,5)'   -y out.mp4
  1. 5秒显示hello 接着5秒显示world 依次。
ffmpeg -i original.mp4 -vf drawtext=fontcolor=red:fontsize=40:fontfile=msyh.ttf:line_spacing=7:text='hello':x=50:y=50:enable='lte(mod(t\,2)\,1)',drawtext=fontcolor=red:fontsize=40:fontfile=msyh.ttf:line_spacing=7:text='world':x=50:y=50:enable='gte(mod(t\,2)\,1)'  -y out.mp4


6. 文字从左向右移动 每帧移动2个像素

ffmpeg -i original.mp4 -vf drawtext="fontcolor=red:fontsize=60:fontfile=msyh.ttf:line_spacing=7:text=test:x=50+50*t:y=50"  -y out.mp4


7. 从下往上移动,每次移动100像素。

ffmpeg -i original.mp4 -vf drawtext="fontsize=50:fontfile=FreeSerif.ttf:text=lllllxxssldsfsf:y=h-100*t"  -y out.mp4

  1. 打印real time
ffmpeg -i original.mp4 -vf drawtext=fontcolor=red:fontsize=40:fontfile=msyh.ttf:line_spacing=7:text='%{localtime}':x=200:y=200 -y out.mp4

  1. 让文本先显示再逐渐消失
#!/bin/sh
DS=1.0 # display start
DE=10.0 # display end
FID=1.5 # fade in duration
FOD=5 # fade out duration
ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }"

能否同时输入多行文本呢??

References:
https://www.jianshu.com/p/d9d8ee30d621

ffmpeg给视频添加文字相关推荐

  1. FFmpeg给视频添加图片,文字(vb.net,类库——11)

    给视频添加文字,可以使用添加文字的方法,但是想添加中文字,那只能使用微软雅黑了 那我们想:文字可以被印到图片上,然后图片可以被轻而易举的添加到视频中 借助GDI+完成这一转换 Public Funct ...

  2. 使用ffmpeg给视频添加图片及文字水印

    1. 准备工具 MacBook Pro homebrew ffmpeg 2.工具安装 homebrew安装 说起homebrew确实是Mac上非常好用的一个工具,像什么CocoPods,node,ff ...

  3. ffmpeg给视频添加时间水印

    ffmpeg给视频添加时间水印 通过 drawtext 滤镜模块给视频添加时间水印 给视频添加时间水印 用来做片源调试,非常方便的查找和定位处理的哪一帧视频片源: 1. 添加本地时间水印 ffmpeg ...

  4. ffmpeg给视频添加文本

    1. 给视频添加文本 给视频添加文本有两种通常做法,一种是使用字幕实现,一种是使用overlay滤镜实现.但下面是通过使用drawtext滤镜,更高级的做法实现. 格式:ffmpeg  -i  inp ...

  5. 如何用AVS Video Editor给视频添加文字?

    一般我们在给视频进行后期处理的时候,会需要给这个视频加入文字或者主题标题.大家都知道,大部分视频剪辑软件都支持这个操作,但就有用户问,这个给AVS Video Editor添加文字该怎么做呢? 首先我 ...

  6. 如何在视频里添加文字?3个方法教你给视频添加文字

    在现今数字化的社会中,视频已经成为了我们生活和工作中不可或缺的一部分,而在视频制作和编辑过程中,添加文字是一个非常常见的操作,尤其是在一些商业和宣传广告视频中.例如当我们需要制作一个介绍产品或服务的视 ...

  7. java操作ffmpeg为视频添加背景音乐

    最近学习仿抖音微信小程序遇到一个坑,视频中使用以下语句为视频添加背景音乐 ffmpeg.exe -i input.mp4 -i 音乐.mp3 -t 7 -y 新视频.mp4 ,然而我怎么尝试都不行,上 ...

  8. 视频添加文字用什么软件,视频添加文字怎么弄

    随着plog.vlog等视频形式的兴起,视频添加文字变得越来越流行.与其选择插入音频解说,还不如加文字来得生动有趣.那么,视频添加文字用什么软件?视频添加文字怎么弄?接下来,本文会教大家使用一款简单好 ...

  9. 《FFmpeg Basics》中文版-10-为视频添加文字

    正文 视频中包含的文本数据可以显着提高其信息质量. 在视频中添加文字的相关介绍 如何将一些文本添加到视频输出中的两种常用方法是使用前一章中的字幕或叠加技术(overlay). 具有许多可能性的最高级选 ...

  10. python+moviepy音视频处理(二):视频添加文字(字幕)、视频添加汉字不显示问题

    目录 添加文字报错处理 中文不显示处理 代码实例 给视频添加滚动文字 添加文字报错处理 报错内容:OSError: MoviePy Error: creation of None failed bec ...

最新文章

  1. 人工神经网络:感知器
  2. 基于Opencv的图像单应性转换实战
  3. C语言作业关于高空坠球,浙大版《C语言程序设计(第3版)》题目集 习题4-8 高空坠球...
  4. 神经网络训练集两张图片之间的相互作用
  5. python基础教程:startswith()和endswith()的用法
  6. vue添加html开启服务器_vue服务端渲染添加缓存
  7. android 音乐播放器----获取专辑封面图片
  8. 量子计算机对未来影响,量子计算机和可控核聚变,哪一个对人类未来的影响更大?...
  9. 实用防火与防爆技术培训—总目录
  10. 网易云音乐刷了我的过去...
  11. Linux 并发测试工具 httpd-tools工具的安装和使用
  12. 【新书推荐】Interpretable Machine Learning with Python
  13. vue+flv.js实现视频播放
  14. BK7256,上海博通Wi-Fi6SOC芯片,高度集成-支持100w像素,详细资料
  15. 多IP服务器怎么样?多IP服务器有什么优势?
  16. 神武3 服务器维护公告,2021年3月19日更新公告
  17. Java中Object类的几个常用方法
  18. UnRaid利用iGVT-g插件实现Nas宿主机、虚拟机同时使用intel核显输出或硬解(硬件加速)功能
  19. 二叉树遍历之前序遍历,中序遍历,后序遍历
  20. Unity WebGL开发问题

热门文章

  1. 全球最快下载工具 XDM
  2. android文件管理器,10款优秀的Android文件管理器
  3. 墨卡托投影参数设置_横轴墨卡托投影坐标设置与导入导出CAD文件讲解
  4. 统计数据会说谎_统计数据对您说谎的三种方式
  5. 机械制图计算机类实验报告,机械cad实验报告总结
  6. 计算机控制系统与常规仪表控制系统的主要异同点,计算机控制技术复习资料-20210711112641.doc-原创力文档...
  7. Python常用中文字体对应名称
  8. PS_01_基本操作
  9. 那些我们卖掉的二手iPhone到底去哪了?
  10. 云计算中的第二个boss——网络虚拟化