我正在尝试使用 FFmpeg 动态更改通过 PHP 上传到服务器的视频的分辨率。IE,我想保留纵向或横向 - 如果 Y 高于 X,我想将 Y 更改为 320,并将 X 更改为相应的值,反之亦然。我在调整大小本身时没有遇到问题 - 实际上非常简单。我遇到的问题是检测哪个维度更大。
我从 StackOverflow 上获取了这个解决方案:如何使用 ffmpeg php 检查视频是横向还是纵向?
但是,它似乎不起作用。当我追踪什么不起作用时 - 我假设输出的格式化方式自该解决方案发布以来已经改变,现在需要以不同的方式解析 - 我想问是否有更好的方法来做到这一点. 我愿意使用 FFmpeg 或基于 PHP 的解决方案。
ffmpeg -i input.jpg -vf 'scale=320:320:force_original_aspect_ratio=decrease' output.png
Run Code Online (Sandbox Code Playgroud)
根据 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.
Run Code Online (Sandbox Code Playgroud)
用于decrease将最大尺寸设为 320,或用于increase将最小尺寸设为 320。
| 归档时间: |
|
| 查看次数: |
2011 次 |
| 最近记录: |