DivX vs XviD revisited+updated

DivX-kompatible H.264/Matroska-Dateien unter Linux erstellen

Vor einem Jahr schrieb ich, wie mich mein Blog so praktisch erinnert, ein paar Zeilen über DivX und XviD. Die haben durchaus noch ihre Geltung -aber wie’s der Zufall und die fortschreitenden Versionsnummern so wollen- inzwischen gibt es noch ein paar wesentlich interessantere Dinge in diesem Zusammenhang – und die liefert diesmal DivX:

Mit der aktuellen Version setzen die Macher von DivX zum einen auf H.264 als Codec, was bestimmt nicht die schlechteste Wahl ist. Zum anderen, nämlich beim Containerformat, auf Matroska – womit das veraltete AVI-Format  und das schrullige .divx endlich begraben sein dürften, eine Alternative zu Apples .proprietärem und eher .zickigigem .mp4 geschaffen wurde und tatsächlich einem reinrassigen Open-Source-Format zur verdienten Aufmerksamkeit verholfen wurde. Trotz seiner hervorragenden Möglichkeiten (es lassen sich z.B. mehrere parallele Audiospuren, Untertitel, DVD-Menus, Kapitel, Titelbilder etc. in einer einzigen MKV-Datei abspeichern) hielt das .mkv-/MKV- oder Matroska-Format bisher selbst unter den eingefleischten Linuxzeloten eher eine Exotenrolle inne. Obwohl VLC, Mplayer und Totem Matroska längst unterstützen, wollte wohl niemand einem Insulaner, wie MKV so recht vertrauen. Sofern die proprietäre Welt und damit die Hersteller von Hardware- und mainstreamtauglichen Softwareplayern, DivX wie gewohnt unterstützen, wird sich dies allerdings in Bälde durchschlagend ändern.

Was aber hat man als von DivX und Konsorten nicht eben häufig mit GUIs, Encodern und ähnlichem Spielzeug bedachter Linux/Unix-User davon? Eine ganze Menge, natürlich und auch schon losgelegt:

Benötigt: mencoder, libx264 (debian-multimedia, sources.list1),  mkvtoolnix ( http://www.bunkus.org/videotools/mkvtoolnix/, Debian-Testing)

ausserdem: ogmtools, libfaac (Debian-Testing)

folgende Ergänzung in der /home/$USER/.mplayer/mencoder.conf bringt uns die beiden Encoding-Profile „h264“ und „2h264“ für ein sehr brauchbares all-round Zweipass-H264-Encoding und somit den ersten von zwei Schritten zum fertigen MKV bzw. DivX7-Movie:

[h264]
ovc=x264=1
oac=lavc=1
lavcopts=acodec=libfaac:vpass=1:turbo=1
passlogfile="mencoder-2pass.log"
x264encopts=qp=26:bframes=2:b_pyramid:deblock=2,2:subq=3:pass=1:turbo=2

[2h264]
ovc=x264=1
oac=lavc=1
lavcopts=acodec=libfaac:vpass=2
passlogfile="mencoder-2pass.log"
x264encopts=qp=26:bframes=2:b_pyramid:deblock=2,2:subq=3:pass=2

die Absicht dahinter erstreckt sich darauf, nicht jedesmal wieder den ganzen Sermon von gleichbleibenden Optionen eingeben zu müssen.

Statt dessen können wir jetzt mit

mencoder -profile h264 dvd://Titelnummer
mencoder -profile 2h264 -o movie.avi dvd://Titelnummer

fast perfekte H.264-Clips erzeugen. Leider nur „fast“, denn erstens kommt leider nur eine AVI-Datei dabei heraus und zweitens… kommt leider nur eine AVI-Datei heraus – das heisst, die Audio-Spur ist zwar bereits in AC3, aber leider nicht so synchronisiert, wie wir es für H.264 brauchen. Noch nicht:

mplayer -dumpaudio -audiofile Titel.aac

isoliert die AC3-Audiospur. Mit dem Aufruf des MKV-GUIs, lässt sich das AVI in ein zu erzeugendes MKV hereinholen, die Audio Spur, die noch im AVI liegt deaktivieren! Anschliessend Titel.aac hinzufügen. Als MKV muxen. Theoretisch fertig. Praktisch wollen wir aber noch Kapitel in der Matroska-Datei.

dvdxchap -t TITELNUMMER >titel1.txt

erledigt das Exportieren der Kapitelinformation des ersten Titels die Datei titel1.txt. Mit dem Kapiteleditor aus dem MKV-GUI lässt sich diese laden und als titel1.xml wieder speichern. Der Kapiteleditor ist ein eigenständiges Programm, d.h. wir müssen unter „global“ die Datei titel1.xml in das MKV importieren und können jetzt alles miteinander „muxen“ also als Matroskadatei abspeichern. Fertig.

Alternativ lässt sich anstatt  mkvmerge auch mp4creator benutzen, um aus den eben erzeugten Audio- und Videostreams iPhone/iPod/Blackberry-kompatible  MP4-Dateien zu erzeugen.

Das GUI bietet noch etlichen Schnickschnack mehr: Dateien als Attachment einfügen, Sprache festlegen etc. ppp. Ausprobieren schadet nichts.


1:

# debian-unofficial
deb http://ftp.debian-unofficial.org/debian testing main contrib non-free restricted

Über Tom

"Die meisten 'normalen Leute' in meinem Bekanntenkreis würden mich wohl als 'Computernerd' bezeichnen. Die meisten Computernerds -einschliesslich meiner selbst- wären darüber anderer Meinung."
Dieser Beitrag wurde unter Linux abgelegt und mit , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

2 Antworten zu DivX vs XviD revisited+updated

  1. Aliatis sagt:

    Wieso nicht beim Profile h264 und 2h264 die audiodatie einfach weglassen? Kommt doch beim mkvmerg doch eine neue dazu?

  2. admin sagt:

    Nicht ganz. Erstens müsste man für ein gelungenes 2-Pass Encoding die Audiospur selbst dann miterstellen, wenn man sie hinterher ersetzt, sonst passt zum Schluss die Gesamtlänge/Synchronizität nicht (ich habe das wirklich erschöpfend ausprobiert und bin deshalb schliesslich bei H.264 gelandet).
    Zweitens kommt die „neue“ Audiodatei für mkvmerge aus der alten Videodatei:
    mplayer -dumpaudio -dumpfile AUDIO.aac
    erledigt das normalerweise – und genau dieses AUDIO.aac bindet man dann mit mkvmerge wieder ein, nachdem man die Tonspur aus der Videodatei verworfen hat.

Da könnte ja jeder kommen und kommentieren!

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.