在不重新编码视频文件的情况下更正宽高比

Modified on: Sat, 16 Mar 2019 17:40:02 +0800

我有一个包含以下属性的视频流:

Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 720x416 [SAR 1:1 DAR 45:26], 1908 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc

当我在VLC中运行时,我必须按“A”将宽高比更改为“4:3”才能使视频以正确的宽高比显示。

观察视频事实,是否错误a)实际视频在像素数据中被错误拉伸,或者b)是否只有一些元数据值被错误设置?

如果是前者,我知道我可以重新编码视频并改变宽度和高度。但是如果是后者,我运行什么ffmpeg命令来修复元数据而不重新编码视频本身?

作者:forthrin

最佳答案

样本宽高比(SAR)和显示宽高比(DAR)之间存在差异。如果要将视频更改为以4:3显示,则需要更改图像中的实际像素(通过缩放像素和更改SAR),或者通过设置容器级别的元数据标志来告知外部媒体播放器将图像拉伸到您想要的DAR。

如果不应用视频滤镜,您将无法缩放像素并更改SAR。如果选择此方法,则需要对文件进行转码 - 因为在应用视频过滤器时无法“流式复制”视频流。

要缩放图像并更改SAR(转码时),请尝试:

ffmpeg -i <INPUT_FILE> -vf scale=720:540 -c:v <Video_Codec> <OUTPUT_FILE>

另一方面,如果您只想更改元数据标志并调整DAR,您将能够流式复制视频。为此,请尝试:

ffmpeg -i [INPUT] -aspect 720:540 -c copy [OUPTPUT]

作者:,occvtech

相关问答

添加新评论