如果我尝试同时添加文本和水印,则只会显示水印。
ffmpeg -i i.mp4 -vcodec libx264 -f mp4
-vf drawtext="fontfile=/[...]/share/fonts/freefont-ttf/FreeSans.ttf
:text='TESTING':[email protected]:fontsize=36:x=00: y=40"
-vf 'watermarkfile.png [watermark]; [in][watermark] overlay=0:0 [out]' o.mp4
(所有内容都在一行中。在这里,为了清晰起见,我添加了换行符。)
如果我删除水印部分,则会显示文本,如下所示:
ffmpeg -i i.mp4 -vcodec libx264 -f mp4
-vf drawtext="fontfile=/[...]/share/fonts/freefont-ttf/FreeSans.ttf
:text='TESTING':[email protected]:fontsize=36:x=00: y=40"
o.mp4
但是我如何才能同时获得文字和水印呢?
答案1
您应该在一个过滤图:
ffmpeg -i i.mp4 -i watermarkfile.png -filter_complex \
"[0:v]drawtext=fontfile=/path/to/fonts/FreeSans.ttf:text='TESTING':[email protected]:fontsize=36:x=00:y=40[text]; \
[text][1:v]overlay[filtered]" -map "[filtered]" \
-map 0:a -codec:v libx264 -codec:a copy output.mp4
- 使用
-filter_complex
而不是-vf
具有多个输入和/或输出。 - 您不需要使用
movie
多媒体源过滤器。 - 音频可以流已复制而不是重新编码。
- 查看FFmpeg 和 x264 编码指南以获得编码建议。
- 请参阅
drawtext
和overlay
视频过滤器了解更多信息。