Mastering per Script: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Konfigurationen erweitert)
K (link angepasst)
 
(9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{UnderConstruction}}--[[Benutzer:Robi|Robi]] 21:14, 24. Sep 2006 (CEST)
 
 
'''Big Baustelle, kann etwas länger dauern bis fertig'''
 
 
 
 
== DVD-Authoring auf der Konsole ==
 
== DVD-Authoring auf der Konsole ==
  
Zeile 23: Zeile 18:
 
=== Vorbemerkung ===
 
=== Vorbemerkung ===
  
Es gibt unter LINUX eine ganze Reihe von Tools um DVDs zu erstellen. Die Einarbeitung in diese Programme ist jedoch oftmals mit viel Zeit verbunden. Nach einiger Zeit wird man dann doch festzustellen, dass genau das, was man gerne haben möchte genau mit diesem Programm nicht zu machen ist. Allerdings gibt es an den zu Grunde liegenden Programmteilen jede Menge Optionen und (fast) alles ist mehr oder weniger gut im Internet beschrieben. Um das Letzte aus seinem LINUX herauszuholen, um zum Beispiel auch mal seinem Nachbarn mit seiner teuren Videosoftware zum staunen zu bringen, kann man also wieder zurück auf die Konsole.  
+
Es gibt unter LINUX eine ganze Reihe von Tools um DVDs zu erstellen. Die Einarbeitung in diese Programme ist jedoch oftmals mit viel Zeit verbunden. Nach einiger Zeit wird man dann eventuell doch festzustellen, dass genau das, was man gerne haben möchte genau mit diesem Programm nicht zu machen ist. Allerdings gibt es an den zu Grunde liegenden Programmteilen jede Menge Optionen und (fast) alles ist mehr oder weniger gut im Internet beschrieben. Um das Letzte aus seinem LINUX herauszuholen, um zum Beispiel auch mal seinem Nachbarn mit dessen teuren Videosoftware zum staunen zu bringen, kann man also wieder zurück auf die Konsole.  
  
Hier wird eine Möglichkeit vorgestellt mittels der Grafiktools innerhalb eines Scriptes kurze Videosequenzen zu bearbeiten, und dabei Videoeffekte nach seinen eigenen Vorstellungen einzubauen, für die es keine fertigen Tools gibt. Das hier vorgestellte Script erstellt ein Video-animiertes Menü zum Einsatz als Auswahlmenu bei der Zusammenstellung einer Video-DVD. Es ist auf eine bestmögliche Qualität optimiert und wurde zum Erstellen von privaten Video-DVDs aus DVD-Camcorder Rohdateien mit den Aufnahmen von den Schönsten Tagen des Jahres erstellt.  
+
Hier wird eine Möglichkeit vorgestellt mittels der Grafiktools innerhalb eines Scriptes kurze Videosequenzen zu bearbeiten, und dabei Videoeffekte nach seinen eigenen Vorstellungen einzubauen, für die es keine fertigen Tools gibt. Das hier vorgestellte Script erstellt ein Video-animiertes Menü zum Einsatz als Auswahlmenu bei der Zusammenstellung einer Video-DVD. Es ist auf eine bestmögliche Qualität optimiert und wurde urspünglich  zum Erstellen von privaten Video-DVDs aus DVD-Camcorder Rohdateien von Urlaub erstellt.  
  
 
   
 
   
=== notwendige Software ===
+
=== notwendige Software Pakete ===
  
 +
* '''ImageMagick Version 5.5... oder neuer''' Ein mächtige Sammlung von Tools and Libraries zum erzeugen, bearbeiten und konvertieren von Grafiken in über 80 Formaten beinhaltet Schnittstellen zu wichtigen Script- und Progammiersprachen.
  
 +
