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>
.