【问题标题】:FFmpeg - Resize Largest Video Dimension to 320FFmpeg - 将最大视频尺寸调整为 320
【发布时间】:2020-04-07 16:32:42
【问题描述】:

我正在尝试使用 FFmpeg 动态更改通过 PHP 上传到服务器的视频的分辨率。 IE,我想保留纵向或横向 - 如果 Y 高于 X,我想将 Y 更改为 320 并将 X 更改为相应的值,反之亦然。我对调整大小本身没有问题 - 实际上它非常简单。我遇到的问题是检测哪个维度更大。

我从 StackOverflow 获取了这个解决方案:how to check if video is landscape or portrait using ffmpeg php?

但是,它似乎不起作用。虽然我追查什么不工作 - 我假设输出格式的方式自该解决方案发布以来发生了变化,现在需要以不同的方式解析 - 我想问是否有更好的方法来做到这一点.我愿意使用 FFmpeg 或基于 PHP 的解决方案。

【问题讨论】:

    标签: php video ffmpeg


    【解决方案1】:
    ffmpeg -i input.jpg -vf 'scale=320:320:force_original_aspect_ratio=decrease' output.png
    

    根据 FFmpeg 文档,force_original_aspect_ratio 选项有助于在缩放时保持原始纵横比:

       force_original_aspect_ratio
           Enable decreasing or increasing output video width or height if
           necessary to keep the original aspect ratio. Possible values:
    
           disable
               Scale the video as specified and disable this feature.
    
           decrease
               The output video dimensions will automatically be decreased if
               needed.
    
           increase
               The output video dimensions will automatically be increased if
               needed.
    

    使用decrease将最大尺寸设为320,或使用increase将最小尺寸设为320。

    【讨论】:

    • 总是鼓励添加一些评论来解释答案。这将帮助用户学习,而不仅仅是复制和粘贴他们不理解的答案!
    • 这似乎适用于 webm/VP8,但对于 mp4/H.264 它创建了一个 Quicktime 和 Firefox 无法读取的文件(但 chrome 可以),因此请务必测试输出视频!
    【解决方案2】:

    查看 FFmpeg wiki 上的 resizing 页面。你基本上是想专门看这个部分:

    有时需要以适合的方式缩放输入图像 进入一个指定的矩形,即如果你有一个占位符(空 矩形),您要在其中缩放任何给定的图像。这是一个 有点棘手,因为您需要检查原始纵横比, 为了决定指定哪个组件并设置另一个 组件为-1(以保持纵横比)。例如,如果我们要 喜欢将我们的输入图像缩放为尺寸为的矩形 320x240,我们可以这样使用:

    ffmpeg -i input.jpg -vf scale="'if(gt(a,4/3),320,-1)':'if(gt(a,4/3),-1,240)'" output_320x240_boxed.png
    

    您显然可以将其用于视频和图像。

    【讨论】:

    • 没想到ffmpeg内置了这些功能……很方便,谢谢。
    【解决方案3】:

    您可以使用 if 语句来选择较大的那个

    -vf scale='if(gt(iw,ih),320:-2)':'if(gt(iw,ih),-2:320)'
    

    【讨论】:

      【解决方案4】:

      仅供参考,正确的做法是使用FFmpeg附带的FFprobe。

      https://www.ffmpeg.org/ffprobe.html

      【讨论】:

        猜你喜欢
        • 2015-01-30
        • 1970-01-01
        • 1970-01-01
        • 2020-08-04
        • 1970-01-01
        • 2015-07-03
        • 2015-12-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多