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/