我编译了新版本的FFMPEG,并且不推荐使用填充命令 当我试图熟悉新的-vf pad =命令时,我想问一下,我该怎样才能 转换视频而不改变它的宽高比。
我从stackoverflow检查了很多解决方案,似乎没什么用 有人可以发一个有效的PHP示例或cmd行。我会非常高兴。
请注意,相关视频可能是4:3,也可能是16:9
让我们说,我将16:9视频转换为640x480格式。它需要一些酒吧 顶部和底部。这就是我想要做的。
由于
答案 0 :(得分:2)
感谢您分享此代码。
我不得不做一个变化:
//keep always the same video size
//we need to add padding and then crop the same size to keep vieos with same WxH sizes
$command = FLV_LITE_FFMPEG_PATH . ' -i ' . $original_video;
$command .= ' -s '.FLV_LITE_VIDEO_WIDTH . 'x' .FLV_LITE_VIDEO_HEIGHT;
$command .= ' -croptop ' . $pad_top;
$command .= ' -cropbottom ' . $pad_bottom;
$command .= ' -cropleft ' . $pad_left;
$command .= ' -cropright ' . $pad_right;
$command .= ' -padtop ' . $pad_top;
$command .= ' -padbottom ' . $pad_bottom;
$command .= ' -padleft ' . $pad_left;
$command .= ' -padright ' . $pad_right;
$command .= ' -padcolor 0x000000';
$command .= ' -ab 32 -f flv -ar 22050 -b 256 -r 24 -y';
$command .= ' ' . $converted_video;
exec($command, $output, $status);
答案 1 :(得分:0)
是否无法检查要转换的视频的宽高比:
ffmpeg -i input.file
然后在ffmpeg命令的-aspect
标志中设置它?