FFmpeg 在圆角框中添加文本

FFmpeg 在圆角框中添加文本

有没有办法使用 FFmpeg 向视频添加带有倒计时器的文本,其中文本包含在一个半透明的圆角框中,其中一个侧边框采用不同的颜色?

期望输出: 期望输出

使用drawtext过滤器,我能够得到盒子无圆角以及侧面颜色,但无法在输出视频中获得准确的颜色,十六进制值输入和输出之间似乎存在差异:

实际产量:
实际产量

我使用的命令:

ffmpeg -i input_video.mp4 -vf "drawtext=fontfile='/System/Library/Fonts/Supplemental/Tahoma Bold.ttf':text='%{eif\:20-t\:d} \:דועב ליחתי ןוטרסה':box=1:[email protected]:boxborderw=25:fontcolor=white:fontsize=18:x=100:y=90:enable='between(t,0,5)',drawtext=fontfile='/System/Library/Fonts/Supplemental/Tahoma Bold.ttf':text='|':box=1:boxcolor=#c2fd50:boxborderw=30|0|31|0:fontcolor=#c2fd50:x=333:y=95:fontsize=8:enable='between(t,0,5)'" -c:a copy output_video.mp4

答案1

没有drawtext圆角参数。有一些复杂的解决方法,例如这个但通过其他方式帮助自己会更容易。

例如,你可以放弃box它,而选择overlay使用图像进行过滤:

  1. 使用任何图形工具(如 GIMP 或 ImageMagick)为您的盒子创建图像。
  2. 将其添加为第二个输入:-i box.png
  3. 使用overlay具有相同enable参数、相似坐标的过滤器,例如
overlay=x=100,y=90:enable='between(t,0,5)'
  1. 确保它之前已drawtext被定义,以便位于其下的图层。

相关内容