【问题标题】:How can ffmpeg scale videos to the same size, preserving their aspect ratio?ffmpeg 如何将视频缩放到相同的大小,同时保持它们的纵横比?
【发布时间】:2020-04-05 02:35:39
【问题描述】:

(我搜索了类似的问题,但没有找到任何符合我在这里描述的方式。)

我有许多不同样本和显示纵横比(以及不同帧速率和时基)的视频。我想将它们连接成一个长视频,例如播放列表,这意味着重新编码它们。我希望它们按比例放大或缩小以适应所需的输出尺寸 (768x432),并在必要时通过邮筒保留它们的纵横比。

我尝试过-vf scale=768:432:force_original_aspect_ratio=decrease,pad=768:432:(ow-iw)/2:(oh-ih)/2,它从 16:9 输入生成 768x432 16:9 视频...但垂直挤压它并添加了邮筒。 (输入为 720x480,样本纵横比为 32:27。输入 10:11 SAR、4:3 DAR 704x480 视频有效。)

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    比例过滤器不会针对输入的 SAR 进行调整。您必须为此使用表达式:

    scale='if(gt(dar\,768/432),768,oh*dar)':'if(gt(dar\,768/432),ow/dar,432)',setsar=1,pad=...
    

    【讨论】:

      【解决方案2】:

      根据我自己的测试,这应该适用于 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"

      【讨论】:

        猜你喜欢
        • 2012-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-26
        • 2016-04-22
        • 1970-01-01
        相关资源
        最近更新 更多