将多个ffmpeg命令转换为一行(刻录字幕和水印)

Converting multiple ffmpeg command into one line (burn subtitle & watermark)

我先刻录 mkv 的字幕,然后添加水印,这需要很长时间才能转换一个视频。我猜这需要 x2 时间。例如,在我当前的服务器上,每个命令需要 30 分钟。我的服务器可能不够好。但是我在想是否有办法在一个命令中执行此操作?会影响速度吗?我对 ffmpeg 的了解几乎为零:

这是刻录字幕的命令。我正在使用 python 来实现这一点:

ffmpeg -i subtitles=/Users/Test/Desktop/test.mkv -vf subtitles=subtitles=subtitles=/Users/Test/Desktop/test.mkv -c:v libx264 -c:a aac -preset ultrafast -strict -2 /Users/Test/Desktop/test.mp4

添加水印命令:

ffmpeg -i /Users/Test/Desktop/test.mp4 -i /Users/Test/Desktop/watermark-logo.png -filter_complex "[1][0]scale2ref=w='iw*10/100':h='ow/mdar'[wm][vid]; [vid][wm]overlay=main_w-overlay_w-5:main_h-overlay_h-5" /Users/Test/Desktop/output.mp4

如果有更多方法可以加快速度,请告诉我。我只想更快地实现这一目标并期待最好的结果。 谢谢。

首先在视频上应用字幕,然后将其提供给复杂滤镜图内的 scale2ref。

使用

ffmpeg -i /Users/Test/Desktop/test.mkv -i /Users/Test/Desktop/watermark-logo.png -filter_complex "[0]subtitles=/Users/Test/Desktop/test.mkv[v];[1][v]scale2ref=w='iw*10/100':h='ow/mdar'[wm][vid]; [vid][wm]overlay=main_w-overlay_w-5:main_h-overlay_h-5" -preset fast /Users/Test/Desktop/output.mp4