我有一项奇怪的艰巨任务.我认为这很容易,但我所有的努力都没有结果.
我正在将上传到php脚本的视频从各种格式(.avi,.mpg,.wmv,.mov等)转换为单个.flv格式.转换效果很好,但我遇到的问题是视频的分辨率.
这是我正在运行的命令(使用PHP vars):
ffmpeg -i $original -ab 96k -b 700k -ar 44100 -s 640×480 -acodec mp3 $converted
$original和$converted都包含这些文件的完整路径.我的问题是,即使源较小,它总是会转换为640×480(就像我告诉它的那样).显然,这是在下载视频时浪费磁盘空间和带宽.此外,这并不考虑输入视频是否为4:3以外的任何宽高比,如果我上传16:9视频,则会导致“压缩”转换.
我需要做三件事:
>确定原始视频的宽高比.
>如果不是4:3,则用黑色条填充顶部和底部.
>如果原件的尺寸较大或与原件的宽度/高度相关的4:3宽高比(以较接近640×480为准),则转换为640×480.
我在几个视频上运行了ffmpeg -i,但是我没有看到一致的格式或位置来查找原始分辨率.一旦我能够弄清楚,我知道我可以“做数学”来找出正确的大小并指定填充以使用-padttop,-padbottom等来修复宽高比.