DVD-Authoring - 3 (DSI und PCI in der Praxis)


 
Schauen wir uns einmal ein paar Beispiele zu unserem letzten Thema an. Zuerst einmal zwei Eingangsstreams, dann die Ausgangsstreams, also das was das Authoringprogramm daraus gemacht hat und zum Schluss ein Beispiel, wie man es auch machen kann:

Fangen wir einmal mit einem MPEG-Stream des sicher allen noch bekannten Programms TMPGEnc an:

Wir untersuchen diesen Stream mit VOBEdit und werfen nur einen Blick auf die ersten Datenpakete.


Abb 1

 

TMPGEnc beschränkt sich beim Einfügen der NAV_PACKs auf ein paar grundsätzliche Informationen, ohne allzu sehr ins Detail zu gehen:


Abb 2

 

Wir erkennen auf den ersten Blick die Muxrate und die Existenz eines Padding Streams.

Padding bezeichnet übrigens ungenutzte Füllbytes, um Zellen aufzufüllen oder Datenstrukturen auf bestimmte Vielfache von Bytes auszurichten. Bei einer SVCD muss z.B. bei den Einsprung-Sektoren der Kapitelmarken, den APS (den AccessPoint Sectors) eine Bildsequenz (GOP) genau mit einem vollen Sektor starten. Das bedeutet, dass ggf. Füllbytes zwischen die Sequenzen zu schreiben sind, die überhaupt keine Bildinformationen enthalten.

Als Alternative schauen wir uns einmal einen mit bbMPEG gemuxten Stream an. In den "Output Settings" gibt es die Möglichkeit, als Program-Stream-Typ "~DVD" einzustellen.


Abb 3

 
Brent Beyeler hat irgendwo mal geschrieben, dass es an dieser Stelle wirklich nur so ungefähr DVD-Muxing ist. Warum werden wir gleich sehen.

Vergleichen wir nun die NAV_PACK-Einträge der beiden MPEG-Streams so stellen wir mit Erstaunen fest, dass hier bei einem mit bbMPEG gemuxten Stream viel ausführlichere Informationen vorhanden sind:


Abb 4

 

Wir finden hier zusätzlich anstelle des Padding-Streams einen so genannten "Privat Stream 2" mit weiteren Streams .

 

Nehmen wir nun ein ganz normales Authoringprogramm, wie z.B. VideoPack 5.x von Roxio und als erstes unseren TMPEG-Stream.

VP 5.x macht, wenn Sie einen Stream laden, zuerst einmal einen Kompatibilitäts-Check und meldet,


Abb 5

 
dass die Muxrate nicht stimmt und auch am MPEG2-Format hat das Programm irgendwas zu meckern. Wir ignorieren diese Fehlermeldung einfach mal und authoren unsere DVD wie gewohnt.

Hat man den Authoringvorgang abgeschlossen, so kann man sehen, dass VP 5.x den Stream demuxt


Abb 6

und anschließend erneut muxt.


Abb 7

Nun aber mit den richtigen Einstellungen.

Ein Zwischenschritt ist die Erstellung eines VOB-Files. Ich habe ja oben schon davon berichtet.


Abb 8

Aus diesem VOB-File macht VP5.x nun direkt das entsprechende Image oder brennt eine DVD. Wir kommen später noch auf diesen Punkt zurück.

Schauen wir nun in dieses VOB-File hinein, so sieht die Struktur ähnlich aus, als wenn bbMPEG den Stream gemuxt hätte (vergleiche Abb 4).


Bei einem neuen Versuch laden wir direkt den bbMPEG-Stream in VP5.x.

VP5.x erkennt, dass der Stream richtig gemuxt ist und darüber hinaus einen "Privat Stream 2" hat und macht sich gar nicht mehr die Mühe, den Stream zu demuxen und neu zu muxen. VP 5.x beginnt gleich damit ein Image zu bauen.


Abb 9

 

Diese Vorgehensweise ist nicht bei allen Programmen gleich. Einige Authoringprogramme muxen den Eingangsstream auf jeden Fall neu - egal ob er korrekt ist oder nicht. Wie dem auch sei, es geht hier nicht so sehr um ein bestimmtes Programm, sondern um die allgemeine Funktion hinter den Programmen.

Schauen wir uns jetzt das Ergebnis der beiden Authorings an. Dazu habe ich einfach den Haupt-VOB-Stream aus der jeweiligen Image-Datei heraus extrahiert. Und das getrennt für das "bbMPEG-Image" und das "TMPGEnc-Image".

Hier finden Sie die beiden NAV_PACKs gegenübergestellt (links als Ausgangsstream bbMPEG-gemuxt und rechts als Basis den Original-TMPGEnc-Stream) :

Abb 10 (zum Vergrößern bitte auf das Bild klicken)

 
Weiter oben haben Sie gelernt (hoffe ich jedenfalls), dass in einem VOB-Stream immer auch NAV_PACKs sein müssen. Sie ermöglichen die Navigation innerhalb des Streams.

