我有一堆剪辑,我正试图将它们组合成一个视频。问题是每个剪辑都有不同的分辨率和纵横比(有时也有不同的 SAR 和 DAR)。我试图让所有内容都达到 1920x1080 16:9(相同的 SAR 和 DAR),并在额外的空间中填充黑色背景。这是我目前拥有的:
ffmpeg -i input.mp4 -vf "scale=(iw*sar)*max(1920/(iw*sar)\,1080/ih):ih*max(1920/(iw*sar)\,1080/ih), crop=1920:1080,setsar=1:1" -c:v mpeg4 -vtag XVID -q:v 4 -c:a libmp3lame -q:a 4 output.avi
这将所有内容都变为 1920x1080,但它会裁剪不是 16:9 的视频。我希望非 16:9 视频具有扩展的黑条。
这是我在调整大小后用来组合所有剪辑的方法。
ffmpeg -i input1.avi -i input2.avi ... input14.avi -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] ... [14:v] [14:a] concat=n=15:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mkv
以目前的形式,它可以毫无问题地加入视频。过去,当第一个脚本“正确”转换垂直视频时,此脚本会出现问题。通常它会抱怨 SAR 和/或 DAR 是错误的。
总之,如何修改第一个命令以将任何/所有分辨率/纵横比正确调整为具有相同 SAR 和 DAR 的 1920x1080 16:9?然后(如果需要)我将如何修改第二个脚本以组合转换后的视频?
比例过滤器有一些定制的比例调整选项。之后使用填充过滤器添加黑条。
ffmpeg -i input.mp4 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:-1:-1,setsar=1" -c:v mpeg4 -vtag XVID -q:v 4 -c:a libmp3lame -q:a 4 output.avi
(我建议将这些中间文件输出到 MP4/MOV,使用它们的默认编解码器。AVI 中的 MPEG-4 Part 2 已过时。)