Audio aus Video extrahieren mit MPlayer

Aus UUGRN
Version vom 18. März 2012, 19:20 Uhr von Kaitlynjung (Diskussion | Beiträge) (lol, was fuern legastheniker hat das denn verbrochen?)

Gelegentlich 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 liegt darin, dass nicht de- und neu encodiert wird. Dadurch 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 (FLAC 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 Audiodaten komplett unkomprimiert zwischengelagert 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 zusätzlich mit übergeben wird. Diese schaltet das Dekodieren der Videodaten 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.