ffmpeg drawtext过滤器-使用文本创建透明背景


11

我目前正在使用drawtext过滤器。到目前为止,我仅使用drawtext选项配置成功使用正确的字体并将文本水平居中放置。我如何drawtext在视频上显示文本,如下所示?

ffmpeg

ffmpeg -i "/media/test/test.mp4" -vf drawtext="fontfile=/usr/share/fonts/truetype/open-sans/OpenSans-Regular.ttf:text='Title of this Video':x=(w-tw)/2:y=(h-th)/2"  /media/test_edited.mp4"

Answers:


21

使用drawbox该框,drawtext文本。

红甲虫

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:color=black@0.4:width=iw:height=48:t=fill, \
 drawtext=fontfile=OpenSans-Regular.ttf:text='Title of this Video':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th, \
 format=yuv420p" \
-c:v libx264 -c:a copy -movflags +faststart output.mp4
  • drawtext有一个box选项,但是据我所知,它不能是任意宽度,并且相对于文本大小,所以这就是为什么drawbox要使用它的原因。

  • format过滤器被用于改善的颜色drawbox区域; 否则,根据您的输入和输出格式,该区域可能看起来是不饱和的或单色的。format然后再次使用该过滤器,以确保输出文件的像素格式与所有播放器兼容。

  • 在此示例中,正在复制音频,因为您可能不想不必要地对其进行重新编码。

  • ffmpeg用户将不得不使用t=max而不是t=fill


完美,这超出了当前问题的范围,我可能需要创建一个新问题。关于如何添加snapchat计时器的任何建议。例如,我进行了一些测试,并且ffmpeg包含了一个testsrc视频源,其中包含一个计时器:ffplay -f lavfi -i testsrc。初始计时器的数字0为29x52像素,其从左上角开始的位置水平为256像素,垂直为94像素。我可以像这样裁剪一位数字的区域ffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
Code_Ed_Student 2015年

我在问题上添加了带有计时器的图像。计时器是根据视频的持续时间倒计时的。
Code_Ed_Student

是的,我将为此提出一个新问题。你是对的。30. 29, 28...等等
Code_Ed_Student 2015年


1
太好了,您是对的,它确实影响了盒子
Code_Ed_Student 2015年

1

ffmpeg -i C:\ Users \ Developer_2 \ Videos \ 2.mkv -vf drawtext =“ fontfile = C \:/ Regular.ttf:text ='apcis.tmou.org':fontcolor = white:fontsize = 24:box = 1:boxcolor=black@0.4:x = w-tw:y = h-th“ C:\ inetpub \ wwwroot \ videos \ 1.mp4


这是为我工作,但我使用boxcolor-white@0.9
saber tabatabaee yazdi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.