ffmpeg给视频添加文本

Posted yongfengnice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg给视频添加文本相关的知识,希望对你有一定的参考价值。

1. 给视频添加文本

  给视频添加文本有两种通常做法,一种是使用字幕实现,一种是使用overlay滤镜实现。但下面是通过使用drawtext滤镜,更高级的做法实现。

    

  格式:ffmpeg  -i  input  -vf  drawtext=fontfile=arial.ttf:text=welcome output  //给输入源添加welcome文本,字体为arial.ttf

    比如:ffplay  -f  lavfi  -i  color=c=white  -vf  drawtext=fontfile=arial.ttf:text=welcome  //当前目录下需要存在arial.ttf,可以在/Windows/Fonts目录下找

 

2. 控制文本位置

  2-1. 水平位置的设置

    通过x参数控制。tw是文本的宽度,w是帧的宽度。水平居中:x=(w-tw)/2

  2-2. 垂直位置的设置

    通过y参数控制。th是文本的高度,h是帧的高度。 垂直居中:y=(h-th)/2

  比如:ffplay -f lavfi -i color=c=white -vf drawtext="fontfile=arial.ttf:text=\'welcome you\':x=(w-tw)/2:y=(h-th)/2"  //文本居中显示

 

3. 文本大小、颜色的设置

  文本大小使用fontsize参数。文本颜色使用fontcolor参数

  比如:ffplay -f lavfi -i color=c=white -vf drawtext="fontfile=arial.ttf:text=\'welcome you\':x=(w-tw)/2:y=(h-th)/2:fontcolor=green:fontsize=30"

 

4. 文本移动

  水平方向移动:向右x=w-t*n 向左x=t*n-tw //w帧的宽度,t参数,tw文本的宽度,n具体的数

    比如:ffplay -f lavfi -i color=c=white -vf drawtext="fontfile=arial.ttf:text=\'welcome you\':x=(w-t*50):y=(h-th)/2:fontcolor=green:fontsize=30"  //文本从右往左移动

       ffplay -f lavfi -i color=c=white -vf drawtext="fontfile=arial.ttf:text=\'welcome you\':x=(t*50-tw):y=(h-th)/2:fontcolor=green:fontsize=30"  //文本从左往右移动

  垂直方向移动:向右y=h-t*n 向左y=t*n-th //w帧的宽度,t参数,tw文本的宽度,n具体的数

    比如:ffplay -f lavfi -i color=c=white -vf drawtext="fontfile=arial.ttf:text=\'welcome you\':x=(w-tw)/2:y=(h-t*50):fontcolor=green:fontsize=30"  //文本从下往上移动

       ffplay -f lavfi -i color=c=white -vf drawtext="fontfile=arial.ttf:text=\'welcome you\':x=(w-tw)/2:y=(t*50-th):fontcolor=green:fontsize=30"  //文本从上往下移动

 

以上是关于ffmpeg给视频添加文本的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg之Filter:drawtext-给视频叠加文本

ffmpeg基本用法

黄聪:ffmpeg基本用法(转)

ffmpeg 给视频添加字幕,在视频的某个时间段加入声音特效和动画

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

ffmpeg 给音频添加封面,ffmpeg对音视频metadata 相关操作