Anzeige:
Ergebnis 1 bis 14 von 14

Thema: svcd2dvd - MPEG/VCD/SVCD auf DVD+-R/W

  1. #1
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Beiträge
    14

    svcd2dvd - MPEG/VCD/SVCD auf DVD+-R/W

    Hi Leute!

    Ich habe ein kleines Script geschrieben welches vorhandene MPEG/SVCD/VCD Dateien so umwandelt das sie auf eine Video-DVD gebrannt und im normalen DVD-Standalone-Player angeschaut werden können. Ich stelle es euch hier zur Verfügung falls jemand so etwas braucht.

    Mit diesem Script ist es nicht nötig die Videos in DVD-konforme MPEG2 Daten umzuwandeln daher läuft es ziemlich schnell. Es werden nur die Audio-Daten der MPEG/VCD/SVCD Daten auf 48khz hochgerechnet und das geht (vergleichsweise) schnell.

    Das Script wandelt um:
    - beliebige MPEG1 (inkl. VCD/MVCD), PAL/NTSC, egal in welcher Auflösung
    - beliebige MPEG2 (inkl. SVCD/RSVCD/VOB), PAL/NTSC, egal in welcher Auflösung
    - kein AVI/ASF!
    - kein WMV
    - kein MOV (Quicktime)

    Die so erstellten DVDs sollten in allen DVD-Playern abspielbar sein in denen sie auch als normale VCD/SVCD abspielbar sind. Es ist sogar möglich MPEG1 (VCD) und MPEG2 (SVCD) Dateien zu mischen und auf ein und dieselbe DVD zu brennen und die MPEG Dateien müssen nicht einmal Standardkonform sein. Es sollte sogar möglich sein PAL und NTSC Dateien auf ein und derselben DVD zu brennen doch habe ich leider keine NTSC Dateien um diese Möglichkeit zu testen.

    Es wird dabei kein DVD-Menü erstellt (was aber möglich ist, siehe weiter unten) sondern die Videos werden einfach in der Reihenfolge in der sie dem Script übergeben werden auf der DVD erstellt. Es ist dann nur möglich mit der "Nächster Titel"-Taste auf der DVD-Fernbedienung zum nächsten Video zu springen und beim letzten Video springt man dann dementsprechend wieder auf das Erste.


    Anleitung

    Damit das Script funktioniert müssen folgende Programme installiert sein:

    - mpgtx
    - mpg123
    - sox
    - toolame
    - tcmplex (aus den 'transcode' Tools)
    - dvdauthor

    Hier das Script:
    Code:
    #!/bin/sh
    #This script converts all given mpeg files to dvd-format
    #
    #Usage: ./svcd2dvd.sh "file1.mpg" "file2.mpg" "file3.mpeg" ...
    #
    #Needed tools: mpgtx, mpg123, sox, toolame, tcmplex (from the 'transcode' tools), dvdauthor
    
    if [ -z "$1" ]; then
    echo "No files given."
    echo "Usage: ./svcd2dvd.sh \"file1.mpg\" \"file2.mpg\" \"file3.mpeg\" ..."
    exit 0
    fi
    
    for p in "$@";do
    clear
    echo "${p} demultiplex..."
    echo "------------------------------------------"
    mpgtx -d "${p}"
    mv chunk-0.m1v video
    mv chunk-0.m2v video
    clear
    echo "${p} convert mp2 to wav..."
    echo "------------------------------------------"
    mpg123 -w "${p}".wav chunk-0.mp2
    clear
    echo "${p} upsample wav to 48khz..."
    echo "------------------------------------------"
    sox "${p}".wav -r 48000 "${p}"48khz.wav resample
    clear
    echo "${p} convert 48khz wav back to mp2..."
    echo "------------------------------------------"
    toolame "${p}"48khz.wav chunk-0.mp2
    clear
    echo "${p} multiplex video and audio..."
    echo "------------------------------------------"
    tcmplex -m d -o "${p}".dvd-format.mpg -i video -p chunk-0.mp2
    rm video
    rm *.mp2
    rm *.wav
    done
    
    clear
    echo "Completed. All \"*.dvd-format.mpg\" files ready for dvdauthor."
    
    
    #Comment the following lines out if you want to create your own dvd-menu with dvdauthor.
    #You just have to author all generated files with the ending: ".dvd-format.mpg"
    
    
    clear
    echo "Creating dvd-structure..."
    echo "------------------------------------------"
    echo "<dvdauthor>" > dvdauthor.xml
    echo "<vmgm />" >> dvdauthor.xml
    echo "<titleset>" >> dvdauthor.xml
    echo "<titles>" >> dvdauthor.xml
    
    iMax=$#
    i=2
    
    for param in "$@";do
    
    echo "<pgc>" >> dvdauthor.xml
    echo "<vob file=\"${param}.dvd-format.mpg\" />" >> dvdauthor.xml
    
    if [ $iMax -eq 1 ];then
    echo "<post>jump title 1;</post>" >> dvdauthor.xml
    else
    iMax=$[$iMax+1]
    if [ $i -eq $iMax ];then
    echo "<post>jump title 1;</post>" >> dvdauthor.xml
    else
    echo "<post>jump title ${i};</post>" >> dvdauthor.xml
    i=$[$i+1]
    iMax=$[$iMax-1]
    fi
    fi
    echo "</pgc>" >> dvdauthor.xml
    
    done
    
    echo "</titles>" >> dvdauthor.xml
    echo "</titleset>" >> dvdauthor.xml
    echo "</dvdauthor>" >> dvdauthor.xml
    mkdir dvd
    dvdauthor -o dvd/ -x dvdauthor.xml
    rm *dvd-format.mpg
    rm dvdauthor.xml
    clear
    echo "Completed. Burn the content of the new \"dvd\"-directory."
    exit 0
    Kopiert den Inhalt dieses Scripts in einer Texteditor und speichert ihn ab, z.B. als "svcd2dvd.sh". Am besten in einen leeren, neu erstellten Ordner. Nehmen wir als Beispiel den Ordner "/home/tux/temp/".

    Wechselt nun in die Konsole und gebt folgenden Befehl ein:
    Code:
    chmod 755 /home/tux/temp/svcd2dvd.sh
    Kopiert nun alle MPEG Datein die ihr auf die DVD brennen wollt in diesen, neu erstellten Ordner. Falls ihr keine MPEG Dateien habt, sondern nur VCDs/SVCDs dann könnt ihr auch einfach den Inhalt des Ordners "MPEGAV" (bei VCD) bzw. "MPEG2" (bei SVCD) in den neu erstellten Ordner mit dem Script kopieren. Die Endungen der darin enthaltenen Dateien sind in dem Fall egal, das sind alles MPEG Dateien, auch die ".dat" Dateien von VCDs.

    Bedenkt die Größe der Dateien: Nach der Umrechnung sind die Dateien ca. um 10% größer, da der Audiostrom auf 48khz upgesampelt wird. Also wenn ihr normale 4,5 GB Rohlinge habt, würde ich maximal ca. 4 GB in diesen Ordner zum Umrechnen stellen. (dementsprechend sollte auch noch genug Platz auf der Festplatte sein da während des Umrechnens zusätzliche Dateien erzeugt werden)

    Nun startet das Script mit z.B.:
    Code:
    ./svcd2dvd.sh "Datei 1.mpeg" "Datei 2.mpg" "Datei 3.mpg"
    Es werden nun alle Dateien der Reihe nach umgerechnet. Das kann, je nach Größe der Dateien und Geschwindigkeit des PCs schon etwas länger dauern. Ich brauche auf meinem AMD XP1600+ für eine SVCD ca. 10-20 Minuten, je nachdem wieviel ich nebenbei am PC arbeite.

    Wenn das Script erfolgreich durchgelaufen ist, befindet sich jetzt in dem Ordner ein weiterer Ordner namens "dvd". Den Inhalt dieses Ordners könnt ihr jetzt einfach auf eine DVD brennen. (z.B. mit K3b) Es empfiehlt sich testweise zuerst DVD-RWs zu benutzen um nicht umsonst teure Rohlinge zu verbraten falls der DVD-Player die so erstellte DVD doch nicht abspielen kann.

    Man kann die so erstellte DVD-Struktur auch mit xine testen bevor man sie brennt:
    Code:
    xine dvd:/home/tux/temp/dvd/
    Wenn ihr doch lieber Menüs auf der DVD wollt dann macht folgendes:
    Alle Zeilen nach der Zeile die im Script mit "#Comment the following lines out..." anfängt einfach auskommentieren. (ein "#" Zeichen am Anfang der Zeile setzen) Dann wird kein "dvd"-Verzeichnis erstellt sondern die umgerechneten MPEG Dateien bleiben im Ordner und haben die Endung ".dvd-format.mpg". Diese Dateien lassen sich dann einfach weiterverarbeiten mit DVD-Authoring Programmen wie Q DVD Author oder DVDStyler.

    Ich stelle das Script frei zur Verfügung, jeder kann damit machen was er will. Ihr könnt es verändern, kopieren oder auch einfach wieder löschen. Ich übernehme keine Garantie für irgendetwas noch übernehme ich die Verantwortung für entstandene Schäden jedweder Art. Ich habe dieses Script in ein paar Stunden fertig geschrieben und bis jetzt erst sehr wenig getestet, also zur Sicherheit lieber mit Kopien von Dateien arbeiten. (obwohl die Original-Dateien eigentlich nicht verändert werden)

    Falls ihr Vorschläge habt wie man das Script verbessern könnte, nur zu, ich würde mich über Anregungen sehr freuen. Vor allem würde ich es noch gern hinkriegen das das Umrechnen der Audio Daten über Pipes funktioniert und keine .wav Dateien erzeugt werden müssen. Dadurch würde es noch schneller laufen. Ich hab es aber bisher nicht geschafft "sox" dazu zu kriegen über /dev/stdin im .wav Format zu lesen.

    Ich habe nach einer Möglichkeit gesucht meine VCDs/SVCDs mit Linux auf DVD zu brennen, habe aber keine (einfache) Möglichkeit gefunden, deshalb dieses Script. Falls jemand etwas kennt mit dem das noch einfacher geht: Bitte melden! (dann war es eben nur ein bisschen Übung in bash-Programmierung )

    Ok, das wars, viel Spaß damit und ich bitte um Feedback!

    MfG
    Darko
    Geändert von ddamjan (04.09.05 um 17:51 Uhr)

  2. #2
    Linux Newbie 2. Grades
    Registriert seit
    Jun 2001
    Ort
    nähe Graz
    Beiträge
    797
    1. Wenn du anstatt der Kombination mpg123, sox und toolame einfach ffmpeg verwendest:

    Code:
    ffmpeg -i "${p}".mp2 -ar 48000 -ab 192 -ac 2 chunk-0.mp2
    ersparst du dir einen Teil.

    2. brennen kannst du die Struktur dann folgendermaßen (aus dem Kopf heraus)

    Code:
    growisofs -Z /dev/dvdrecorder -dvd-compat -dvd-video dvd/
    :-) lg, Helmut
    Bitte zuerst Handbuch, man $PROGRAMM, /usr/[local/]/share/doc/$PROGRAMM, $SUCHMASCHINE und $SUCHFUNKTION befragen.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Beiträge
    14
    Zitat Zitat von Henni
    1. Wenn du anstatt der Kombination mpg123, sox und toolame einfach ffmpeg verwendest:

    Code:
    ffmpeg -i "${p}".mp2 -ar 48000 -ab 192 -ac 2 chunk-0.mp2
    ersparst du dir einen Teil.
    Hey, cool! Danke!

    Zitat Zitat von Henni
    2. brennen kannst du die Struktur dann folgendermaßen (aus dem Kopf heraus)

    Code:
    growisofs -Z /dev/dvdrecorder -dvd-compat -dvd-video dvd/
    Ja, ich kenne growisofs, ich will es aber nicht direkt aus dem Script heraus brennen. Dann müßte man noch eine Abfrage einbauen "DVD-RW löschen?" - Ja/Nein und auch testen ob die Daten auch wirklich korrekt umgerechnet wurden. Das wird mir zu "kompliziert". *g* Aber wenn das jemand "auf die Schnelle" einbauen kann wärs toll. Es müßte aber beim Aufruf des Skriptes als Parameter übergeben werden, damit man eine DVD-RW einlegt, das Ganze startet, sich aufs Sofa legt und nicht mehr daran denken muss wieder zum PC zu gehen und den Brennvorgang zu starten. Sonst kann man ja gleich ein Brennprogramm aufrufen.

  4. #4
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Beiträge
    14
    Ok, also hier das verbesserte svcd2dvd mit dem Tipp von Helmut. Jetzt sind nur noch folgende Programme nötig und es geht auch um einiges schneller als vorher:

    -mpgtx
    -ffmpeg
    -tcmplex
    -dvdauthor

    Code:
    #!/bin/sh
    #This script converts all given mpeg files to dvd-format
    #
    #Usage: ./svcd2dvd.sh "file1.mpg" "file2.mpg" "file3.mpeg" ...
    #
    #Needed tools: mpgtx, ffmpeg, tcmplex (from the 'transcode' tools), dvdauthor
    
    if [ -z "$1" ]; then
    echo "No files given."
    echo "Usage: ./svcd2dvd.sh \"file1.mpg\" \"file2.mpg\" \"file3.mpeg\" ..."
    exit 0
    fi
    
    for p in "$@";do
    clear
    echo "${p} demultiplex..."
    echo "------------------------------------------"
    mpgtx -d "${p}"
    mv chunk-0.m1v video
    mv chunk-0.m2v video
    clear
    echo "${p} convert audio..."
    echo "------------------------------------------"
    ffmpeg -i "${p}".mp2 -ar 48000 -ab 192 -ac 2 chunk-0.mp2
    clear
    echo "${p} multiplex video and audio..."
    echo "------------------------------------------"
    tcmplex -m d -o "${p}".dvd-format.mpg -i video -p chunk-0.mp2
    rm video
    rm *.mp2
    done
    
    clear
    echo "Completed. All \"*.dvd-format.mpg\" files ready for dvdauthor."
    
    
    #Comment the following lines out if you want to create your own dvd-menu with dvdauthor.
    #You just have to author all generated files with the ending: ".dvd-format.mpg"
    
    
    clear
    echo "Creating dvd-structure..."
    echo "------------------------------------------"
    echo "<dvdauthor>" > dvdauthor.xml
    echo "<vmgm />" >> dvdauthor.xml
    echo "<titleset>" >> dvdauthor.xml
    echo "<titles>" >> dvdauthor.xml
    
    iMax=$#
    i=2
    
    for param in "$@";do
    
    echo "<pgc>" >> dvdauthor.xml
    echo "<vob file=\"${param}.dvd-format.mpg\" />" >> dvdauthor.xml
    
    if [ $iMax -eq 1 ];then
    echo "<post>jump title 1;</post>" >> dvdauthor.xml
    else
    iMax=$[$iMax+1]
    if [ $i -eq $iMax ];then
    echo "<post>jump title 1;</post>" >> dvdauthor.xml
    else
    echo "<post>jump title ${i};</post>" >> dvdauthor.xml
    i=$[$i+1]
    iMax=$[$iMax-1]
    fi
    fi
    echo "</pgc>" >> dvdauthor.xml
    
    done
    
    echo "</titles>" >> dvdauthor.xml
    echo "</titleset>" >> dvdauthor.xml
    echo "</dvdauthor>" >> dvdauthor.xml
    mkdir dvd
    dvdauthor -o dvd/ -x dvdauthor.xml
    rm *dvd-format.mpg
    rm dvdauthor.xml
    clear
    echo "Completed. Burn the content of the new \"dvd\"-directory."
    exit 0
    Der Rest bleibt unverändert.

  5. #5
    Registrierter Benutzer Avatar von fuffy
    Registriert seit
    Jun 2002
    Ort
    Hückelhoven
    Beiträge
    3.026
    Hi!

    Zitat Zitat von ddamjan
    Mit diesem Script ist es nicht nötig die Videos in DVD-konforme MPEG2 Daten umzuwandeln daher läuft es ziemlich schnell.
    Dann laufen sie auch nicht in jedem DVD-Player, da DVD-Player kein MPEG1 verstehen müssen. Lässt dvdauthor wirklich MPEG1 zu?

    Zitat Zitat von ddamjan
    - mpgtx
    Wozu mpgtx, wenn du eh transcode voraussetzt? Dann kannst du doch auch tcextract zum Demultiplexen verwenden.

    Zitat Zitat von ddamjan
    Falls ihr keine MPEG Dateien habt, sondern nur VCDs/SVCDs dann könnt ihr auch einfach den Inhalt des Ordners "MPEGAV" (bei VCD) bzw. "MPEG2" (bei SVCD) in den neu erstellten Ordner mit dem Script kopieren.
    Bitte nicht. Der MPEG Stream steckt bei (S)VCDs in einem Form2 Track mit einer Sektorgröße von 2352 Byte statt der üblichen 2048 Byte. Beim simplen Kopieren gehen 304 Byte pro Sektor verloren. Nimm lieber vcdxrip, das auf das Auslesen von (S)VCDs spezialisiert ist.

    Gruß
    fuffy
    Shuttle SN95G5V2 | Athlon 64 3000+ | 1 GiB RAM | SAMSUNG HD501LJ | LG GSA-4167B | SkyStar 2
    Vaio VGN-SZ4XWN/C
    Linux 2.6 | GNOME 2.22 | VDR 1.6

  6. #6
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Beiträge
    14
    Zitat Zitat von fuffy
    Dann laufen sie auch nicht in jedem DVD-Player, da DVD-Player kein MPEG1 verstehen müssen.
    Ja, ich sagte ja:
    Zitat Zitat von ddamjan
    "Die so erstellten DVDs sollten in allen DVD-Playern abspielbar sein in denen sie auch als normale VCD/SVCD abspielbar sind."
    Zitat Zitat von fuffy
    Lässt dvdauthor wirklich MPEG1 zu?
    Jep. Er sucht sogar nach dem bestmöglichen Workaround wegen der Auflösung und Ratio. (klappt meistens sehr gut)

    Wozu mpgtx, wenn du eh transcode voraussetzt? Dann kannst du doch auch tcextract zum Demultiplexen verwenden.
    Gute Idee. Kannst du so wie Helmut ein Beispiel bringen wie der tcextract Befehl auszusehen hätte?

    Bitte nicht. Der MPEG Stream steckt bei (S)VCDs in einem Form2 Track mit einer Sektorgröße von 2352 Byte statt der üblichen 2048 Byte. Beim simplen Kopieren gehen 304 Byte pro Sektor verloren. Nimm lieber vcdxrip, das auf das Auslesen von (S)VCDs spezialisiert ist.
    Ok, ok, ich wollte es halt so einfach wie möglich beschreiben...

    thanX
    Darko

  7. #7
    Linux Newbie 2. Grades
    Registriert seit
    Jun 2001
    Ort
    nähe Graz
    Beiträge
    797
    Wäre tcdemux nicht besser geeignet?

    Code:
    tcdemux -i $INPUT_FILE -x mpeg2 > output.m2v
    tcdemux -i $INPUT_FILE -x mpeg1 > output.m1v
    tcdemux -i $INPUT_FILE -x mp2 > output.mp2
    Bitte zuerst Handbuch, man $PROGRAMM, /usr/[local/]/share/doc/$PROGRAMM, $SUCHMASCHINE und $SUCHFUNKTION befragen.

  8. #8
    Registrierter Benutzer Avatar von fuffy
    Registriert seit
    Jun 2002
    Ort
    Hückelhoven
    Beiträge
    3.026
    Zitat Zitat von Henni
    Wäre tcdemux nicht besser geeignet?
    Die machen beide im Prinzip das gleiche. Wobei ich tcextract von der Bezeichnung her passender finde, da immer nur ein Stream extrahiert wird, während ich unter Demultiplexing verstehe, dass alle Streams demultiplext werden, wie es mpgtx macht.

    Zitat Zitat von Henni
    Code:
    tcdemux -i $INPUT_FILE -x mpeg2 > output.m2v
    tcdemux -i $INPUT_FILE -x mpeg1 > output.m1v
    tcdemux -i $INPUT_FILE -x mp2 > output.mp2
    mpeg1 und mp2 sind keine gültigen Werte für -x.

    So gehts mit tcextract:
    Code:
    tcextract -i $INPUT_FILE -x mpeg2 >output.mpv
    tcextract -i $INPUT_FILE -x mp3 >output.mp2
    Gruß
    fuffy
    Shuttle SN95G5V2 | Athlon 64 3000+ | 1 GiB RAM | SAMSUNG HD501LJ | LG GSA-4167B | SkyStar 2
    Vaio VGN-SZ4XWN/C
    Linux 2.6 | GNOME 2.22 | VDR 1.6

  9. #9
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Beiträge
    14
    Zitat Zitat von Henni
    Wäre tcdemux nicht besser geeignet?

    Code:
    tcdemux -i $INPUT_FILE -x mpeg2 > output.m2v
    tcdemux -i $INPUT_FILE -x mpeg1 > output.m1v
    tcdemux -i $INPUT_FILE -x mp2 > output.mp2
    Nicht unbedingt. Denn wie sollte ich prüfen ob ein mpeg1 oder mpeg2 Video vorliegt? Das Script sollte ja beide akzeptieren damit es weiterhin einfach zu bedienen bleibt. (hmmm... man könnte einfach beide aufrufen und dann bei einer Fehlermeldung "ins Leere" laufen lassen...) Aber ich habe tcdemux gerade mit ein paar normalen mpeg1 getestet und es hat bis jetzt kaum eines erfolgreich demuxen können. Ich denke mpgtx bleibt weiterhin Favorit. Aber danke fürs mitdenken!

  10. #10
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Beiträge
    14
    Zitat Zitat von fuffy
    So gehts mit tcextract:
    Code:
    tcextract -i $INPUT_FILE -x mpeg2 >output.mpv
    tcextract -i $INPUT_FILE -x mp3 >output.mp2
    Hier gilt das gleiche wie für tcdemux. Wie sollte ich prüfen was für ein Stream vorliegt? mpgtx kümmert sich von selbst darum.

    MfG
    Darko

  11. #11
    Registrierter Benutzer Avatar von fuffy
    Registriert seit
    Jun 2002
    Ort
    Hückelhoven
    Beiträge
    3.026
    Zitat Zitat von ddamjan
    Hier gilt das gleiche wie für tcdemux. Wie sollte ich prüfen was für ein Stream vorliegt?
    Das brauchst du gar nicht. Die libmpeg2 kann auch MPEG1 dekodieren, genauso wie mp3lib MP2 dekodieren kann. Schau dir doch mal die Ausgabe vom MPlayer an, wenn du die MPG-Datei abspielst.

    Gruß
    fuffy
    Shuttle SN95G5V2 | Athlon 64 3000+ | 1 GiB RAM | SAMSUNG HD501LJ | LG GSA-4167B | SkyStar 2
    Vaio VGN-SZ4XWN/C
    Linux 2.6 | GNOME 2.22 | VDR 1.6

  12. #12
    Registrierter Benutzer Avatar von fuffy
    Registriert seit
    Jun 2002
    Ort
    Hückelhoven
    Beiträge
    3.026
    Code:
    $ mount /media/dvdwriter
    mount: blockorientiertes Gerät /dev/hdc ist schreibgeschützt, wird eingehängt im Nur-Lese-Modus
    $ cp /media/dvdwriter/
    ext/    mpegav/ vcd/
    $ cp /media/dvdwriter/mpegav/avseq01.dat .
    cp: Lesen von ,,/media/dvdwriter/mpegav/avseq01.dat": Eingabe-/Ausgabefehler
    $ vcdxrip -pC
    $ tcextract -i avseq01.mpg -x mpeg2 >video.m1v
    tc_memcpy: using sse for memcpy
    (extract_mpeg2.c) missing start code at 0x800
    (extract_mpeg2.c) incorrect zero-byte padding detected - ignored
    $ tcextract -i avseq01.mpg -x mp3 >audio.mp2
    tc_memcpy: using sse for memcpy
    (extract_mp3.c) missing start code at 0x800
    (extract_mp3.c) incorrect zero-byte padding detected - ignored
    $ file video.m1v
    video.m1v: MPEG sequence, v1, progressive Y'CbCr 4:2:0 video, CIF NTSC, NTSC 4:3, 29.97 fps, Constrained
    $ file audio.mp2
    audio.mp2: MPEG ADTS, layer II, v1, 224 kBits, 44.1 kHz, Stereo
    Gruß
    fuffy
    Shuttle SN95G5V2 | Athlon 64 3000+ | 1 GiB RAM | SAMSUNG HD501LJ | LG GSA-4167B | SkyStar 2
    Vaio VGN-SZ4XWN/C
    Linux 2.6 | GNOME 2.22 | VDR 1.6

  13. #13
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Beiträge
    14
    Zitat Zitat von fuffy
    Code:
    $ file video.m1v
    video.m1v: MPEG sequence, v1, progressive Y'CbCr 4:2:0 video, CIF NTSC, NTSC 4:3, 29.97 fps, Constrained
    $ file audio.mp2
    audio.mp2: MPEG ADTS, layer II, v1, 224 kBits, 44.1 kHz, Stereo
    Super, danke! Ich werd das mal testen mit verschiedenen MPEG Dateien.

  14. #14
    Registrierter Benutzer
    Registriert seit
    Sep 2005
    Beiträge
    14
    Ich hab das jetzt mal mit ein paar Versionen getestet und bin der Meinung das "mpgtx" besser funktioniert als "tcextract". Ich habe verschiedenste MPEG mit "tcextract" und "mpgtx" getestet und "mpgtx" war in jedem Fall überlegen. tcextract hat z.B. bei manchen Schnittpunkten von MPEG ein EOF (end of file) angenommen und die Bearbeitung abgebrochen und einige MPEG waren damit gar nicht zu demultiplexen. Trotzdem danke für die Vorschläge.

    Was ich aber geändert habe ist das Multiplexen. "tcmplex" aus den transcode-tools wurde nämlich ab der Version 1.0 eingestellt und ist nicht mehr zu haben. Nun wird "mplex" verwendet, aus den mjpegtools.

    Die aktuellste Version von svcd2dvd braucht somit nur noch folgende Tools:

    - mpgtx
    - ffmpeg
    - mplex (aus den "mjpegtools")
    - dvdauthor

    Code:
    #!/bin/sh
    #
    # Name: svcd2dvd.sh 
    # This script converts all given mpeg files to dvd-format
    #
    # Usage: ./svcd2dvd.sh "file1.mpg" "file2.mpg" "file3.mpeg" ...
    #
    # Needed tools: mpgtx
    #               ffmpeg
    #               mplex (from 'mjpegtools')
    #               dvdauthor
    
    
    if [ -z "$1" ]; then
    echo "No files given."
    echo "Usage: ./svcd2dvd.sh \"file1.mpg\" \"file2.mpg\" \"file3.mpeg\" ..."
    exit 0
    fi
    
    for p in "$@";do
    
    clear
    echo "${p} demultiplex..."
    echo "------------------------------------------"
    mpgtx -d "${p}"
    mv chunk-0.m1v temp.mpv
    mv chunk-0.m2v temp.mpv
    mv chunk-0.mp2 temp.mp2
    
    clear
    echo "${p} convert audio..."
    echo "------------------------------------------"
    ffmpeg -i temp.mp2 -ar 48000 -ab 192 -ac 2 temp48.mp2
    
    clear
    echo "${p} multiplex video and audio..."
    echo "------------------------------------------"
    mplex -f 8 -o "${p}".dvd-format.mpg temp48.mp2 temp.mpv
    
    rm *.mpv
    rm *.mp2
    done
    
    clear
    echo "Completed. All \"*.dvd-format.mpg\" files ready for dvdauthor."
    
    
    #Comment the following lines out if you want to create your own dvd-menu with dvdauthor.
    #You just have to author all generated files with the ending: ".dvd-format.mpg"
    
    
    clear
    echo "Creating dvd-structure..."
    echo "------------------------------------------"
    echo "<dvdauthor>" > dvdauthor.xml
    echo "<vmgm />" >> dvdauthor.xml
    echo "<titleset>" >> dvdauthor.xml
    echo "<titles>" >> dvdauthor.xml
    
    iMax=$#
    i=2
    
    for param in "$@";do
    
    echo "<pgc>" >> dvdauthor.xml
    echo "<vob file=\"${param}.dvd-format.mpg\" />" >> dvdauthor.xml
    
    if [ $iMax -eq 1 ];then
    echo "<post>jump title 1;</post>" >> dvdauthor.xml
    else
    iMax=$[$iMax+1]
    if [ $i -eq $iMax ];then
    echo "<post>jump title 1;</post>" >> dvdauthor.xml
    else
    echo "<post>jump title ${i};</post>" >> dvdauthor.xml
    i=$[$i+1]
    iMax=$[$iMax-1]
    fi
    fi
    echo "</pgc>" >> dvdauthor.xml
    
    done
    
    echo "</titles>" >> dvdauthor.xml
    echo "</titleset>" >> dvdauthor.xml
    echo "</dvdauthor>" >> dvdauthor.xml
    mkdir dvd
    dvdauthor -o dvd/ -x dvdauthor.xml
    rm *dvd-format.mpg
    rm dvdauthor.xml
    clear
    echo "Completed. Burn the content of the new \"dvd\"-directory."
    exit 0
    MfG
    Darko

Ähnliche Themen

  1. "Willst du mit mir gehen?"
    Von Steve im Forum Meldungen und Mitglieder
    Antworten: 561
    Letzter Beitrag: 24.05.12, 21:35
  2. mini-DV, S 8, HI 8, VHS auf DVD?
    Von DarkSorcerer im Forum Fernsehen
    Antworten: 1
    Letzter Beitrag: 01.04.05, 21:40
  3. Auf Client ohne DvD Laufwerk von DvD installieren
    Von tom4 im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 23.03.05, 21:37
  4. Antworten: 2
    Letzter Beitrag: 19.02.04, 12:02
  5. Suse 9 DVD auf CD bringen
    Von X-Scorpion-X im Forum Linux Allgemein
    Antworten: 17
    Letzter Beitrag: 13.12.03, 10:37

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •