FFMPEG,在视频上使用 Overlay 和 Drawtext 命令

FFMPEG, command with Overlay and Drawtext on video

我有 2 个命令,一个用于覆盖(单独工作),一个用于添加文本(单独工作),我希望将这 2 个命令合二为一。

ffmpeg -i myvideo.mp4 -i image.png -filter_complex [0:v][1:v]overlay=5:5,drawtext=fontfile=:text=mytext:fontcolor=orange@1.0:fontsize=30:x=30:y=200[v] -map [output] output.mp4

此命令生成空文件没有错误。

您的 -map 选项使用的标签未引用任何内容。

你应该得到这个错误:

Output with label 'output' does not exist in any defined filter graph, or was already used elsewhere.

-filter_complex 输出和 -map option should use the same label. It can be almost any arbitrary name as long as they match. Also, your fontfile is missing the font path. You may have to quote your text string, but you're using Android and it is weird with quoting. Lastly, you should stream copy 音频。​​

使用这个:过滤器输出和 -map 都使用 [v]

ffmpeg -i myvideo.mp4 -i image.png -filter_complex [0:v][1:v]overlay=5:5,drawtext=text=mytext:fontcolor=orange@1.0:fontsize=30:x=30:y=200[v] -map [v] -map 0:a -c:a copy output.mp4

或者这样:过滤器输出和 -map 都使用 [output]

ffmpeg -i myvideo.mp4 -i image.png -filter_complex [0:v][1:v]overlay=5:5,drawtext=text=mytext:fontcolor=orange@1.0:fontsize=30:x=30:y=200[output] -map [output] -map 0:a -c:a copy output.mp4

或者这个:使用 default stream selection

ffmpeg -i myvideo.mp4 -i image.png -filter_complex [0:v][1:v]overlay=5:5,drawtext=text=mytext:fontcolor=orange@1.0:fontsize=30:x=30:y=200 -c:a copy output.mp4