DVD-Authoring
Grundlagen
DVD-Medien
| Bezeichnung | Kapazität | Anmerkung |
|---|---|---|
| DVD-RAM | 4.7GB | von standalone DVD-Player kaum unterstützt |
| DVD-R[W] | 4.7GB | offizieller Standard fuer DVD-Video |
| DVD+R[W] | 4.7GB | von vielen standalone DVD-Player unterstützt |
| DVD-R DL | 8.5GB | Double Layer (einseitig) |
- Medien erkennen
$ dvd+rw-mediainfo /dev/dvdwriter
Videoformat
- MPEG2, PAL 720x576, 4:3/16:9
- MPEG1, PAL 352×288, 4:3
Audioformat
- Mehrkanalton
- 48 kHz Samplingrate
- bis 8 Tonspuren möglich (z.B. Mehrsprachigkeit)
| Bezeichnung |
|---|
| PCM |
| DTS (Digital Theater System) |
| MPEG1, Layer 2 |
| MPEG2 |
| Dolby Digital (AC3) |
Filesystem
- UDF-Filesystem UDF (Universal Disk Format)
Filesystemstruktur
AUDIO_TS- nur bei DVD-Audio benutzt
- .ifo Index Control Files
- .bup Backup Kopie von .ifo
- .vob MPEG2 Video, Audio, [Untertitel]
| VIDEO_TS.[BUP;IFO;VOB] | Top Level Menu (VMGM) |
| VTS_XX_0.[BUP;IFO;VOB] | Menüs fuer Titleset XX |
| VTS_XX_Y.VOB | Title im Titleset (gesplittet in 1GB) |
- zusätzliche Datenverzeichnisse möglich
Inhalte
Wie werden DVD-konforme MPEG2-Videos erstellt?Konvertieren mit mencoder
- Rekodierung des Datenstromes
- Skalieren der Framegröße
- Anpassen von Framerate, Samplingrate, ...
$ mencoder infile -oac lavc -ovc lavc \
-of mpeg -mpegopts format=dvd:tsaf \
-vf scale=720:576,harddup -srate 48000 \
-af lavcresample=48000 \
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:abitrate=192:aspect=16/9 \
-ofps 25 -o outfile.mpg
ReMultiplexen von MPEG2
- Video bereits MPEG2 (Framegröße, Framerate, Samplingrate, ...)
- DVD-spezifische Eigenschaften fehlen (Platzhalter für NAV-Pakete)
$ java -jar ProjectX.jar [-ini X.ini] -out /tmp/ infile $ mplex -f 8 -S0 -o outfile.mpg /tmp/infile.m2v /tmp/infile.mp2 /tmp/infile.ac3
DVD Slideshow
- DVD-Video aus digitaler Fotogalerie
- Bildinfos via Subtitle
- Effekte und Vertonung möglich
$ dir2slideshow -n "Slideshow Name" image_directory $ dvd-slideshow -n "Slideshow Name" control.txt $ dvd-menu -t Film_1 -f film_1.xml -o DVD_ROOT -n DVD-Titel
DVD-Video ohne Menü
- Erstellen einer DVD-Video mit einem oder mehreren Titel(n)
- Ergebnis ist eine typische DVD-Verzeichnisstruktur
$ dvdauthor -o /tmp/DVD_ROOT -t file1.mpg [-t file2.mpg] $ dvdauthor -T -o /tmp/DVD_ROOT
- Mittels der Option dvd://1 wird der 1. Titel der DVD abgespielt.
$ gmplayer -dvd-device /path/to/DVD_ROOT/ [dvd://1]
DVD-Menüs
Menüstruktur
- Top Level Menü (VMGM)
- [Video Manager Menu]
- häufig zur Anzeige von Urheberrechten verwendet
- Titleset (VTS)
- max. 99 Titleset auf einer Standard-DVD
- enthält max. 99 Title
- alle Title eines Titleset teilen sich ein Menü (VTSM)
- Title
- 8 Audiospuren
- 32 Untertitel
- 9 Videostreams (Angle)
- zerfallen in Program Chains (PGC)
- Program Chains (PGC)
- Container für Audio- und Videodaten, welche über einen Menüpunkt angesprochen werden
- Video Objects (VOB)
- Quelle für Audio- und Videodaten
- können in Kapitel (Chapter) oder (unsichtbare) Zellen aufgeteilt sein (via Zeitmarke)
statische Menüs erstellen
- Menü-Hintergrund mit Buttons in Bildbearbeitung (z.B. GIMP) erstellen
- Hintergrund als .jpg speichern
| Bildgröße | 720x576 px |
|---|---|
| Auflösung | X = 75 dpi Y = 80 dpi |
| Hintergrund | Alphakanal hinzufügen |
- 2 transparente Ebenen für die Button-Markierungen anlegen
- Markierungen für die Stati highlight und select zeichnen
- Button-Geometrie bestimmen, z.B. mittels GIMP-Plugin dvdauthor-buttons
- die transparenten Ebenen einzeln als .png speichern
(transp. Hintergrund = 1 Farbe)
- Menü-Hintergrund in MPEG2-Video konvertieren
- mit Audio (auch "Stille") multiplexen
$ jpeg2yuv -n 1 -I p -f 25 -j menu-background.jpg | mpeg2enc -n p -f 8 -o menu-background.m2v $ dd if=/dev/zero bs=4 count=1920 | lame -b 128 -s 48 - menu_audio.mpa $ mplex -f 8 -o menu_tmp.mpg menu-background.m2v menu_audio.mpa
- Button-Markierungen in Menü-Video einarbeiten (wie Untertitel)
$ cat dvd_menu.xc_spu.xml
<subpictures>
<stream>
<spu force="yes"
start="00:00:00.00"
highlight="dvd_menu.xc_highlight_bl.png"
select="dvd_menu.xc_select_bl.png">
<button name="button3" x0="301" y0="350" x1="530" y1="400"/>
<button name="button2" x0="301" y0="250" x1="530" y1="300"/>
<button name="button1" x0="301" y0="150" x1="530" y1="200"/>
</spu>
</stream>
</subpictures>
$ spumux dvd_menu.xc_spu.xml < menu_tmp.mpg > menu.mpg
Menüstruktur verdrahten
- Ablaufplan skizzieren
$ cat dvdauthor.xml
<dvdauthor dest="/tmp/DVD_ROOT">
<vmgm>
<menus>
<pgc>
<pre>if (g0 == 1) jump titleset 1 menu;</pre>
<vob file="trailer.mpg"/>
<post>g0 = 1; jump titleset 1 menu;</post>
</pgc>
</menus>
</vmgm>
<titleset>
<menus>
<pgc>
<button name="button1">jump title 1 chapter 1;</button>
<button name="button2">jump title 1 chapter 2;</button>
<button name="button3">jump title 1 chapter 3;</button>
<vob file="menu.mpg" pause="inf"/>
</pgc>
</menus>
<titles>
<pgc>
<vob file="film.mpg">
<cell start="0:00:00.000" end="-1" chapter="on" />
</vob>
<vob file="film.mpg">
<cell start="0:00:10.000" end="-1" chapter="on" />
</vob>
<vob file="film.mpg">
<cell start="0:00:21.000" end="-1" chapter="on" />
</vob>
<post>call menu;</post>
</pgc>
</titles>
</titleset>
</dvdauthor>
- Erstellen der DVD-Video Struktur
$ dvdauthor -x dvdauthor.xml
xine dvd:///absolut/path/to/DVD_ROOT/
Medien beschreiben
- growisofs
- k3b
$ growisofs -Z /dev/dvdwriter -dvd-compat -R -r -dvd-video -V "NAME" /tmp/DVD_ROOT/