:::''Nachfolgende Pakete sind für SuSe am besten von [http://packman.links2linux.de/ packman] zu beziehen, (eventuelle SuSE Orginalpakete gleichen Namens sollten durch die Pakete von Packman ersetzen werden)'' siehe auch [http://www.linux-club.de/faq/DVDs_abspielen%2CXine%2CMplayer#Die_Vorgehensweise Multimediapakete installieren]
 +
* '''transcode'''  eine Konsole Utility Sammlung für Video-Stream-Processing.
 +
* '''mjpegtools''' ein Set von Basis Programmen und Libraries zum erstellen, abspielen und editieren von MPEG komprimiertem Audio und Video.
 +
* '''dvdauthor''' Tools zum Erstellen von DVD-kompatiblen Filesystemen aus multiplen MPEG-Streams
 +
* '''xine-ui''' freier Video-Player
  
  
 
=== das Prinzip des DVD-Menus und der Video-DVD ===
 
=== das Prinzip des DVD-Menus und der Video-DVD ===
  
Ein DVD Menü ist im Grunde genommen selbst ein kleines Video bestehend aus einem Video- einer Audiospur- und einem Untertitelbestandteil. Bei einfachen Menus besteht das Video nur aus wenigen Einzelbildern des gleichen Bildes, oft nur wenige Sekunden. Der Audiobestandteil kann sehr viel länger sein. Wichtig ist jedoch, das Menu muss ein Audiospur haben, notfalls muss ein stilles Audio eingemischt werden. Der Untertitelbestandteil besteht allerdings nicht aus Text sondern aus Bildern auf einem transparentem Hintergrund. Beim Zusammenstellen wird dann Anhand der Größe der Bildkonturen auf der Untertitelspur Buttonbereiche festgelegt. Damit können dann auf der fertigen DVD innerhalb eines konfiguriertem Videomenüs verschiedene Aktionen gestartet werden. Welche Buttonbereich mit welcher Aktion verknüpft wird, muss dann beim Zusammenstellen der DVD bekannt sein und muss vorher in einer Konfigurationsdatei festgelegt werden. Aus den einzelnen Videosequenzen und dem Menü, wird dann während der DVD-Erstellung unter Verwendung dieser Konfigurationen ein einziger DVD-Stream der in maximal 1GB große Blöcke als VOB Dateien angelegt wird. Hinzu kommen noch Indexdateien, in denen die genaue Position der einzelnen Video- Audio- und Untertitelpakete abgelegt sind. Bei der Erstellung der DVD werden so die Buttonbereiche, zu Sprungmarken auf vorbestimmten Videobereichen verknüpft, und eventuell definierte Abspielsequenzen eingetragen. Damit kann jetzt gezielt vom Menü aus an einen genau vorbestimmten Punkt im Videostream gesprungen werden. siehe auch [http://members.aon.at/neuhold/dvd/dvd_video.html#titlestruct Titelstruktur der DVD]   
+
Ein DVD Menü ist im Grunde genommen selbst ein kleines Video bestehend aus Video- einer Audiospur- und Untertitelbestandteil. Bei einfachen Menus besteht das Video nur aus wenigen Einzelbildern, oder besser gesagt eine Serie ein und des selben Bildes. Oft nur wenige Sekunden (1-2 Sekunden). Der Audiobestandteil kann dabei sehr viel länger sein, und wird auch weiter abgespielt wenn der Videoanteil schon fertig ist. Es bleibt eben das letzte Bild als Standbild stehen. Wichtig ist jedoch, das Menu muss eine Audiospur haben, notfalls muss also ein stilles Audio eingemischt werden. Die Untertitel für das Menu bestehen aus 2 Bildern auf einem transparentem Hintergrund. Beim Zusammenstellen wird dann Anhand der Größe der Bildkonturen auf der Untertitelspur aktive Bildbereiche festgelegt. Damit können dann auf der fertigen DVD innerhalb eines konfiguriertem Videomenüs verschiedene Aktionen gestartet werden. Welcher Bereich mit welcher Aktion verknüpft wird, wird beim Zusammenstellen der DVD-Dateien aus einer Konfigurationsdatei entnommen. Aus den einzelnen Videosequenzen und dem Menü, wird dann während der DVD-Erstellung unter Verwendung dieser Konfigurationen ein einziger durchgehender DVD-Stream. Dieser wird jedoch in maximal 1GB große Blöcke aufgespalten und diese dann mit dem Prefix VOB angelegt. In dieser "dicken Videodaten Wurst" sind jetzt die Videodaten, die Audiodaten und eventuelle Untertitel scheibchenweise abgelegt. Hinzu kommen jetzt noch Indexdateien, in denen die genaue Position der einzelnen Video- Audio- und Untertitelpakete vermerkt ist. Bei der Erstellung der DVD-Struktur werden auch die Buttonbereiche zu Sprungmarken auf vorbestimmten Videobereichen verknüpft, und eventuell definierte Abspielsequenzen eingetragen. Damit kann jetzt gezielt vom Menü aus an einen genau vorbestimmten Punkt im Videostream gesprungen werden. Das kann dann ein Videofilmanfang aber auch eine bestimmte Szene oder auch ein anderes Menu sein, je nach dem was man konfiguriert hat. siehe auch [http://members.aon.at/neuhold/dvd/dvd_video.html#titlestruct Titelstruktur der DVD]   
  
  
  
'''Wir verwenden hier im HOWTO und Script folgende Tools'''
+
'''Verwendet im Script folgende Einzelprogramme aus den oben benannten Paketen'''
  
 
* '''convert montage mogrify''' Utililies zum Bearbeiten von Grafik Bestandteil von [http://www.cit.gu.edu.au/~anthony/graphics/imagick6/ ImageMagick]
 
* '''convert montage mogrify''' Utililies zum Bearbeiten von Grafik Bestandteil von [http://www.cit.gu.edu.au/~anthony/graphics/imagick6/ ImageMagick]
 
* '''transcode''' Utilitie für transcoding von Video and Audio [http://www.penguin-soft.com/penguin/man/1/transcode.html Manpage]
 
* '''transcode''' Utilitie für transcoding von Video and Audio [http://www.penguin-soft.com/penguin/man/1/transcode.html Manpage]
 
* '''mpeg2enc''' (video) MPEG 1/2 Encoder [http://www.penguin-soft.com/penguin/man/1/mpeg2enc.html Manpage]
 
* '''mpeg2enc''' (video) MPEG 1/2 Encoder [http://www.penguin-soft.com/penguin/man/1/mpeg2enc.html Manpage]
* '''mplex''' Utilitie zum Multiplexen einer Videospur mit einer Audiospur [http://www.penguin-soft.com/penguin/man/1/mplex.html Manpage]
+
* '''mplex''' Utilitie zum Multiplexen von Videospur und Audiospur [http://www.penguin-soft.com/penguin/man/1/mplex.html Manpage]
* '''spumux''' Tool zum Einmischen der Untertitel und zur Erstellung der Menufunktionen [http://www.penguin-soft.com/penguin/man/1/spumux.html Manpage ]
+
* '''spumux''' Tool zum Multiplexen von MPEG-Video und Untertitel [http://www.penguin-soft.com/penguin/man/1/spumux.html Manpage ]
* '''dvdauthor''' Programm um die DVD aus ihren Einzelteilen zu der DVD-Struktur zusammenzusetzen [http://www.penguin-soft.com/penguin/man/1/dvdauthor.html Manpage]
+
* '''dvdauthor''' Programm um die DVD-Datenstruktur aus ihren Einzelteilen zusammen zu setzen [http://www.penguin-soft.com/penguin/man/1/dvdauthor.html Manpage]
  
 +
 +
 +
 +
== Erstellen eines DVD-Menus mit einem Script ==
  
 
=== Das Script ===
 
=== Das Script ===
Zeile 56: Zeile 61:
  
  
==== Konfiguration innerhalb des Scriptes ====
+
=== Konfiguration innerhalb des Scriptes ===
  
*Das Script wird ohne Optionen aufgerufen, im ersten Teil des Scriptes gibt es eine Reihe von Konfigurationen und Zuweisungen die vor der Ausführung dort individuell für jedes Projekt gemacht werden müssen.
+
Das Script wird ohne Optionen aufgerufen. Im ersten Teil des Scriptes gibt es eine Reihe von Konfigurationen und Zuweisungen, die vor der Ausführung dort individuell für jedes Projekt gemacht werden müssen. Dabei handelt es sich zum Teil um Dateinamen. Im Orginalscript sind die Optionen alle noch mit den Testoptionen von der Scripterstellung vorbelegt und jeweils mit Kommentaren versehen. Es müssen desshalb mindestend die Dateinamen angepasst werden, wenn das Script auf einem anderem Rechner portiert wird. Hier ist alles auch noch mal ausführlich beschrieben. Man braucht also weder dieses Scipt hier verstehen, noch irgendwelche Programmierkenntnisse besitzen, um damit sein eigenes DVD-Menü zu erstellen.
  
  
; TIME= : Hier wird festgelegt wie lang das Video werden soll. gute Zeiten für das Menüe liegen im Bereich 12 - 120 Sekunden, ''das Script ist im Script im Moment auf maximal 120 Sekunden begrenzt''
+
; TIME= : Hier wird festgelegt wie lang das Videomenu in Sekunden werden soll. gute Zeiten für das Menüe liegen im Bereich 12 - 120 Sekunden, '' (Funktionen im Script sind im Moment auf maximal 120 Sekunden begrenzt)''
  
; TEXT1= : Der Text der hier eingetragen wird wird im erstem Drittel des Videos in der Mitte eingeblendet
+
; TEXT1= : Der Text der hier eingetragen wird, wird im erstem Drittel des Videos in der Mitte eingeblendet
  
; TEXT2= und TEXT3= : entsprechen TEXT1 in den folgenden Dritteln ''alle 3 Textbausteine werden verschiedenfarbig dargestellt, die Farben sind im Moment fest im Script vorgegeben, die entsprechenden Passagen sollten aber leicht zu finden sein''
+
; TEXT2= und TEXT3= : entsprechen TEXT1 in den folgenden Dritteln ''alle 3 Textbausteine werden verschiedenfarbig dargestellt, die Farben sind im Moment fest im Script vorgegeben, die entsprechenden Passagen sollten aber leicht zu finden sein'' (color=FFFFFF entspricht zB weiß)
  
; LOGO= : eine kleine Grafik als Logo unten rechts Format PNG 64x64, ''diese Logo wird am Anfang der Videosequenz kurz eingeblendet.''
+
; LOGO= : eine kleine Grafik als Logo unten rechts, empfohlenes Format ist PNG, Größe 64x64, ''diese Logo wird am Anfang der Videosequenz kurz eingeblendet.''
  
; G= : die Größe der Thrumbnailframes  getestet sind 200x152 160x120 120x90 (verarbeitet wurde Videoformat 704x576 16:9 mpeg2)'' hier sind nicht alle Kombinationen erlaubt, bei ungünstigen Kombinationen entstehen schwarze Ränder an der rechten Seite oder unten innerhalb der Thrumbnailvideos. Notfalls muss man hier ein bischen probieren.''   
+
; G= : die Größe der Thrumbnailframes, getestet sind 200x152 160x120 120x90 (Ausgangs-Videomaterial 704x576 16:9 mpeg2)'' hier sind nicht alle Kombinationen zweckmäßig und sollten möglichst ein Vielfaches von 8 sein, bei ungünstigen Kombinationen entstehen kleine schwarze Ränder an der rechten Seite oder unten innerhalb der Thrumbnailvideos. Notfalls muss man hier ein bischen probieren.''   
  
; ORGINAL= : Das Video das den Hintergrund bilden soll, (muss mindestens TIME lang sein  
+
; ORGINAL= : Das Video das den Hintergrund bilden soll, (muss mindestens TIME lang sein)
  
 
; FRAME[1]= : erstes Video das als Thrumbnail dargestellt werden soll, (muss mindestens TIME lang sein)  
 
; FRAME[1]= : erstes Video das als Thrumbnail dargestellt werden soll, (muss mindestens TIME lang sein)  
  
; FRAME[2][3][4][5][6]= : analog FRAME[1] werden nicht alle benötigt, können die im Moment nicht benötigten leer bleiben.  
+
; FRAME[2][3][4][5][6]= : analog FRAME[1] werden nicht alle benötigt, da man eventuell nur 3 Menueinträge benötigt, können die im Moment nicht benötigten leer bleiben.  
  
; SOUND= : "Audiofile die benutzt werden soll empfohlenes Format AC-3, sollte mindestens TIME lang sein [[Dolby 5.1 als DVD audio track]]
+
; SOUND= : Audiofile die benutzt werden soll empfohlenes Format AC-3, sollte mindestens TIME lang sein [[Dolby 5/1 als DVD audio track]]
  
 
; FILMNAME[1]= : Kurzer Titel der Videosequenz in Frame 1 , wird unterhalb des Frames in den Framerahmen angezeigt.
 
; FILMNAME[1]= : Kurzer Titel der Videosequenz in Frame 1 , wird unterhalb des Frames in den Framerahmen angezeigt.
Zeile 83: Zeile 88:
 
; FILMNAME[2][3][4][5][6]= : analog FILMNAME[1], nicht benötigte können leer bleiben, darf aber nicht leer bleiben wenn das Frame angezeigt wird, sonst werden im Script Fehler erzeugt.
 
; FILMNAME[2][3][4][5][6]= : analog FILMNAME[1], nicht benötigte können leer bleiben, darf aber nicht leer bleiben wenn das Frame angezeigt wird, sonst werden im Script Fehler erzeugt.
  
; ZAHL= : Anzahl der anzuzeigenden Videoframes auf dem Hintergrundvideo, Möglich in der momentanen Fassung des Scriptes 1 bis 6.  
+
; ZAHL= : Anzahl der anzuzeigenden Videoframes auf dem Hintergrundvideo, möglich in der momentanen Fassung des Scriptes 1 bis 6.  
  
 
; A[1]= : Position des ersten Thrumbnails auf dem Hintergrundvideo, im Format '''X-Achse x Y-Achse''' (obere linke Ecke ist 0x0)   
 
; A[1]= : Position des ersten Thrumbnails auf dem Hintergrundvideo, im Format '''X-Achse x Y-Achse''' (obere linke Ecke ist 0x0)   
  
; A[2][3][4][5][6] = : Analog A[1] Der Gesamtbereich im Video umfasst 720x576 unbenutzte sollten möglichst 0x0 enthalten.  
+
; A[2][3][4][5][6] = : Analog A[1] Der Gesamtbereich im Video umfasst 720x576, unbenutzte sollten möglichst 0x0 oder andere konforme Einträge enthalten.  
  
; FONT=  : eine Truetype Schrift für die Anzeige , sollte möglichst nicht kursiv aber fett sein, (gut geeignet zB VerdaBd.ttf; impact.ttf) verschnörkelten Schriften wirken klein unscharf.   
+
; FONT=  : eine Truetype Schrift für die Anzeige, sollte möglichst nicht kursiv aber fett sein, (gut geeignet zB VerdaBd.ttf; impact.ttf) verschnörkelten Schriften wirken bei kleiner Darstellung oftmals unscharf.   
  
 
----
 
----
  
'''Achtung''' ''wegen der beabsichtigten Kürze des Scriptes, ist es innerhalb des Script nicht möglich gewesen, die individuellen Konfigurationen auf Plausibilität und Vollständigkeit hin zu prüfen. Für einen ersten Test sollten nur erst einmal die Dateinamen auf die Videos und den Sound gesetzt werden, und die Schriftart überprüft werden, sowie die TIME auf eine kleinen Wert zB 5 gesetzt werden.''
+
'''Achtung''' ''wegen der beabsichtigten Kürze des Scriptes, ist es innerhalb des Script nicht möglich gewesen, die individuellen Konfigurationen auf Plausibilität und Vollständigkeit hin zu prüfen. Für einen ersten Test sollten nur erst einmal die Dateinamen auf die Videos und den Sound gesetzt werden, und die Schriftart auf Vorhandensein überprüft werden, sowie die TIME auf eine kleinen Wert zB 5 gesetzt werden.''
 
 
  
==== was passiert innerhalb des Scriptes ====
+
=== Was passiert innerhalb des Scriptes ===
  
 
* nach der Variablen Konfiguration werden vom Script einige Berechnungen und Wertzuweisungen gemacht,
 
* nach der Variablen Konfiguration werden vom Script einige Berechnungen und Wertzuweisungen gemacht,
* danach werden die Videos entsprechend der gewünschten Länge in Einzelbilder zerlegt und als Dateien abgelegt.
+
* danach werden die Videos entsprechend der gewünschten Länge in Einzelbilder zerlegt und als Bilddateien abgelegt.
* dabei wird das Hintergrundvideo 720x576 und die anderen in der konfigurierten  Auflösung als Bilder gespeichert
+
* dabei wird das Hintergrundvideo 720x576 und die anderen in der konfigurierten  Auflösung als unkomprimierte Bilder gespeichert
 
* mittels Berechnung werden Parameter für die spätere Positionierung ermittelt.
 
* mittels Berechnung werden Parameter für die spätere Positionierung ermittelt.
 
* die gesamte Serie der Thrumbnailbilder wird mit einem Rahmen und Namen versehen
 
* die gesamte Serie der Thrumbnailbilder wird mit einem Rahmen und Namen versehen
 
* die Thrumbnails werden auf die jeweiligen Hintergrundbilder portiert.
 
* die Thrumbnails werden auf die jeweiligen Hintergrundbilder portiert.
* in mehreren transcoding Prozessen werden die Bilder zu einem Film zusammengesetzt, die Titelschriften und das Logo hinzugemischt.
+
* in mehreren transcoding Prozessen werden die Bilder zu einem MPEG Film zusammengesetzt, die Titelschriften und das Logo hinzugemischt.
* das Ergebnis ist ein DVD-konformes Video dass mit der Soundfile gemuxt wird, ist die Soundfile zu lang, wird sie abgeschnitten.  
+
* das Ergebnis ist ein DVD-konformes Video, dass mit der Soundfile gemuxt wird, ist die Soundfile zu lang, wird sie abgeschnitten.  
 
* es folgen wieder Positionsberechnungen  
 
* es folgen wieder Positionsberechnungen  
 
* aus diesen Berechnungen werden die beiden Menümasken für die Untertitelmaskierung des Menüs erstellt
 
* aus diesen Berechnungen werden die beiden Menümasken für die Untertitelmaskierung des Menüs erstellt
Zeile 114: Zeile 118:
 
Das Ergebniss ist eine DVD-konforme Videodatei Namens '''menu_finale.vob''' diese enthält jetzt schon die notwendigen Konfigurationen, um sie mit dvdauthor direkt als animiertes Menu einsetzen zu können.
 
Das Ergebniss ist eine DVD-konforme Videodatei Namens '''menu_finale.vob''' diese enthält jetzt schon die notwendigen Konfigurationen, um sie mit dvdauthor direkt als animiertes Menu einsetzen zu können.
  
'''Achtung''' ''es werden temporär mehrere hundert Dateien im aktuellem Verzeichniss angelegt und auch wieder gelöscht, nachdem sie nicht mehr benötigt werden. Das Programm wurde optimiert auf einen geringst möglichen Qualitätsverlust, dabei wurde ein extrem hoher Plattenplatz Bedarf in Kauf genommen. Für ein 30 Sekunden Video sollten 3GB  Plattenplatz im aktuellem Verzeichnis temorär frei sein. Die Laufzeit des Scriptes dürfte je nach Rechnerleistung bei ca. 20 Minuten für ein 30 Sekunden Video einzuordnen sein. (Testergebnis: TIME=25  1,5GB maximal Plattenbenutzung; 15 Minuten Laufzeit.)''
+
'''Achtung''' ''es werden temporär mehrere hundert Dateien im aktuellem Verzeichniss angelegt und auch wieder gelöscht, nachdem sie nicht mehr benötigt werden. Das Programm wurde optimiert auf einen geringst möglichen Qualitätsverlust, dabei wurde ein extrem hoher Plattenplatz Bedarf in Kauf genommen. Für ein 30 Sekunden Video sollten 3GB  Plattenplatz im aktuellem Verzeichnis temorär frei sein. Die Laufzeit des Scriptes dürfte je nach Rechnerleistung bei ca. 20 Minuten für ein 30 Sekunden Video einzuordnen sein.  
 +
(Testergebnis bei TIME=25: 1,5GB maximal Plattenbenutzung; 15 Minuten Laufzeit.)''
  
  
  
==== Beispielbilder entstanden mit der Konfiguration im Script ====
+
=== Beispielbilder entstanden mit der Konfiguration im Script ===
  
 
Hier einige Beispielbilder erstellt mit den Orginaloptionen des Scriptes
 
Hier einige Beispielbilder erstellt mit den Orginaloptionen des Scriptes
Zeile 130: Zeile 135:
 
|}
 
|}
  
Eine kleine Vorschau wie das animiert aussieht [[:bild:DVD-menu1.gif|GIF 1,2MB]] (5 Sekunden-Loop 240x192 8 Frame/Sekunde)
+
 
 +
 
 +
Eine kleine Vorschau, wie das animiert aussieht [[:bild:DVD-menu1.gif|GIF 1,2MB]] (5 Sekunden-Loop 240x192 8 Frame/Sekunde)
 
<!-- günstiger wäre hier wohl eine Mpeg4, allerdings bin ich mir nicht sicher ob das Wiki das unterstützt, wird noch geklärt robi -->
 
<!-- günstiger wäre hier wohl eine Mpeg4, allerdings bin ich mir nicht sicher ob das Wiki das unterstützt, wird noch geklärt robi -->
  
  
==== Tips und Tricks ====
+
=== Tips und Tricks ===
  
* Da mit einer längeren Laufzeit des Scriptes zu rechnen ist und man bei der Konfiguration doch einiges anpassen muss, sollte man neue Konfigurationen erst einmal mit wenigen Sekunden testen. ''' nicht wundern:''' ''bei nur wenigen Sekunden wird nur der mittlere DVD-Titeltext angezeigt.''
+
* Da mit einer längeren Laufzeit des Scriptes zu rechnen ist, und man bei der Konfiguration doch einiges anpassen muss, sollte man neue Konfigurationen erst einmal mit wenigen Sekunden testen. ''' nicht wundern:''' ''bei nur wenigen Sekunden wird eventuell nur der mittlere DVD-Titeltext angezeigt.''
 +
* Bei der Positionierung der Frames beachten, dass bei der Darstellung auf einem Fernseher durchaus oben/unten/rechts/links bis zu 10% verschwinden können.
 +
* Die Position bezeichnet immer die Framebild-Ecke oben links. (Nicht die Bildecke des Rahmens).
 
* Das Hintergrundvideo sollte möglicht ruig sein, ehr nervöse Videosequenzen als Hintergrund lenken sehr stark ab.
 
* Das Hintergrundvideo sollte möglicht ruig sein, ehr nervöse Videosequenzen als Hintergrund lenken sehr stark ab.
 
* Video und die gewünschte Länge so wählen das ein möglichst sanfter Übergang im Hintergrundvideo entsteht, wenn das Video später im Loop läuft.
 
* Video und die gewünschte Länge so wählen das ein möglichst sanfter Übergang im Hintergrundvideo entsteht, wenn das Video später im Loop läuft.
* Das selbe gilt für den Sound, möglichst so auswählen, dass er minimal kürzer ist, als die Videogesamtlänge, oder zum Ende hin ausblenden, damit beim Loop der Sound nicht hart abgehackt wird.
+
* Das selbe gilt für den Sound, günstig zB.: so auswählen, dass er minimal kürzer ist, als die Videogesamtlänge, oder zum Ende hin ausblenden, damit beim Loop der Sound nicht hart abgehackt wird.
* Das Menü wurde absichtlich im Format 4:3 erstellt, in den derzeitig getesteten Versionen von dvdauthor funktionieren 16:9 Menüs bei 4:3 Ausgabe nicht richtig.  
+
* Das Menü wurde absichtlich im Format 4:3 erstellt, in den derzeitig getesteten Versionen von dvdauthor funktionieren 16:9 Menüs bei 4:3 Ausgabe nicht richtig auf externen Videoplayern.
 
<!-- sobald das behoben ist, muss das Script überarbeitet werden, da dann für jede Bildschirmauflösung eine eigene Maske erzeugt werden muss - robi -->
 
<!-- sobald das behoben ist, muss das Script überarbeitet werden, da dann für jede Bildschirmauflösung eine eigene Maske erzeugt werden muss - robi -->
 +
* Dateinamen sind immer komplett einzugeben, Leerzeichen, Sonderzeichen, ~*? oder sonstige Expansionen im Path oder Dateinamen sind nicht getestet, verursachen aber mit hoher Wahrscheinlichkeit Fehler und sind desshalb zu vermeiden.
 +
  
Weitere Möglichkeiten das Erscheinungsbild zu konfigurieren befindet sich in folgendem Abschnitt:
+
 
 +
Weitere Möglichkeiten das Erscheinungsbild zu konfigurieren befindet sich in folgendem Scriptabschnitt:
 
<pre>
 
<pre>
 
#----------- Scriptinterne Konfiguration -------------#
 
#----------- Scriptinterne Konfiguration -------------#
Zeile 150: Zeile 162:
 
M[1]="3x3"    #Maske1
 
M[1]="3x3"    #Maske1
 
</pre>
 
</pre>
* mit '''BORDER=''' kann die Breite und der Frameborder beeinflusst werden. Die 5 hier bedeutet der Border ist 5 Pixel hoch und breit. Dieser Wert kann vergrößert werden oder bis auf 2 verkleinert werden. An der ''geometry +0+0'' bitte nichts änderen, das kann die Berechnung der Platzierung der Masken verschieben, und wird in den Berechnungen nicht berücksichtigt.  
+
* mit '''BORDER=''' kann die Breite und der Frameborder beeinflusst werden. Die 5 hier bedeutet, der Border ist 5 Pixel hoch und breit. Dieser Wert kann vergrößert werden oder bis auf 2 verkleinert werden. An der ''geometry +0+0'' nichts änderen, das kann die Berechnung der Platzierung der Masken verschieben, und wird in den Berechnungen nicht berücksichtigt.  
 
Beispiele:
 
Beispiele:
 
[[bild:DVD-menu-borderbreite.jpg]]
 
[[bild:DVD-menu-borderbreite.jpg]]
Zeile 159: Zeile 171:
 
[[Bild:DVD-menu-borderfarbe.jpg]]
 
[[Bild:DVD-menu-borderfarbe.jpg]]
  
* der Wert in '''M[1]=''' beeinflusst die Breite der Maske die mittels Spumux über das Menü gelegt wird. Wenn also die gelbe Select-Maske zu "dünn" erscheint, dann kann hier zB. auf '''6x6''' die Maske verbreitert werden.
+
* der Wert in '''M[1]=''' beeinflusst die Breite der Maske die mittels Spumux über das Menü gelegt wird. Wenn also die gelbe Select-Maske zu "dünn" erscheint, dann kann man hier zB. mit '''6x6''' die Maske verbreitern.
  
* es sind hier noch eine ganze Reihe weiterer Änderungen des Aussehens der Frames zu konfigurieren, diese sind aber im Moment im Script nicht berücksichtigt, und müssten individuell ausprobiert und eingearbeitet werden, der persönlichen Kreativität sind hier jedenfalls  Tür und Tor offen. Hilfe und Anregungen gibt es [http://www.cit.gu.edu.au/~anthony/graphics/imagick6/ hier] genügend.
+
* es sind durch kleine Eingriffe noch eine ganze Reihe weiterer Änderungen des Aussehens der Frames möglich, dazu sind aber zum Teil kleinere  Änderungen innerhalb des  Scripts notwendig, um das Script jetzt nicht unnötig aufzublähen, wurde darauf ersteinmal verzichtet. Für persönlichen Kreativität ist hier jedenfalls  Tür und Tor offen. Hilfe und Anregungen zu Grafikmanipulationen gibt es [http://www.cit.gu.edu.au/~anthony/graphics/imagick6/ hier] genügend.
 
   
 
   
  
==== Aussichten ====
+
=== Aussichten ===
  
 
es wird noch an weiteren grafischen Effekten gearbeitet. ''zB Drehung der Thumbnails, weitere Rahmendekors, Schatten, Schrifteffekte'' Inwieweit man das hier alles innerhalb des Wiki einarbeiten kann, wird die Zukunft zeigen. <!-- eventuell kann man hier Patches anbieten, alles in das Script einzuarbeiten wird wohl zu unübersichtlich-  robi -->   
 
es wird noch an weiteren grafischen Effekten gearbeitet. ''zB Drehung der Thumbnails, weitere Rahmendekors, Schatten, Schrifteffekte'' Inwieweit man das hier alles innerhalb des Wiki einarbeiten kann, wird die Zukunft zeigen. <!-- eventuell kann man hier Patches anbieten, alles in das Script einzuarbeiten wird wohl zu unübersichtlich-  robi -->   
  
  
=== Authoring der DVD mittels dvdauthor ===
+
== Authoring der DVD mittels dvdauthor ==
  
 
Bemerkungen zum verwendeten Beispiel:
 
Bemerkungen zum verwendeten Beispiel:
Zeile 176: Zeile 188:
 
* Die Videosequenzen sind im 16:9 Format das Menü ist im 4:3 Format erstellt
 
* Die Videosequenzen sind im 16:9 Format das Menü ist im 4:3 Format erstellt
 
* Am Anfang der DVD ist ein kleines Intro  
 
* Am Anfang der DVD ist ein kleines Intro  
 +
::Achtung während des Intros kann auf externen DVD-Playern nicht auf das Menu gewechselt werden, desshalb kurz halten (< 1 Minute)
 
* Danach kommt unser erstelltes Menü in einer Endlosschleife  
 
* Danach kommt unser erstelltes Menü in einer Endlosschleife  
* Im Menü gibt es 6 Sprungmarken auf die einzelnen Sequenzen
+
* Im Menü gibt es 6 Sprungmarken auf den Begin der einzelnen Videosequenzen
 
* Jede fertige Videosequenz springt wieder zurück ins Menü
 
* Jede fertige Videosequenz springt wieder zurück ins Menü
  
 +
* Wir berücksichtigen hier weder Chapter noch multible Video- Audio- und Untertitelspuren.
 +
Dazu würden wird bei einer Profi-DVD dann jeweils eigene Menüs zur Steuerung der Kanäle konfigurieren.
 +
[[Mastering_per_Script#weitere_Links_zum_Thema_dvdauthor|siehe hier]]
  
==== die Konfiguration in der Datei dvdauthor.xml ====
+
 
 +
 
 +
=== die Konfiguration in der Datei dvdauthor.xml ===
  
 
''' Datei dvdauthor.xml'''
 
''' Datei dvdauthor.xml'''
Zeile 231: Zeile 249:
  
  
==== Datei dvdautor.xml anpassen ====
+
=== Datei dvdautor.xml anpassen ===
* für viele Einsaztfälle ist diese einfache Script aus Ausgangspunkt gut geeignet.
+
 
* Sollten ein Filmtitel aus mehreren einzelnen Videodateien bestehen, werden diese einfach  
+
* für viele Einsatzfälle für private Videos ist diese einfache dvdautor.xml aus Ausgangspunkt gut geeignet.
 +
* einer der wichtigsten Einträge hier ist
 +
<dvdauthor dest="/data1/DVD-test">
 +
hiermit wird festgelegt in welches Verzeichnis die Dateien für die DVD erzeugt werden sollen. In diesem Verzeichniss sollte also genügend Platz sein, um die gesammte DVD aufzunehmen. Es werden dort (also hier im Beispiel in /data1/DVD-test ) die Verzeichnisse '''AUDIO_TS''' und  '''VIDEO_TS''' angelegt. AUDIO_TS bleibt leer und in VIDEO_TS werden die Dateien für die Video-DVD angelegt.
 +
* Sollten ein einzelner Filmtitel aus mehreren einzelnen Videodateien bestehen, werden diese einfach  
 
<pre>
 
<pre>
  <pgc>  
+
<pgc>  
 
     <vob file="..."/>
 
     <vob file="..."/>
 
     <vob file="..."/>  
 
     <vob file="..."/>  
Zeile 242: Zeile 264:
 
</pgc>
 
</pgc>
 
</pre>
 
</pre>
aneinander gereiht. Man muss also nicht alles beim Videoschnitt zusammenkleben, und kann sich bei der Bearbeitung auf gut handelbare Videogrößen beschränken.   
+
in der richtigen Reihenfolge hintereinander aufgeführt. Man muss also nicht alles beim Videoschnitt zusammenkleben, und man kann sich bei der Bearbeitung und Nachvertonung auf gut händelbare Videosequenzen beschränken. Diese Übergänge hier sollten später beim Abspielen annähernd nahtlos erfolgen.   
* Weitere Informationen siehe  
+
* Weitere Informationen und gültige Optionen siehe Manpage von dvdauthor.
 +
 
 +
 
 +
 
 +
=== Dateistruktur für die DVD erzeugen, testen und brennen ===
 +
 
 +
Nachdem die Datei dvdautor.xml angepasst ist, und man sich vergewissert hat, dass alle benötigten Videodatein verfügbar sind und genügend Platz für die DVD-Dateien zur Verfügung steht, kann man dvdauthor starten.
 +
dvdauthor -x dvdautor.xml
 +
Wenn alles richtig konfiguriert ist, dann werden unter .../VIDEO_TS in unserem Beispiel folgende Dateien angelegt.
 +
VIDEO_TS.BUP  VIDEO_TS.IFO  VIDEO_TS.VOB  VTS_01_0.BUP  VTS_01_0.IFO  VTS_01_0.VOB  VTS_01_1.VOB.......
 +
: '''VIDEO_TS.VOB '''eine VOB-Datei (Video OBject) ist das Intro
 +
: '''VTS_01_0.VOB '''das ist das Menü
 +
: '''VTS_01_1.VOB VTS_01_?.VOB ... ''' Das sind die gesamten aneinander gereihten Videosequenzen die vom Menu aus gestartet werden. Die Größe der einzelnen Dateien ist auf 1GB begrenzt.
 +
: '''VIDEO_TS.BUP  VIDEO_TS.IFO  VTS_01_0.BUP  VTS_01_0.IFO ''' Die IFO-Dateien enthalten Steuerinformation (zB Einspringpunkte für die Kapitelanwahl), die BUP-Dateien sind BackUPs der IFO-Dateien.
 +
 
 +
Wenn aus welchem Grunde auch immer dvdautor erneut ausgeführt werden soll, müssen die vorher schon erstellten Dateien gelöscht werden. Man kann getrost alles samt Verzeichnis löschen.
 +
rm -rf /Path/zum/DVD-Verzeichnis/VIDEO_TS
 +
Die vorher erstellten würden sonst nicht überschrieben, und um die neuen Dateien erweitert.
 +
 
 +
 
 +
 
 +
* Unser im Script erstelltes Menüvideo können wir mit jedem Videoplayer unter Linux schon mal anschauen.
 +
xine menu_finale.vob
 +
was wir hier allerdings noch nicht erkennen können, sind die Menüfunktionen, also die eigentlichen Bildmasken die uns die Navigation im Menü erlauben, das wird erst funktionieren wenn wir die richtige Dateistruktur für die DVD mittels dvdauthor erstellt haben.
 +
 
 +
* Nach dem Erstellen der DVD-Dateien mittels dvdauthor können wir das Menü und unsere Konfiguration schon mal auf dem Rechner testen, auch ohne die DVD vorher zu brennen.
 +
xine dvd:/Path/zum/DVD-Verzeichnis/VIDEO_TS
 +
 
 +
* Sollte das alles soweit richtig funktionieren, und wir mit unserem Kunstwerk zufrieden sind, dann muss das Ganze jetzt noch auf die DVD gebrannt werden.
 +
Die Dateistruktur einschließlich der beiden Verzeichnisse '''AUDIO_TS''' und  '''VIDEO_TS''' haben wir schon, wir brauchen jetzt nur noch das richtige Filesystem.
  
 +
* Zum Erstellen und Brennen desselben kann man '''growisofs''', Bestandteil von '''dvd+rw-tools Paket''' benutzen.
 +
growisofs -Z /dev/dvd -dvd-video /Path/zum/DVD-Verzeichnis/
  
==== DVD erzeugen und testen ====
+
* allerdings geht das mit '''K3b''' genauso gut, damit haben die meisten sowieso schon Erfahrungen gesammelt und man hat auch gleich die Möglichkeit der DVD noch vernünftige Datenträgereinträge hinzuzufügen.
 +
:: Unter '''K3b -> Datei -> Neues Projekt -> Neues Video DVD Projekt''', eventuell kommt dabei eine Warnung, dass K3b die IFO und BUP nicht selbst erstellen kann, das können wir ignorieren, die hat ja dvdauthor für uns schon erzeugt.
 +
:: die Dateien die dvdautor angelegt hat, jetzt alle in das Verzeichnis VIDEO_TS des neues Projektes verschieben und brennen.
  
* dvdauthor -x dvdautor.xml
+
* jetzt können und sollten wir unsere neu erstellte DVD auf einem externem DVD-Player testen. Die Tests sollten wenn möglichst sowohl auf Normalbild- und Breitbildschirmen gemacht werden, um sicherzustellen, das später auch wirklich auf allen Geräten funktionieren. Wenn alle möglichen Bildschirmeinstellungen am Player und Bildschirm die gewünschten Auflösungen hervorbringen, unsere Audiospur als die default-Audiospur benutzt wird, und eventuelle Untertitel auch noch funktionieren, dann ist das Kunstwerk jetzt fertig und wir können unseren Nachbarn aus dem Bett klingel, um ihm zu zeigen, was sein teures Videobearbeitungsprogramm eventuell nicht kann.
* xine dvd:/path/zu/DVD-dateien/VIDEO_TS
 
  
  
==== weiter Links zum Thema ====
+
 
 +
=== weitere Links zum Thema dvdauthor ===
  
 
*[http://www.wershofen.de/downloads/dvdauthor.xml dokumentierte dvdautor.xml für mehrere Menüebenen]
 
*[http://www.wershofen.de/downloads/dvdauthor.xml dokumentierte dvdautor.xml für mehrere Menüebenen]
Zeile 260: Zeile 315:
  
 
--[[Benutzer:Robi|Robi]] 21:14, 24. Sep 2006 (CEST)
 
--[[Benutzer:Robi|Robi]] 21:14, 24. Sep 2006 (CEST)
 +
 +
 +
 +
[[Multimedia | Zurück zu Multimedia]][[Category:Multimedia]]

Aktuelle Version vom 10. Dezember 2007, 18:30 Uhr

DVD-Authoring auf der Konsole

In dem nachfolgendem Howto wird vorgestellt wie man mit einem Script ein animiertes Menu für seine DVD aus den eigenen Videosequenzen erstellen kann.


Links zum Thema DVD-Authoring


Vorbemerkung

Es gibt unter LINUX eine ganze Reihe von Tools um DVDs zu erstellen. Die Einarbeitung in diese Programme ist jedoch oftmals mit viel Zeit verbunden. Nach einiger Zeit wird man dann eventuell doch festzustellen, dass genau das, was man gerne haben möchte genau mit diesem Programm nicht zu machen ist. Allerdings gibt es an den zu Grunde liegenden Programmteilen jede Menge Optionen und (fast) alles ist mehr oder weniger gut im Internet beschrieben. Um das Letzte aus seinem LINUX herauszuholen, um zum Beispiel auch mal seinem Nachbarn mit dessen teuren Videosoftware zum staunen zu bringen, kann man also wieder zurück auf die Konsole.

Hier wird eine Möglichkeit vorgestellt mittels der Grafiktools innerhalb eines Scriptes kurze Videosequenzen zu bearbeiten, und dabei Videoeffekte nach seinen eigenen Vorstellungen einzubauen, für die es keine fertigen Tools gibt. Das hier vorgestellte Script erstellt ein Video-animiertes Menü zum Einsatz als Auswahlmenu bei der Zusammenstellung einer Video-DVD. Es ist auf eine bestmögliche Qualität optimiert und wurde urspünglich zum Erstellen von privaten Video-DVDs aus DVD-Camcorder Rohdateien von Urlaub erstellt.


notwendige Software Pakete

  • ImageMagick Version 5.5... oder neuer Ein mächtige Sammlung von Tools and Libraries zum erzeugen, bearbeiten und konvertieren von Grafiken in über 80 Formaten beinhaltet Schnittstellen zu wichtigen Script- und Progammiersprachen.
Nachfolgende Pakete sind für SuSe am besten von packman zu beziehen, (eventuelle SuSE Orginalpakete gleichen Namens sollten durch die Pakete von Packman ersetzen werden) siehe auch Multimediapakete installieren
  • transcode eine Konsole Utility Sammlung für Video-Stream-Processing.
  • mjpegtools ein Set von Basis Programmen und Libraries zum erstellen, abspielen und editieren von MPEG komprimiertem Audio und Video.
  • dvdauthor Tools zum Erstellen von DVD-kompatiblen Filesystemen aus multiplen MPEG-Streams
  • xine-ui freier Video-Player


das Prinzip des DVD-Menus und der Video-DVD

Ein DVD Menü ist im Grunde genommen selbst ein kleines Video bestehend aus Video- einer Audiospur- und Untertitelbestandteil. Bei einfachen Menus besteht das Video nur aus wenigen Einzelbildern, oder besser gesagt eine Serie ein und des selben Bildes. Oft nur wenige Sekunden (1-2 Sekunden). Der Audiobestandteil kann dabei sehr viel länger sein, und wird auch weiter abgespielt wenn der Videoanteil schon fertig ist. Es bleibt eben das letzte Bild als Standbild stehen. Wichtig ist jedoch, das Menu muss eine Audiospur haben, notfalls muss also ein stilles Audio eingemischt werden. Die Untertitel für das Menu bestehen aus 2 Bildern auf einem transparentem Hintergrund. Beim Zusammenstellen wird dann Anhand der Größe der Bildkonturen auf der Untertitelspur aktive Bildbereiche festgelegt. Damit können dann auf der fertigen DVD innerhalb eines konfiguriertem Videomenüs verschiedene Aktionen gestartet werden. Welcher Bereich mit welcher Aktion verknüpft wird, wird beim Zusammenstellen der DVD-Dateien aus einer Konfigurationsdatei entnommen. Aus den einzelnen Videosequenzen und dem Menü, wird dann während der DVD-Erstellung unter Verwendung dieser Konfigurationen ein einziger durchgehender DVD-Stream. Dieser wird jedoch in maximal 1GB große Blöcke aufgespalten und diese dann mit dem Prefix VOB angelegt. In dieser "dicken Videodaten Wurst" sind jetzt die Videodaten, die Audiodaten und eventuelle Untertitel scheibchenweise abgelegt. Hinzu kommen jetzt noch Indexdateien, in denen die genaue Position der einzelnen Video- Audio- und Untertitelpakete vermerkt ist. Bei der Erstellung der DVD-Struktur werden auch die Buttonbereiche zu Sprungmarken auf vorbestimmten Videobereichen verknüpft, und eventuell definierte Abspielsequenzen eingetragen. Damit kann jetzt gezielt vom Menü aus an einen genau vorbestimmten Punkt im Videostream gesprungen werden. Das kann dann ein Videofilmanfang aber auch eine bestimmte Szene oder auch ein anderes Menu sein, je nach dem was man konfiguriert hat. siehe auch Titelstruktur der DVD


Verwendet im Script folgende Einzelprogramme aus den oben benannten Paketen

  • convert montage mogrify Utililies zum Bearbeiten von Grafik Bestandteil von ImageMagick
  • transcode Utilitie für transcoding von Video and Audio Manpage
  • mpeg2enc (video) MPEG 1/2 Encoder Manpage
  • mplex Utilitie zum Multiplexen von Videospur und Audiospur Manpage
  • spumux Tool zum Multiplexen von MPEG-Video und Untertitel Manpage
  • dvdauthor Programm um die DVD-Datenstruktur aus ihren Einzelteilen zusammen zu setzen Manpage



Erstellen eines DVD-Menus mit einem Script

Das Script

Zwecks besser Übersichtlichkeit dieses Howtos wurde das Script ausgelagert.

  • Das Script ist auf mehreren Rechnern unter SuSE 9.1 und SuSE 10.1 getestet worden.


Konfiguration innerhalb des Scriptes

Das Script wird ohne Optionen aufgerufen. Im ersten Teil des Scriptes gibt es eine Reihe von Konfigurationen und Zuweisungen, die vor der Ausführung dort individuell für jedes Projekt gemacht werden müssen. Dabei handelt es sich zum Teil um Dateinamen. Im Orginalscript sind die Optionen alle noch mit den Testoptionen von der Scripterstellung vorbelegt und jeweils mit Kommentaren versehen. Es müssen desshalb mindestend die Dateinamen angepasst werden, wenn das Script auf einem anderem Rechner portiert wird. Hier ist alles auch noch mal ausführlich beschrieben. Man braucht also weder dieses Scipt hier verstehen, noch irgendwelche Programmierkenntnisse besitzen, um damit sein eigenes DVD-Menü zu erstellen.


TIME= 
Hier wird festgelegt wie lang das Videomenu in Sekunden werden soll. gute Zeiten für das Menüe liegen im Bereich 12 - 120 Sekunden, (Funktionen im Script sind im Moment auf maximal 120 Sekunden begrenzt)
TEXT1= 
Der Text der hier eingetragen wird, wird im erstem Drittel des Videos in der Mitte eingeblendet
TEXT2= und TEXT3= 
entsprechen TEXT1 in den folgenden Dritteln alle 3 Textbausteine werden verschiedenfarbig dargestellt, die Farben sind im Moment fest im Script vorgegeben, die entsprechenden Passagen sollten aber leicht zu finden sein (color=FFFFFF entspricht zB weiß)
LOGO= 
eine kleine Grafik als Logo unten rechts, empfohlenes Format ist PNG, Größe 64x64, diese Logo wird am Anfang der Videosequenz kurz eingeblendet.
G= 
die Größe der Thrumbnailframes, getestet sind 200x152 160x120 120x90 (Ausgangs-Videomaterial 704x576 16:9 mpeg2) hier sind nicht alle Kombinationen zweckmäßig und sollten möglichst ein Vielfaches von 8 sein, bei ungünstigen Kombinationen entstehen kleine schwarze Ränder an der rechten Seite oder unten innerhalb der Thrumbnailvideos. Notfalls muss man hier ein bischen probieren.
ORGINAL= 
Das Video das den Hintergrund bilden soll, (muss mindestens TIME lang sein)
FRAME[1]= 
erstes Video das als Thrumbnail dargestellt werden soll, (muss mindestens TIME lang sein)
FRAME[2][3][4][5][6]= 
analog FRAME[1] werden nicht alle benötigt, da man eventuell nur 3 Menueinträge benötigt, können die im Moment nicht benötigten leer bleiben.
SOUND= 
Audiofile die benutzt werden soll empfohlenes Format AC-3, sollte mindestens TIME lang sein Dolby 5/1 als DVD audio track
FILMNAME[1]= 
Kurzer Titel der Videosequenz in Frame 1 , wird unterhalb des Frames in den Framerahmen angezeigt.
FILMNAME[2][3][4][5][6]= 
analog FILMNAME[1], nicht benötigte können leer bleiben, darf aber nicht leer bleiben wenn das Frame angezeigt wird, sonst werden im Script Fehler erzeugt.
ZAHL= 
Anzahl der anzuzeigenden Videoframes auf dem Hintergrundvideo, möglich in der momentanen Fassung des Scriptes 1 bis 6.
A[1]= 
Position des ersten Thrumbnails auf dem Hintergrundvideo, im Format X-Achse x Y-Achse (obere linke Ecke ist 0x0)
A[2][3][4][5][6] = 
Analog A[1] Der Gesamtbereich im Video umfasst 720x576, unbenutzte sollten möglichst 0x0 oder andere konforme Einträge enthalten.
FONT=  
eine Truetype Schrift für die Anzeige, sollte möglichst nicht kursiv aber fett sein, (gut geeignet zB VerdaBd.ttf; impact.ttf) verschnörkelten Schriften wirken bei kleiner Darstellung oftmals unscharf.

Achtung wegen der beabsichtigten Kürze des Scriptes, ist es innerhalb des Script nicht möglich gewesen, die individuellen Konfigurationen auf Plausibilität und Vollständigkeit hin zu prüfen. Für einen ersten Test sollten nur erst einmal die Dateinamen auf die Videos und den Sound gesetzt werden, und die Schriftart auf Vorhandensein überprüft werden, sowie die TIME auf eine kleinen Wert zB 5 gesetzt werden.

Was passiert innerhalb des Scriptes

  • nach der Variablen Konfiguration werden vom Script einige Berechnungen und Wertzuweisungen gemacht,
  • danach werden die Videos entsprechend der gewünschten Länge in Einzelbilder zerlegt und als Bilddateien abgelegt.
  • dabei wird das Hintergrundvideo 720x576 und die anderen in der konfigurierten Auflösung als unkomprimierte Bilder gespeichert
  • mittels Berechnung werden Parameter für die spätere Positionierung ermittelt.
  • die gesamte Serie der Thrumbnailbilder wird mit einem Rahmen und Namen versehen
  • die Thrumbnails werden auf die jeweiligen Hintergrundbilder portiert.
  • in mehreren transcoding Prozessen werden die Bilder zu einem MPEG Film zusammengesetzt, die Titelschriften und das Logo hinzugemischt.
  • das Ergebnis ist ein DVD-konformes Video, dass mit der Soundfile gemuxt wird, ist die Soundfile zu lang, wird sie abgeschnitten.
  • es folgen wieder Positionsberechnungen
  • aus diesen Berechnungen werden die beiden Menümasken für die Untertitelmaskierung des Menüs erstellt
  • es wird eine xml Datei erzeugt, die als Konfiguration für die Maskierung des Videos benötigt wird
  • das Video wird mit den eben erstellten Subpictures maskiert


Das Ergebniss ist eine DVD-konforme Videodatei Namens menu_finale.vob diese enthält jetzt schon die notwendigen Konfigurationen, um sie mit dvdauthor direkt als animiertes Menu einsetzen zu können.

Achtung es werden temporär mehrere hundert Dateien im aktuellem Verzeichniss angelegt und auch wieder gelöscht, nachdem sie nicht mehr benötigt werden. Das Programm wurde optimiert auf einen geringst möglichen Qualitätsverlust, dabei wurde ein extrem hoher Plattenplatz Bedarf in Kauf genommen. Für ein 30 Sekunden Video sollten 3GB Plattenplatz im aktuellem Verzeichnis temorär frei sein. Die Laufzeit des Scriptes dürfte je nach Rechnerleistung bei ca. 20 Minuten für ein 30 Sekunden Video einzuordnen sein. (Testergebnis bei TIME=25: 1,5GB maximal Plattenbenutzung; 15 Minuten Laufzeit.)


Beispielbilder entstanden mit der Konfiguration im Script

Hier einige Beispielbilder erstellt mit den Orginaloptionen des Scriptes

Einzelbild aus Video animiertem Menu Einzelbild aus einem eingebetteten Thrumbnailvideo
highlight-Maske für spumux select-Maske für spumux


Eine kleine Vorschau, wie das animiert aussieht GIF 1,2MB (5 Sekunden-Loop 240x192 8 Frame/Sekunde)


Tips und Tricks

  • Da mit einer längeren Laufzeit des Scriptes zu rechnen ist, und man bei der Konfiguration doch einiges anpassen muss, sollte man neue Konfigurationen erst einmal mit wenigen Sekunden testen. nicht wundern: bei nur wenigen Sekunden wird eventuell nur der mittlere DVD-Titeltext angezeigt.
  • Bei der Positionierung der Frames beachten, dass bei der Darstellung auf einem Fernseher durchaus oben/unten/rechts/links bis zu 10% verschwinden können.
  • Die Position bezeichnet immer die Framebild-Ecke oben links. (Nicht die Bildecke des Rahmens).
  • Das Hintergrundvideo sollte möglicht ruig sein, ehr nervöse Videosequenzen als Hintergrund lenken sehr stark ab.
  • Video und die gewünschte Länge so wählen das ein möglichst sanfter Übergang im Hintergrundvideo entsteht, wenn das Video später im Loop läuft.
  • Das selbe gilt für den Sound, günstig zB.: so auswählen, dass er minimal kürzer ist, als die Videogesamtlänge, oder zum Ende hin ausblenden, damit beim Loop der Sound nicht hart abgehackt wird.
  • Das Menü wurde absichtlich im Format 4:3 erstellt, in den derzeitig getesteten Versionen von dvdauthor funktionieren 16:9 Menüs bei 4:3 Ausgabe nicht richtig auf externen Videoplayern.
  • Dateinamen sind immer komplett einzugeben, Leerzeichen, Sonderzeichen, ~*? oder sonstige Expansionen im Path oder Dateinamen sind nicht getestet, verursachen aber mit hoher Wahrscheinlichkeit Fehler und sind desshalb zu vermeiden.


Weitere Möglichkeiten das Erscheinungsbild zu konfigurieren befindet sich in folgendem Scriptabschnitt:

#----------- Scriptinterne Konfiguration -------------#
BORDER=" -frame 5 -geometry +0+0 "
COLOR=" -mattecolor grey "
M[1]="3x3"    #Maske1
  • mit BORDER= kann die Breite und der Frameborder beeinflusst werden. Die 5 hier bedeutet, der Border ist 5 Pixel hoch und breit. Dieser Wert kann vergrößert werden oder bis auf 2 verkleinert werden. An der geometry +0+0 nichts änderen, das kann die Berechnung der Platzierung der Masken verschieben, und wird in den Berechnungen nicht berücksichtigt.

Beispiele: DVD-menu-borderbreite.jpg

  • mit COLOR= kann die Farbe der Frameborder beeinflusst werden. -mattecolor ist der Schlüsselparameter für die Borderfarbe, grey ist die gewählte Farbe. Eine Übersicht über vordefinierte Farbnamen in ImageMagick erhaltet ihr mit dem Befehl
convert -list Color

Beispiele: DVD-menu-borderfarbe.jpg

  • der Wert in M[1]= beeinflusst die Breite der Maske die mittels Spumux über das Menü gelegt wird. Wenn also die gelbe Select-Maske zu "dünn" erscheint, dann kann man hier zB. mit 6x6 die Maske verbreitern.
  • es sind durch kleine Eingriffe noch eine ganze Reihe weiterer Änderungen des Aussehens der Frames möglich, dazu sind aber zum Teil kleinere Änderungen innerhalb des Scripts notwendig, um das Script jetzt nicht unnötig aufzublähen, wurde darauf ersteinmal verzichtet. Für persönlichen Kreativität ist hier jedenfalls Tür und Tor offen. Hilfe und Anregungen zu Grafikmanipulationen gibt es hier genügend.


Aussichten

es wird noch an weiteren grafischen Effekten gearbeitet. zB Drehung der Thumbnails, weitere Rahmendekors, Schatten, Schrifteffekte Inwieweit man das hier alles innerhalb des Wiki einarbeiten kann, wird die Zukunft zeigen.


Authoring der DVD mittels dvdauthor

Bemerkungen zum verwendeten Beispiel:

  • Wir wollen ein einfaches Menü verwenden, ohne weitere Untermenüs.
  • Die Videosequenzen sind im 16:9 Format das Menü ist im 4:3 Format erstellt
  • Am Anfang der DVD ist ein kleines Intro
Achtung während des Intros kann auf externen DVD-Playern nicht auf das Menu gewechselt werden, desshalb kurz halten (< 1 Minute)
  • Danach kommt unser erstelltes Menü in einer Endlosschleife
  • Im Menü gibt es 6 Sprungmarken auf den Begin der einzelnen Videosequenzen
  • Jede fertige Videosequenz springt wieder zurück ins Menü
  • Wir berücksichtigen hier weder Chapter noch multible Video- Audio- und Untertitelspuren.

Dazu würden wird bei einer Profi-DVD dann jeweils eigene Menüs zur Steuerung der Kanäle konfigurieren. siehe hier


die Konfiguration in der Datei dvdauthor.xml

Datei dvdauthor.xml

<dvdauthor dest="/data1/DVD-test"> 
  <vmgm> 
        <menus> 
        <video format="pal" aspect="16:9" widescreen="nopanscan" />
        <pgc> 
          <vob file="/data1/video/intro.vob"/> 
          <post> jump titleset 1 menu; </post> 
        </pgc>
        </menus> 
  </vmgm> 

  <titleset> 
    <menus>
      <video format="pal" aspect="4:3" widescreen="nopanscan" />
      <pgc> 
        <button> jump title 1; </button> 
        <button> jump title 2; </button> 
        <button> jump title 3; </button> 
        <button> jump title 4; </button> 
        <button> jump title 5; </button> 
        <button> jump title 6; </button> 
        <vob file="/data1/video/menu_finale.vob"  pause="0"/>
        <post> jump cell 1; </post> 
      </pgc> 
    </menus> 

    <titles> 
      <video format="pal" aspect="16:9" widescreen="nopanscan" />
      <pgc> 
        <vob file="/media/cdrecorder/video_ts/vts_02_1.vob"/> 
        <post> call menu; </post> 
      </pgc> 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
An dieser Stelle wurden 4 Blöcke <pgc>bis</pgc> für die Videos 2-5 ausgeschnitten, 
sie gleichen dem Vorgänger bis auf den Videofiles.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      <pgc> 
        <vob file="/media/cdrecorder/video_ts/vts_08_1.vob"/> 
        <post> call menu; </post> 
      </pgc> 
    </titles> 
  </titleset> 
</dvdauthor>


Datei dvdautor.xml anpassen

  • für viele Einsatzfälle für private Videos ist diese einfache dvdautor.xml aus Ausgangspunkt gut geeignet.
  • einer der wichtigsten Einträge hier ist
<dvdauthor dest="/data1/DVD-test"> 

hiermit wird festgelegt in welches Verzeichnis die Dateien für die DVD erzeugt werden sollen. In diesem Verzeichniss sollte also genügend Platz sein, um die gesammte DVD aufzunehmen. Es werden dort (also hier im Beispiel in /data1/DVD-test ) die Verzeichnisse AUDIO_TS und VIDEO_TS angelegt. AUDIO_TS bleibt leer und in VIDEO_TS werden die Dateien für die Video-DVD angelegt.

  • Sollten ein einzelner Filmtitel aus mehreren einzelnen Videodateien bestehen, werden diese einfach
<pgc> 
     <vob file="..."/>
     <vob file="..."/> 
     <vob file="..."/>
  <post> call menu; </post> 
</pgc>

in der richtigen Reihenfolge hintereinander aufgeführt. Man muss also nicht alles beim Videoschnitt zusammenkleben, und man kann sich bei der Bearbeitung und Nachvertonung auf gut händelbare Videosequenzen beschränken. Diese Übergänge hier sollten später beim Abspielen annähernd nahtlos erfolgen.

  • Weitere Informationen und gültige Optionen siehe Manpage von dvdauthor.


Dateistruktur für die DVD erzeugen, testen und brennen

Nachdem die Datei dvdautor.xml angepasst ist, und man sich vergewissert hat, dass alle benötigten Videodatein verfügbar sind und genügend Platz für die DVD-Dateien zur Verfügung steht, kann man dvdauthor starten.

dvdauthor -x dvdautor.xml

Wenn alles richtig konfiguriert ist, dann werden unter .../VIDEO_TS in unserem Beispiel folgende Dateien angelegt.

VIDEO_TS.BUP  VIDEO_TS.IFO  VIDEO_TS.VOB  VTS_01_0.BUP  VTS_01_0.IFO  VTS_01_0.VOB  VTS_01_1.VOB.......
VIDEO_TS.VOB eine VOB-Datei (Video OBject) ist das Intro
VTS_01_0.VOB das ist das Menü
VTS_01_1.VOB VTS_01_?.VOB ... Das sind die gesamten aneinander gereihten Videosequenzen die vom Menu aus gestartet werden. Die Größe der einzelnen Dateien ist auf 1GB begrenzt.
VIDEO_TS.BUP VIDEO_TS.IFO VTS_01_0.BUP VTS_01_0.IFO Die IFO-Dateien enthalten Steuerinformation (zB Einspringpunkte für die Kapitelanwahl), die BUP-Dateien sind BackUPs der IFO-Dateien.

Wenn aus welchem Grunde auch immer dvdautor erneut ausgeführt werden soll, müssen die vorher schon erstellten Dateien gelöscht werden. Man kann getrost alles samt Verzeichnis löschen.

rm -rf /Path/zum/DVD-Verzeichnis/VIDEO_TS

Die vorher erstellten würden sonst nicht überschrieben, und um die neuen Dateien erweitert.


  • Unser im Script erstelltes Menüvideo können wir mit jedem Videoplayer unter Linux schon mal anschauen.
xine menu_finale.vob

was wir hier allerdings noch nicht erkennen können, sind die Menüfunktionen, also die eigentlichen Bildmasken die uns die Navigation im Menü erlauben, das wird erst funktionieren wenn wir die richtige Dateistruktur für die DVD mittels dvdauthor erstellt haben.

  • Nach dem Erstellen der DVD-Dateien mittels dvdauthor können wir das Menü und unsere Konfiguration schon mal auf dem Rechner testen, auch ohne die DVD vorher zu brennen.
xine dvd:/Path/zum/DVD-Verzeichnis/VIDEO_TS
  • Sollte das alles soweit richtig funktionieren, und wir mit unserem Kunstwerk zufrieden sind, dann muss das Ganze jetzt noch auf die DVD gebrannt werden.

Die Dateistruktur einschließlich der beiden Verzeichnisse AUDIO_TS und VIDEO_TS haben wir schon, wir brauchen jetzt nur noch das richtige Filesystem.

  • Zum Erstellen und Brennen desselben kann man growisofs, Bestandteil von dvd+rw-tools Paket benutzen.
growisofs -Z /dev/dvd -dvd-video /Path/zum/DVD-Verzeichnis/
  • allerdings geht das mit K3b genauso gut, damit haben die meisten sowieso schon Erfahrungen gesammelt und man hat auch gleich die Möglichkeit der DVD noch vernünftige Datenträgereinträge hinzuzufügen.
Unter K3b -> Datei -> Neues Projekt -> Neues Video DVD Projekt, eventuell kommt dabei eine Warnung, dass K3b die IFO und BUP nicht selbst erstellen kann, das können wir ignorieren, die hat ja dvdauthor für uns schon erzeugt.
die Dateien die dvdautor angelegt hat, jetzt alle in das Verzeichnis VIDEO_TS des neues Projektes verschieben und brennen.
  • jetzt können und sollten wir unsere neu erstellte DVD auf einem externem DVD-Player testen. Die Tests sollten wenn möglichst sowohl auf Normalbild- und Breitbildschirmen gemacht werden, um sicherzustellen, das später auch wirklich auf allen Geräten funktionieren. Wenn alle möglichen Bildschirmeinstellungen am Player und Bildschirm die gewünschten Auflösungen hervorbringen, unsere Audiospur als die default-Audiospur benutzt wird, und eventuelle Untertitel auch noch funktionieren, dann ist das Kunstwerk jetzt fertig und wir können unseren Nachbarn aus dem Bett klingel, um ihm zu zeigen, was sein teures Videobearbeitungsprogramm eventuell nicht kann.


weitere Links zum Thema dvdauthor



--Robi 21:14, 24. Sep 2006 (CEST)


Zurück zu Multimedia