Почему повторное смешивание VOB решает проблемы с зависанием?

898
Daniel Saner

В настоящее время я транскодирую видеоданные с Video DVD в файлы формата x264 MP4, но оригинальные потоки MPEG-2, похоже, имеют некоторые странные проблемы. Этот видео-DVD представляет собой запись цифрового телевидения домашнего производства (DVB-S) с использованием PVR и впоследствии записан на стандартном DVD-R. Записанные программы воспроизводятся без проблем на моем отдельном DVD-плеере.

После проверки одного из транскодированных файлов MP4 я заметил, что в определенных точках - всегда одинаковых кадрах, независимо от диапазона исходного видео, которое я кодирую - в видео возникает странное заикание. Один кадр зависает примерно на секунду. Количество кадров остается правильным, поэтому проблема с синхронизацией звука отсутствует, просто около 20 кадров заменяются дубликатами одного конкретного кадра. Кажется, это происходит независимо от того, какое программное обеспечение я использую. Я пробовал Avidemux 2.6.3 с собственным декодированием MPEG-2 или обслуживанием кадров через Avisynth 2.6.0, а также VirtualDub 1.9.11 с плагином MPEG-2. Все три метода каждый раз вводили одинаковое количество дубликатов одного и того же кадра в одну и ту же позицию.

Исследуя исходный VOB, я проверил этот конкретный раздел потока и обнаружил, что при воспроизведении также наблюдается небольшое заикание (протестировано с помощью Windows Media Player, VideoLAN, MPlayer и AviDemux с внутренним предварительным просмотром), но это не совсем то же самое замораживание., Это происходит на секунду раньше в потоке, чем в транскодированном файле, и останавливается примерно вдвое дольше (~ 10 кадров). Это также происходило независимо от того, воспроизводил ли я оригинальное видео непосредственно с DVD-R или после копирования файла VOB на жесткий диск, так что виноват не привод.

Следуя совету друга, я демультиплексировал VOB в его элементарные потоки M2V и AC3, а затем непосредственно перемультиплексировал их в новый файл MPEG-PS. В самом деле, заикание исчезло как при прямом воспроизведении файла с ремиксом, так и с транскодов, которые я сгенерировал из него.

Итак, симптом проблемы решен, но мне интересно, почему достаточно было просто демультиплексировать и перекомпилировать оригинальное видео? Перестраивается ли какой-то индекс в процессе, решая проблему, присущую исходным данным? Но тогда, почему после транскодирования заморозка отличается даже между разными декодерами и кодерами; и почему я не замечаю замораживания при воспроизведении на автономном телевизионном DVD-плеере?

1

0 ответов на вопрос

Похожие вопросы