Audio aus Video extrahieren mit MPlayer

Aus UUGRN
Version vom 6. Januar 2007, 00:51 Uhr von Rabe (Diskussion | Beiträge) (Typos gefixt. Äh, mal so das allermeiste. Der Text sollte grammatikalisch generalüberholt werden.)

Gelegendlich wünscht man sich, eine Audiospur aus einem Video zu extrahieren. Dies ist eine kleine Anleitung dies mit MPlayer zu tun.

Mittels -dumpaudio (verlustfrei)

Mittels der Option -dumpaudio kann man mplayer dazu bewegen, einen Audio Channel raw in ein File zu dumpen.

Vorteile / Nachteile

Der Vorteil ligt darin, dass nicht de- und neu encodirt wird. Dadruch gibt es keinen Qualitätsverlust bei verlustbehafteten Codecs. Der Nachteil ist, dass der Audio Player, mit dem das File später wieder abgespielt werden soll, diesen Codec unterstützen muss, dies ist nicht zwangsläufig der Fall. Bei Videos im OGG Format bestehen jedoch gute Chancen, ein sinvolles Ergebnis zu bekommen (Da meist Vorbis oder FLAC Audiospur) und bei Videos die als MPEG abgelegt sind (Der Audio Channel ist ein valider MP2/3 Stream).

Die Option -dumpfile kann genutzt werden, um anzugeben, wie das neue File heißen soll.

Beispiel

$ mplayer -dumpaudio -dumpfile myaudio.ogg myvideo.ogg
$ mplayer -dumpaudio -dumpfile myaudio.mp3 myvideo.mpg

Mittels -ao pcm (meist verlustbehaftet)

Die option -ao dient dazu, den Audio Output Treiber auszuwaehlen. Normalerweise sollte das auf oss, alsa oder esd stehen. Es gibt aber auch einen Output Treiber pcm, der dazu dient, PCM (Wave) Files zu schreiben. Er kann dies sowohl mit als auch ohne PCM Header. Hier soll dieses Output genutzt werden, um einem Audio Encoder zuzufueren. In unserem Falle oggenc dem Standard OGG Vorbis Encoder. Es kann aber auf ähnliche Weise auch flac (FALC Encoder) oder ähnliche genutzt werden.

Vorteile / Nachteile

Der Vorteil ist, dass hier der Codec, in dem der Audio Channel im Video vorliegt, egal ist, da wir ja die Daten neu encoden. Der Nachteil ist, dass bei Verwendung eines verlustbehafteten Audio Codecs die Qualität abnimmt. Aus diesem Grunde ist die obige Vorgehensweise stark empfohlen.

Beispiel

Fall 1: Das Video wird komplett decodiert und MPlayer schreibt die Datei audiodump.wav mit unseren Audiodaten. Diese Datei wird im zweiten Schritt neu encodet und im dritten Schritt gelöscht, da wir sie nicht mehr brauchen.

$ mplayer -ao pcm -vo null myvideo.ogg
$ oggenc audiodump.wav -o myaudio.ogg
$ rm audiodump.wav

Dieses Verfahren braucht allerdings recht viel Platz auf dem Datenträger, da die Audio Daten kommplett unkomprimirt zischengelagert werden.

Fall 2: Hier wird ein FIFO eingesetzt, um sich die temporäre Datei zu sparen.

$ mkfifo audiodump.wav
$ mplayer -ao pcm -vo null myvideo.ogg
$ oggenc audiodump.wav -o myaudio.ogg
$ rm audiodump.wav

Hinweis: Es kann zu deutlichem Geschwindigkeitszuwachs kommen, wenn MPlayer die option -vc dummy zusetzlich mit übergeben wird. Diese schaltet das Decodieren der Video Daten ab. Dies führt aber ggf. zu Problemen.


UUGRN-Wiki verbessern („Stub”)

Dieser Artikel ist leider sehr kurz. Also: Sei mutig und mache aus ihm bitte einen guten Artikel, wenn du mehr zum Thema „Audio aus Video extrahieren mit MPlayer” weißt.