Вопрос: ffmpeg mpeg2 to MP4 H264 создает артефакты горизонтальных линий в сценах движения


Мой видеовход представляет собой файл видео 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)]

Все хорошо, за исключением того, что я получаю что-то подобное в сценах движения:

enter image description here

В реальном источнике нет такой вещи. В источнике нет промежуточных кадров или ореолов - просто «дискретных» шагов.

Я пробовал другие пресеты, а также другие кодеки, такие как libxvid, но все они дали одинаковый результат.

Итак, как мне его исправить? Какие параметры следует добавить или какие настройки нужно настроить?


2
2017-12-21 16:19


Источник


Можете ли вы предоставить короткий вводный файл образца, содержащий сцену действия? Вы можете создать его, используя что-то вроде: ffmpeg -ss 600 -i input -c copy -t 5 output.mpg - LordNeckbeard
Попробуйте увеличить битрейт. Хотя чаще всего кодирование с помощью опции crf обеспечивает постоянное качество. - jiggunjer


Ответы:


Ваш источник входного сигнала чересстрочный. Лучше всего деинтерлейсинг с фильтром ffmpeg, таким как -vf yadif=1, Видеть документация yadif для получения дополнительной информации.


6
2017-12-22 00:55



Обратите внимание, что yadif = 1 следует использовать только тогда, когда на каждый кадр эффективно 1 поле, иначе вы получите дублированные кадры. Если это так, используя -vf yadif будет более эффективным. - Ely