我正在尝试使用 FFmpeg 动态更改通过 PHP 上传到服务器的视频的分辨率。 IE,我想保留纵向或横向方向 - 如果 Y 高于 X,我想将 Y 更改为 320,将 X 更改为相应的值,反之亦然。我在调整大小本身方面没有遇到任何问题 - 实际上,这非常简单。我遇到的麻烦是检测哪个维度更大。
我抓住了 Stack Overflow 的这个解决方案:如何使用 ffmpeg php 检查视频是横向还是纵向? https://stackoverflow.com/questions/15298004/how-to-check-if-video-is-landscape-or-portrait-using-ffmpeg-php
但是,它似乎不起作用。当我追踪什么不起作用时 - 我假设自该解决方案发布以来输出格式的方式已经改变,现在需要以不同的方式解析 - 我想问是否有更好的方法来做到这一点。我愿意使用 FFmpeg 或基于 PHP 的解决方案。
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.
Use decrease
使最大尺寸为 320,或使用increase
使最小尺寸为 320。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)