ffmpeg 具有相同/不同过滤器的多分辨率输出

ffmpeg 具有相同/不同过滤器的多分辨率输出

我正在编码多个分辨率,如下所示

fmpeg -i source.mp4 -i watermark.png -filter_complex "[0:v]overlay=50:50[wm];[wm]scale=-2:480:flags=lanczos" -c:v libx264 -preset fast -crf 22 -c:a libfdk_aac -b:a 128k out_480.mp4

fmpeg -i source.mp4 -i watermark.png -filter_complex "[0:v]overlay=50:50[wm];[wm]scale=-2:360:flags=lanczos" -c:v libx264 -preset fast -crf 21 -c:a libfdk_aac -b:a 128k out_360.mp4

以及其他一些决议。

我正在尝试按照(使用单个命令执行此操作https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs)所以我可以优化编码过程,但是,我的命令有一个通用的水印过滤器和缩放过滤器,它们对于每个输出都是独立的。

对这些多种分辨率进行编码的最佳方法是什么,以便 ffmpeg 仅对源应用一次水印并对音频进行一次编码,但在不同的 CRF 级别上获得不同的分辨率?

答案1

三通复用器可用于将输出流克隆到多个输出。

执行你的命令集,

ffmpeg -i source.mp4 -i watermark.png -filter_complex "[0:v]overlay=50:50,split=2[wm480][wm360];[wm480]scale=-2:480:flags=lanczos[v480];[wm360]scale=-2:360:flags=lanczos[v360]" -map [v480] -map [v360] -map 0:a -flags:v +global_header -c:v libx264 -preset:v fast -crf:v:0 22 -crf:v:1 21 -c:a libfdk_aac -b:a 128k -f tee "[select=\'v:0,a\']out_480.mp4|[select=\'v:1,a\']out_360.mp4"

相关内容