Wie importiert man den Audiokanal aus einer MP4-Videodatei in eine separate Audiodatei?

Wie importiert man den Audiokanal aus einer MP4-Videodatei in eine separate Audiodatei?

Wenn Sie einen MPEG4-Videoclip (MP4-Container, H264 AVC-Video, AAC-Audio) von YouTube heruntergeladen haben, wie kann ich den Audiokanal mit kostenlosen Linux-Tools in eine unabhängige Audiodatei trennen (vorzugsweise ohne De- und Rekomprimierung des Audios)?

Antwort1

Bei Youtube-Videos ist das Extrahieren von Audio aus Videos möglicherweise nicht notwendig, da dieAudiotracks können separat heruntergeladen werdenbeispielsweise durch die Verwendung von Firefox mit dem neuesten Flashgot-Addon oder durchmps-youtube(es ist ein Tool zum Abspielen und Herunterladen von Audiotiteln von YouTube: mehrHier).


Unter Berücksichtigung von MP4-Videodateien:

Wie beantwortetHier, man kann einen allgemeineren Befehl verwenden, der nicht die spezifischen Namen der Dateien benötigt, und diesen dem benutzerdefinierten Menü des Dateimanagers hinzufügen, etwa:

ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a

(Die Verwendung von .m4aist vorzuziehen, da es als Container für besser unterstützt wird .aac, Sie können aber stattdessen auch das Rohformat verwenden, .aacwenn Sie möchten.)

Außerdem extrahiert dieser in einem Terminal ausgeführte Befehl Audiospuren aus allen MP4-Dateien im aktuellen Ordner:

for i in *.mp4; do ffmpeg -i "${i}" -map 0:1 -c:a copy "${i%.mp4}.m4a"; done

(Hierder Quellbeitrag)


Kommentare und zugehörige Informationen zur Verwendung solcher Befehle in den Kontextmenüs von Dateimanagern finden Sie in den verlinkten Antworten und Fragen.


Die obigen und andere ähnliche Befehle können auch zum Extrahieren von Audio aus anderen Arten von Videodateien verwendet werden, indem die Eingabe- und Ausgabeerweiterungen entsprechend ersetzt werden.

Der erste Befehl funktioniert auch so flv; aber für andere Videos ersetzen Sie einfach m4adurch den Ton, der im Videoclip enthalten ist. Der zweite Befehl muss sowohl Video- als auch Audioerweiterungen ersetzen, wenn er auf verschiedene Arten von Videodateien angewendet wird.

Normalerweise enthalten mp4und Dateien Audio, Dateien enthalten und Dateien enthalten Audio. Um sicherzugehen, welche Audiodaten das Video enthält, verwenden Sie :flvaacWebmoggavimp3mediainfoMediainfo-GUI, oder installieren Sie es einfach mediainfound im Terminal: mediainfo <file>.

Antwort2

Wenn Sie wissen, dass nur 1 Audiostream vorhanden ist und dass dieser ist aac, benötigen Sie nur Folgendes:

ffmpeg -acodec copy -i "movie.mp4" -y "audio.aac"

Wenn Sie die erste Audio-Stream-ID und den Codec-Typ/die Dateierweiterung skripten möchten, können Sie Folgendes verwenden:

eval $(ffmpeg -i "movie.mp4" 2>&1 |awk '/Stream.*Audio/{print "stream=" $2 ";codec=" $4}' |head -n1)
stream=${stream:1}; stream=${stream/:/}
extn=${codec/,/}; [[ $extn == "aac" ]] || 
    { echo "You need to manually set the fiie extension. Codec type is: $codec"; exit 1; } 

ffmpeg -map $stream -acodec copy -i "movie.mp4" "audio.$extn"

verwandte Informationen