ffmpeg mpeg2到MP4 H264在运动场景中产生水平线条伪像


3

我的视频输入是mpeg2视频文件,如下所示:

Video: MPEG2 Video 720x576 (4:3) 25fps [V: mpeg2 main, yuv420p, 720x576]
Audio: MPEG Audio 48000Hz stereo 224kbps [A: mp2, 48000 Hz, stereo, 224 kb/s]

然后我用:

ffmpeg.exe -i in.mpg -b:v 3000k -preset superfast out.mp4

要获取MP4:

Video: MPEG4 Video (H264) 720x576 (4:3) 25fps 2967kbps [V: h264 high L3.0, yuv420p, 720x576, 2967 kb/s]
Audio: AAC 48000Hz stereo 128kbps [A: SoundHandler (aac lc, 48000 Hz, stereo, 128 kb/s)]

一切都很好,除了在运动场景中我得到的是这样的东西:

在此处输入图片说明

在实际来源中,没有这样的东西。在源代码中,没有中间帧或重影-只是“离散”步骤。

我尝试了其他预设以及像libxvid这样的其他编解码器,但是都产生了相同的结果。

那么,我该如何解决呢?我应该添加哪些参数或要调整哪些设置?


您能否提供包含动作场景的简短示例输入文件?您可以使用以下方式创建它:ffmpeg -ss 600 -i input -c copy -t 5 output.mpg
llogan 2015年

1
尝试增加比特率。尽管使用crf选项进行编码以获得恒定的质量更为常见。
jiggunjer 2015年

Answers:


8

您的输入源是隔行扫描的。最好的选择是使用ffmpeg过滤器(例如)进行隔行扫描-vf yadif=1。有关更多信息,请参见yadif文档


1
请注意,仅当每帧实际上有1个字段时才应使用yadif = 1,否则最终将导致重复帧。如果是这样,使用-vf yadif会更有效。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.