[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: avidemux und untertitel aus DVD



Hallo,

Am Thu, 22 Nov 2012, Siegfrid Brandstätter schrieb:
>Untertitel fehlen. Kann man die hinzufügen, genügt wenn es bei mehreren 
>nur eine Sprache ist. Egal ob immer sichtbar oder auswählbar.
>Aber in welchen Daten sind die Untertitel enthalten und geht das 
>überhaupt.

Freilich.

>Diese Typen stehen zur Verfügung:
>VIDEO_TS.BUP  VIDEO_TS.VOB  VTS_01_0.IFO  VTS_01_1.VOB           

Hier kommt tcextract ins spiel, was 'dvdrip' im Hintergrund auch
verwendet. Falls du's damit nicht hinbekommst (muxen solltest du mit
mkvmerge, s.u.) dann geht's so:

1. Einzelnen Titel aus den VIDEO_TS/*.VOB extrahieren (das können noch
einige mehr als VTS_01_1.VOB sein, sondern kann z.B. der Hauptfilm in
VTS_09_0.VOB bis VTS_09_5.VOB enthalten sein):

tccat -i "$DEV" -T "${title}",-1,1 > "$out";

wobei $DEV durch /dev/sr0 beim DVD-LW zu ersetzen ist oder durch das
Verzeichnis bei nem per loop-gemounteten Image oder kopierten Dateien.
$title ist der Titel, den du extrahieren willst, den kannst du
z.B. mit dvdrip/mplayer/vlc rausfinden. $out ist die Ausgabedatei,
hier solltest du einen Aussagekräftigen Namen vergeben mit der Endung
.vob (denn das ist es). Sagen wir hier im Beispiel mal foo.vob.

2. optional Audiospuren extrahieren mach ich meist mit mplayer, geht
   aber prinzipiell auch so, Audiospuren beginnen bei AC3 bei 128 für
   Audiospur 0, DTS beginnt IIRC bei 137, LPCM bei Konzerten o.ä. weiß
   ich grad nicht auswendig. Im Zweifelsfall hilft 'mplayer -v foo.vob
   2>&1 | grep aid' wobei, IIRC zeigt der Untertitel nicht immer an,
   da hilft aber erstens auch dvdrip und alternativ 'mplayer -v dvd://
   -dvd-device "$DEV" 2>&1 | grep aid' (DEV wie oben). Das eigentliche
   extrahieren dann mit:

    mplayer -vo null -aid 128 -dumpaudio -dumpfile foo_aid_0.ac3 foo.vob

   das Argument für -aid anpassen, falls deutsch also die dritte Audio-
   Spur ist dann -aid 130 ...

3. Untertitel extrahieren:

   Die Subs haben den Stream-Offset 0x20 (32). Untertitel 0 hat die
   "Subtitle ID" "0x20", weiter mit 0x21 usw.:

    cp $DEV/VTS_01_0.IFO foo.ifo
    tcextract -d 0 -x ps1 -t vob -a 0x20 -i foo.vob > foo_sid_0.ps1
    subtitle2vobsub -i foo.ifo -o foo -p foo_sid_0.ps1

4. muxen:

    mkvmerge --language 0:de -D foo_aid_0.ac3 -A foo.vob \
        --language 0:de foo_sid_0.idx -o foo.mkv

    BTW: das --language 0:de gibt die Sprache an und hat aber nix mit
    der aid/sid zu tun. Wenn also z.B. Deutsch als Audio-Track 3 und
    Untertitel 5 im Vob ist, wäre es:

    mkvmerge --language 0:de -D foo_aid_3.ac3 -A foo.vob \
        --language 0:de foo_sid_5.idx -o foo.mkv

    (sofern du die Dateinamen an die aid/sid angepasst hast).

HTH,
-dnh

-- 
"Spies hide guns like squirrels hide acorns." -- Burn Notice, 1x12


Reply to: