(我已经搜索了类似的问题,但没有发现任何可以按照我在此描述的方式工作的东西。)
我有许多视频,这些视频具有不同的样本和显示宽高比(以及不同的帧速率和时基)。我想将它们连接成一个长视频,例如一个播放列表,这意味着对其重新编码。我希望它们按比例放大或缩小以适合所需的输出尺寸(768x432),并在必要时通过竖框保留其长宽比。
我尝试过-vf scale=768:432:force_original_aspect_ratio=decrease,pad=768:432:(ow-iw)/2:(oh-ih)/2
,它可以从16:9输入产生768x432 16:9的视频...但是垂直压缩它并增加了boxboxing。 (输入为720x480,采样宽高比为32:27。输入10:11 SAR,4:3 DAR 704x480视频作品。)
答案 0 :(得分:0)
比例滤波器无法根据输入的SAR进行调整。您必须为此使用表达式:
scale='if(gt(dar\,768/432),768,oh*dar)':'if(gt(dar\,768/432),ow/dar,432)',setsar=1,pad=...
答案 1 :(得分:0)
根据我自己的测试,这对于16:9和非16:9视频均适用,我认为setsar函数的语法和顺序确实会影响结果
-filter_complex "scale=768:432:force_original_aspect_ratio=decrease,setsar=sar=1,pad=768:432:(ow-iw)/2:(oh-ih)/2"
如果该方法可行,并且您希望以尽可能高的质量进行转换,那么我建议您尝试-filter_complex "scale=768:432:force_original_aspect_ratio=decrease:flags=lanczos+full_chroma_int+accurate_rnd,scale=trunc(iw/2)*2:trunc(ih/2)*2,setsar=sar=1,pad=768:432:(ow-iw)/2:(oh-ih)/2"