Comment saisir le canal audio d'un file video MP4 dans un file audio séparé?

Avoir un clip video MPEG4 (MP4 conteneur, video H264 AVC, audio AAC) téléchargé à partir de YouTube, comment séparer son canal audio en un file audio indépendant (sans dé-compresser de preference le file audio) avec des outils Linux gratuits?

Si vous savez qu'il y a seulement 1 stream audio et que c'est aac , alors vous avez seulement besoin de ceci:

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

Si vous voulez scripter le premier ID de stream audio et le type de codec / extension de file, vous pouvez utiliser ceci:

 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" 

Envisager des videos Youtube, extraire le son de la video peut ne pas être nécessaire, car les pistes audio peuvent être téléchargées séparément en utilisant Firefox avec le dernier addon Flashgot ou en utilisant mps-youtube (c'est un outil conçu pour lire et download des pistes audio depuis youtube: plus ici ).


Considérant les files video MP4:

Comme répondu ici , on peut nous une command plus générique sans avoir besoin des noms spécifiques des files, et l'append au menu personnalisé du gestionnaire de files, comme:

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

(L'utilisation de .m4a est préférable car elle est plus largement prise en charge en tant que conteneur pour .aac , mais vous pouvez utiliser le .aac brut à la place si vous le souhaitez).

En outre, cette command exécutée dans un terminal extraire les pistes audio de tous les files mp4 dans le dossier en cours:

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

( ici le post source)


Voir les commentaires et les informations connexes dans les réponses et questions liées sur la façon d'utiliser ces commands dans les menus contextuels des gestionnaires de files.


Ci-dessus et d'autres commands similaires peuvent également être utilisées pour extraire l'audio d'autres types de files video, en remplaçant en conséquence les extensions d'input et de sortie.

La première command fonctionne comme telle pour flv aussi; mais pour d'autres videos, il suffit de replace m4a par l'audio contenu dans le clip video. La deuxième command doit replace les extensions video et audio si elles sont appliquées à différents types de files video.

Habituellement, les files mp4 et flv contiennent de l'audio aac , les files Webm contiennent des files ogg et avi contiennent de l'audio mp3 . Pour être sûr de l'audio contenu dans la video, utilisez mediainfo : mediainfo-GUI , ou simplement installer mediainfo et dans Terminal: mediainfo <file> .