0

我有一个源视频 (mpeg2video),我正在将其转码为 x264。源包含从电视录制的 2 个不同的节目。一个是 4:3 AR,另一个是 16:9 AR。当我通过 VLC 播放源文件时,播放器会正确更改大小以在正确的 AR 上显示视频。到目前为止,一切都很好。

当我转码时,转换过程会自动检测前几帧的 AR,然后使用此 AR 对整个视频进行转码。如果 16:9 部分先出现,则整个转换在 16:9 中完成,4:3 部分看起来水平拉伸。如果 4:3 部分位于源文件的开头,则整个转码以 4:3 完成,而 16:9 部分看起来被水平挤压。

永远看不到黑条。

这是我的命令:

nice -n 17 ffmpeg -i source.mpg -acodec libfaac -ar 48000 -ab 192k -async 1 -copyts -vcodec libx264 -b 1250k -threads 2 -level 31 -map 0:0 -map 0:1 -map 0:2 -scodec copy -deinterlace output.mkv

我不完全明白发生了什么。如何在输出文件中获得与输入视频中相同的“AR 变化”中间视频?

4

1 回答 1

0

我不认为 ffmpeg 旨在中途做到这一点。您必须使用 libav 编写自己的应用程序。更简单的方法是创建两个您组合的视频块。

编辑:处理它的最好方法是,如果您可以自己检测到 AR 的变化,并分别转码这两个片段并加入它们。

EDIT2:使用 ffmpeg 本身来分块视频,解复用任何你想要的东西,然后再把它混回去。它应该可以正常工作。你不需要使用avidemux。

于 2012-08-26T17:50:08.557 回答