Um genau zu sein, beinhalten diese NAV_PACKs (auch als NV_PCK bezeichnet) zwei weitere Pakete, die sich  Presentation Control Information (PCI) und Data Search Information (DSI) nennen.

Eine solche Data Search Information (DSI) ermöglicht im Prinzip erst das eigentliche Spulen, also den Vor- und Rücklauf mit variabler Geschwindigkeit in einem DVD-Video.

Im Prinzip (ich will das hier nicht im Detail beleuchten), gibt es einen so genannten "track buffer", also einen Speicher zwischen der "Lesestufe" im DVD-Player und dem eigentlichen Decoder. Hier wird das Video, wenn Sie so wollen, einen kurzen Augenblick zwischengespeichert, um den Spulvorgang steuern zu können. Um nun diesen Speicher verwalten zu können, benötigt der Player bestimmte Steuerinformationen, wie sie durch PCI und DSI bereitgestellt werden.

Wer sich für Details (auf Bit-Ebene) interessiert, dem seien folgende Webseiten empfohlen:

 
Schauen Sie sich nun die beiden NAV_PACK-Inhalte im Vergleich noch einmal an. Der von VP 5.x im Ursprungszustand belassene MPEG-Stream (von bbMPEG gemuxt) hat überhaupt keinen DSI-Stream.

Von besonderem Interesse wäre dabei sicher das Feld "vobu_1stref_ea" in Sector 413 ("first reference frame end block, relative - used for fast playing" und die daraus folgenden Felder)


Abb 10a

Aber wie gesagt, der Stream ist nicht da und auch der PCI-Anteil ist ohne Inhalt.

Was bedeutet dass nun für die so hergestellte DVD?

Schlicht und einfach, dass ein mit bbMPEG gemuxter MPEG-Stream, der mit dem Authoringprogramm VideoPack 5.x weiterverarbeitet wird, vermutlich in den meisten DVD-Playern nicht spulen wird.

Im YAMMI 715 z.B. führt eine solche DVD zu einem Totalabsturz, wenn Sie versuchen, eine Spulgeschwindigkeit größer als 2-fach (vorwärts) auszuwählen. Rückwärts geht es gar nicht.

bbMPEG war bis jetzt mein absoluter Favorit hinsichtlich der Muxing-Möglichkeiten. Denken wir nur an einen Stream mit zwei Tonspuren. Doch was das Programm da als MPEG-Stream abliefert, ist vollkommen unvollständig und schlicht der absolute Schrott im Hinblick auf eine DVD. Im MPEG-Stream (von bbMPEG gemuxt) fehlt bereits der kpl. DSI-Stream und wenn das Authoringprogramm diesen nicht noch zusätzlich einbaut, werden Sie ein Problem haben.

VP 5.x hingegen prüft den Ausgangsstream nicht konsequent genug. Das Programm hätte feststellen müssen, dass der Stream so nicht eingesetzt werden kann und hätte ihn automatisch demuxen und mit den richtigen NAV_PACKs neu muxen müssen.

Nach Informationen aus dem Hause Roxio ist der "Fehler", wenn man dabei überhaupt von einem Fehler sprechen kann, in der neuen Authoring-Software WOC 6 DVD nicht mehr vorhanden. WOC6DVD muxt auch bbMPEG-gemuxte Stream direkt neu und ergänzt die richtigen NAV_PACKs.

Dennoch mein Tipp an dieser Stelle:

Stellen Sie die Ausgabe in TMPGEnc so ein, dass Sie direkt getrennte ES-Streams für Bild und Ton ausgeben (geht problemlos ab Version 2.58.xx.xxx):


Abb 11

Und wandeln Sie dann über die Formatumwandlung in VP5.x die Files zur Sicherheit direkt in ein normgerechtes VOB-File um:


Abb 12

 

Man kann übrigens aus der Abbildung 10a noch etwas anderes sehr schön sehen:

 

Abb 10 a

 

In den jeweiligen Feldern (z.B. in 040f, 0413, etc.) stehen Adressen. Und zwar relative Adressen. Diese hier dargestellte VOBU beginnt also bei Sektor 0 und endet an Sektor 79. Also muss an Sektor 80 der nächste NAV_PACK-Eintrag stehen.

Kommt nun beim Brennen irgendwas durcheinander und der Brenner verschluckt sich beim Brennen, so findet der Player im Sektor 80 keinen weiteren NAV_PACK und Ihre DVD wird nicht richtig laufen.

Man kann solche Phänomene recht häuft dann finden, wenn Sie die DVD nicht direkt aus dem Authoringprogramm heraus gebrannt haben, sondern wenn Sie über den Zwischenschritt einer Image-Datei oder über das Verzeichniss VIDEO_TS gegangen sind. Die DVD also "irgendwie" mit einem anderen Programm gebrannt worden ist.

 

Zurück

Zur Index-Seite


 

Home zu "http://www.edv-tip.de"