如何用ffmpeg将785x576 PAL制式MP4转换为720x576分辨率
报错原因
H.264编码规范要求输出视频的宽高必须为偶数,你原来的命令按SAR(像素长宽比)自动计算宽度得到785(奇数),所以触发编码失败。
方案1:符合你固定宽度720的需求
直接指定输出宽度为720,高度按原比例自动适配并取整为偶数,同时设置像素长宽比为1(正方形像素,消除PAL制式的变形问题),命令如下:
ffmpeg -i weird_video.mp4 -vf "scale=720:trunc(ow/a/2)*2,setsar=1" -crf 28 -c:a aac -b:a 80k -ac 1 -movflags +faststart h-264-out.mp4
参数说明:ow指代你指定的输出宽度720,a指代原视频的显示宽高比,trunc(ow/a/2)*2的作用是把计算出的高度取整到最近的偶数,保证符合H.264的编码要求。
方案2:不固定宽度,仅解决奇数宽度报错
如果你不需要强制固定宽度为720,只想保留原PAL视频的显示比例,可使用以下命令,自动把计算出的奇数宽度调整为最近的偶数:
ffmpeg -i weird_video.mp4 -vf "scale=trunc(iw*sar/2)*2:ih,setsar=1" -crf 28 -c:a aac -b:a 80k -ac 1 -movflags +faststart h-264-out.mp4
这个命令会把计算得到的785宽度调整为786,高度保持576不变,编码不会再报错。
内容的提问来源于stack exchange,提问作者user149823
相关产品推荐
相关产品推荐

