Warum behebt das Remuxing eines VOB Probleme beim Einfrieren?

1203
Daniel Saner

Ich transcodiere derzeit Videodaten von einer Video-DVD in x264-MP4-Dateien, aber die ursprünglichen MPEG-2-Streams scheinen einige seltsame Probleme zu haben. Bei dieser Video-DVD handelt es sich um eine selbst gemachte digitale TV-Aufnahme (DVB-S) mit einem PVR, die anschließend auf eine Standard-DVD-R gebrannt wird. Die aufgezeichneten Programme werden in meinem eigenständigen DVD-Player einwandfrei wiedergegeben.

Nachdem ich eine der transcodierten MP4-Dateien geprüft hatte, fiel mir auf, dass an bestimmten Stellen - immer dieselben Frames, unabhängig vom Bereich des Originalvideos, das ich codiere - ein seltsames Stottern im Video auftritt. Ein Frame bleibt etwa eine Sekunde stehen. Die Anzahl der Frames bleibt korrekt. Es gibt also kein Audio-Synchronisierungsproblem. Es werden nur etwa 20 Frames durch Duplikate eines bestimmten Frames ersetzt. Dies scheint unabhängig von der verwendeten Software zu passieren. Ich habe Avidemux 2.6.3 mit nativer MPEG-2-Decodierung oder Serving-Frames durch Avisynth 2.6.0 und auch VirtualDub 1.9.11 mit dem MPEG-2-Plugin ausprobiert. Alle drei Methoden führten jedes Mal dieselbe Anzahl von Duplikaten desselben Frames an derselben Position ein.

Beim Untersuchen des Quell-VOBs habe ich diesen bestimmten Abschnitt des Streams überprüft und festgestellt, dass auch die Wiedergabe ein wenig ruckelt (getestet mit Windows Media Player, VideoLAN, MPlayer und der internen Vorschau von AviDemux), aber es ist nicht genau das gleiche Standbild . Dies geschieht etwa eine Sekunde früher im Stream als in der transcodierten Datei und friert etwa die Hälfte der Länge ein (~ 10 Frames). Dies geschah auch unabhängig davon, ob ich das Originalvideo direkt von der DVD-R abgespielt habe oder nachdem ich die VOB-Datei auf die Festplatte kopiert hatte. Es liegt also kein Fehler am Laufwerk.

Dem Vorschlag eines Freundes folgend, habe ich das VOB in seine elementaren M2V- und AC3-Streams demultiplext und die beiden direkt in eine neue MPEG-PS-Datei remultiplext. Tatsächlich verschwand das Stottern sowohl aus der direkten Wiedergabe der remuxierten Datei als auch aus den von mir generierten Transcodes.

Das Symptom des Problems ist also gelöst, aber ich frage mich, warum das Demuxen und Remuxen des Originalvideos ausreichend war? Wird dabei eine Art Index neu aufgebaut, um ein den ursprünglichen Daten innewohnendes Problem zu lösen? Aber warum unterscheidet sich das Einfrieren nach der Transcodierung selbst zwischen verschiedenen Decodern und Encodern? und warum merke ich bei der Wiedergabe auf einem Standalone-TV-DVD-Player kein Einfrieren?

1

0 Antworten auf die Frage