mit FFMpeg audio extrahieren oder umwandeln

Kleine Hilfestellung wie man mit Hilfe von FFMPEG Audio aus Videos in verschiedene Formate bekommt.

mit FFMpeg audio extrahieren oder umwandeln

Eins muß man vorher wissen: „Besser“ wirds durch erneutes Kodieren nicht!

Wer kennt das nicht, man zieht ein Video von YouTube, weil man die Musik gut findet und will ein reines Audioformat daraus machen. Da müssen wir uns erst einmal ansehen, was dann in der Datei drin ist:

ffprobe -i video.webm

Da könnte dann z.b. rauskommen:

Stream #0:1[0x2](und): Audio: aac(LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 159 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]

Da alle Linux Audioplayer, die ich so im Einsatz hatte, aac direkt abspielen können, müssen wir das gar nicht groß umkodieren:

ffmpeg -i video.webm -c:a:0 copy -f aac audio.aac

Das Ergebnis kann man gleich abspielen. Das Gleiche gilt für Opus, was man auch häufig antrifft (erst nachsehen!):

ffmpeg -i video.webm -c:a:0 copy audio.opus

Will man das als MP3 haben, muß man erst abschätzen, wieviel Bitrate sinnvoll ist, weil AAC oder OPUS besser kodieren als MP3 und somit weniger Bitrate ( kb/s ) brauchen als ein vergleichbares MP3. Da bietet es sich an, daß LAME selbst festlegen zu lassen und erst einmal ein verlustfreies WAVE daraus zu machen:

ffmpeg -i file.webm file.wav

und dann mit LAME ein VBR MP3 mit variabler Bitrate zu machen, da sucht sich der Codec die beste Qualität selbst aus:

lame -V 0 -b 64 -B 320 -q 0 file.wav file.mp3

Wenn man etwas weniger Platz benötigt und mit ein paar Verlusten leben kann, dann geht’s auch mit einem kleineren Maximalwert:

lame -V 0 -b 64 -B 224 -q 0 file.wav file.mp3

Das hängt eben auch damit zusammen, wie gut das Original war, falls man bei YT Videos von „Original“ sprechen kann, die ja auch nur durchgenudelt werden bis zum Gehtnichtmehr 😉 Deswegen immer dran denken: es kann nicht besser werden als die Qualität im Video, egal wie Hoch Ihr die Maxbitrate auswählt für euer MP3 oder AAC [da gibts auch Bitraten bis 512kb/s]. Wenn Ihr „ffmpeg -c:a:0 copy“  einsetzen könnt, tut es, dann wird es nicht schlechter.