Audio aus Video extrahieren mit MPlayer: Unterschied zwischen den Versionen

Aus UUGRN
K (→‎Beispiel: space vergessen)
 
(6 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Gelegentlich wüncht man sich das man eine Audio Spur aus einem Video File zu extrahiren. Dies ist eine Kleine anleitung dies mit [[MPlayer]] zu tun.
+
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 -dumpaudio (verlustfrei) ==
Mittels der Option -dumpaudio kann man mplayer dazu bewegen ''raw'' einen Audio Channel in ein File zu dumpen.
+
Mittels der Option <code>-dumpaudio</code> kann man [[mplayer]] dazu bewegen, einen Audio Channel ''raw'' in ein File zu dumpen.
  
 
=== Vorteile / Nachteile ===
 
=== Vorteile / Nachteile ===
Der Vorteil ligt darin das nicht De- und neu Encodirt wird. Dadruch gibt es keinen Qualitaets Verlust bei Verlusthaften Codecs. Der Nachteil ist das der Audio Player mit dem das File spaeder wieder abgespielt werden soll diesen Coodec koennen muss. Diest ist nicht zwangsweise der Fall. Es bestehen aber gute Changsen ein sinvolles Ergebnis zu bekommen bei Videos die als [[OGG]] abgelegt sind (Da meist [[Vorbis]] oder [[FLAC]] Audiospur) und bei Videos die als [[MPEG]] abgelegt sind (Der Audio Channel ist ein valider MP2/3 Stream<!-- immer? -->).
+
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<!-- immer? -->).
  
Die option -dumpfile kann genutzt werden um an zu geben wie das neue File heisen soll.
+
Die Option <code>-dumpfile</code> kann genutzt werden, um anzugeben, wie das neue File heißen soll.
  
 
=== Beispiel ===
 
=== Beispiel ===
Zeile 14: Zeile 15:
 
  $ mplayer -dumpaudio -dumpfile myaudio.mp3 myvideo.mpg
 
  $ mplayer -dumpaudio -dumpfile myaudio.mp3 myvideo.mpg
  
== Mittels -ao pcm (meist Verlusthaft) ==
+
== Mittels -ao pcm (meist verlustbehaftet) ==
 +
Die option <code>-ao</code> dient dazu, den Audio Output Treiber auszuwaehlen. Normalerweise sollte das auf [[OSS|oss]], [[ALSA|alsa]] oder [[ESD|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. Ebenso möglich ist die Option ''-novideo'' .
  
  
 
{{Stub}}
 
{{Stub}}
 +
[[Kategorie:Multimedia]]

Aktuelle Version vom 9. Mai 2018, 14:53 Uhr

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)[Bearbeiten]

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

Vorteile / Nachteile[Bearbeiten]

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[Bearbeiten]

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

Mittels -ao pcm (meist verlustbehaftet)[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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. Ebenso möglich ist die Option -novideo .


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.