Springe zum Hauptinhalt

DVD-Author

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)

Beachte Kapazitätsangabe bei DVD-Medien, 1 GB = 1000000000 B

  • 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

VIDEO_TS

  • .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)

DATA

  • 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

Wird dvdauthor mit einem Ausgabeverzeichnis mit vorhandener DVD-Video Struktur benutzt, werden die übergebenen MPEG-Files als zusätzliche Titel hinzugefügt.

Funktionstest:

  • 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

Beachte nichtdarstellbaren Rand von ca. 10..15% auf TV-Geräten.

Button-Markierungen können maximal 4 Farbe nutzen. Features wie Kantenglättung abschalten!
(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
    dvd_menu.png

$ 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>

Sprünge zwischen Titlesets sind nicht erlaubt. "Umweg" über Top Level Menü gehen.

  • Erstellen der DVD-Video Struktur

$ dvdauthor -x dvdauthor.xml

Funktionstest der DVD-Video Struktur mit Softwareplayer
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/

grafische Authoring-Tools