Extraire tous les pistes audio / flux
Cela met tout l'audio dans un seul fichier :
ffmpeg -i input.mov -map 0:a -c copy output.mov
-map 0:a
sélectionne toutes les pistes audio uniquement. La vidéo et les sous-titres seront exclus.
-c copy
active le mode de copie de flux. Cela copie l'audio sans le ré-encoder. Retirez -c copy
si vous voulez que l'audio soit ré-encodé.
- Choisissez un format de sortie qui prend en charge votre format audio. Voir comparaison des formats de conteneur vidéo.
Extraire une piste audio / flux spécifique
Exemple pour extraire le flux audio #4 :
ffmpeg -i input.mkv -map 0:a:3 -c copy output.m4a
-map 0:a:3
sélectionne seulement la piste audio #4 (ffmpeg
commence à compter à partir de 0).
-c copy
active le mode de copie de flux. Cela copie l'audio sans le ré-encoder. Retirez -c copy
si vous voulez que l'audio soit ré-encodé.
- Choisissez un format de sortie qui prend en charge votre format audio. Voir comparaison des formats de conteneur vidéo.
Extraire et ré-encoder l'audio / changer de format
Similaire aux exemples précédents, mais sans -c copy
. Divers exemples :
ffmpeg -i input.mp4 -map 0:a output.mp3
ffmpeg -i input.mkv -map 0:a output.m4a
ffmpeg -i input.avi -map 0:a -c:a aac output.mka
ffmpeg -i input.mp4 output.wav
Extraire toutes les pistes audio individuellement
Cet exemple d'entrée comporte 4 pistes audio. Chaque piste audio sera produite en tant que fichiers individuels.
ffmpeg -i input.mov -map 0:a:0 output0.wav -map 0:a:1 output1.wav -map 0:a:2 output2.wav -map 0:a:3 output3.wav
Ajoutez éventuellement -c copy
avant chaque nom de fichier de sortie pour activer le mode de copie de flux.
Extraire un certain canal
Utilisez le filtre channelsplit. Exemple pour obtenir le canal de droite avant (FR) à partir d'une entrée stéréo :
ffmpeg -i stereo.wav -filter_complex "[0:a]channelsplit=channel_layout=stereo:channels=FR[right]" -map "[right]" front_right.wav
channel_layout
est la disposition des canaux de l'entrée. Elle n'est pas détectée automatiquement donc vous devez fournir le nom de la disposition.
channels
liste le(s) canal(aux) que vous voulez extraire.
- Voir
ffmpeg -layouts
pour les noms de disposition de canal audio (pour channel_layout
) et les noms de canal (pour channels
).
- Il n'est pas possible d'utiliser le mode de copie de flux (
-c copy
) lors du filtrage, donc l'audio doit être ré-encodé.
- Voir FFmpeg Wiki: Manipulation des canaux audio pour plus d'exemples.
Quelle est la différence entre -map
et -vn
?
ffmpeg
a un comportement par défaut de sélection des flux qui sélectionnera 1 flux par type de flux (1 vidéo, 1 audio, 1 sous-titre, 1 donnée).
-vn
est une option ancienne et obsolète. Elle exclut la vidéo du comportement par défaut de sélection de flux. Donc l'audio, les sous-titres et les données sont toujours automatiquement sélectionnés à moins d'être indiqués de ne pas l'être avec -an
, -sn
, ou -dn
.
-map
est plus compliqué mais plus flexible et utile. -map
désactive le comportement par défaut de sélection des flux et ffmpeg
n'inclura que ce que vous lui indiquez avec l'option -map
. -map
peut aussi être utilisé pour exclure certains flux ou types de flux. Par exemple, -map 0 -map -0:v
inclurait tous les flux sauf toutes les vidéos.
Voir FFmpeg Wiki: Map pour plus d'exemples.
Erreurs
Flux audio invalide. Exactement un flux audio MP3 est requis.
MP3 ne prend en charge qu'un seul flux audio. L'erreur signifie que vous essayez de mettre plus d'un flux audio en MP3. Cela peut aussi signifier que vous essayez de mettre un audio non MP3 en MP3.
Les fichiers WAVE ont exactement un seul flux
Similaire au cas précédent.
Impossible de trouver une balise pour le codec dans le flux #0, codec actuellement non pris en charge dans le conteneurl
Vous essayez de mettre un format audio dans une sortie qui ne le prend pas en charge, comme PCM (WAV) en MP4.
Retirez -c copy
, choisissez un format de sortie différent (changez l'extension du nom de fichier), ou choisissez manuellement l'encodeur (tel que -c:a aac
).
Voir comparaison des formats de conteneurs vidéo.
Impossible d'écrire l'en-tête pour le fichier de sortie #0 (paramètres de codec incorrects ?) : Argument invalide
C'est une erreur générique inutile. L'erreur réelle et informative devrait précéder immédiatement ce message d'erreur générique.