Comment convertir une vidéo MP4 en audio MP3 avec FFmpeg?

119

J'ai besoin d'extraire une piste audio MP3 d'une vidéo MP4 avec ffmpeg. Je peux le faire pour .flv -> mp3, mais je ne connais pas les paramètres de ligne de commande pour mp4-> mp3. Par exemple, flv -> mp3:

ffmpeg -i video.flv -acodec copy audio.mp3

Quels paramètres dois-je utiliser pour mp4 -> mp3?

Steven Penny
la source
2
Si vous n'avez pas vraiment besoin d'un MP3, je ne convertirais pas l'audio: MP4-> MP3 est une transformation avec pertes, vous perdrez des informations supplémentaires sur la source.
Thom Wiggers
pas plus de ffmpeg pour Ubuntu 14.04
Louis
@ThomWiggers est-il nécessairement une perte? Je ne sais pas comment les mp4 sont encodés, mais tant que vous pouvez séparer la vidéo et l'audio, cela ne devrait pas être nécessaire
franche
La version originale de cette question n'indiquait pas clairement comment l'audio était codé - cela avait été modifié lors des modifications. Le remixage ne doit pas être une perte.
Thom Wiggers le

Réponses:

148

La commande de base est:

ffmpeg -i filename.mp4 filename.mp3

ou

ffmpeg -i video.mp4 -b:a 192K -vn music.mp3

Vérifiez cette URL: Vidéo MP4 en fichier MP3 avec ffmpeg (Ubuntu 9.10 Karmic Koala)

Remarque: Ubuntu ne fournit pas FFmpeg, mais le fork nommé Libav . La syntaxe est la même - utilisez avconvplutôt que ffmpegpour les exemples ci-dessus.

Naga Harish M
la source
2
Je vous remercie! Cette qualité est la meilleure, ou puis-je faire mieux?
pas plus de ffmpeg pour Ubuntu 14.04
Louis
2
@Louis Vous pouvez toujours le télécharger à partir de ffmpeg.org/download.html
slhck
1
@Louis - idem pour 14h10, mais il est apparemment de retour dans 15h04
Wilf
52

La meilleure façon d’encoder le MP3 est d’utiliser le -q:adébit binaire variable.

ffmpeg -i k.mp4 -q:a 0 -map a k.mp3

L' qoption ne peut être utilisée qu'avec libmp3lame et correspond à l' -Voption LAME . Voir:

Steven Penny
la source
@slhck ... c'est un bon point, mais je viens de tester un fichier vidéo et laisser de côté ne fait -vnque copier le flux audio. Je suppose que ffmpeg doit avoir un moyen de détecter la différence (je viens de vérifier un fichier avec ffprobe, et la vidéo a été flux 1 plutôt que 0 habituelle, et avait des métadonnées: comment : Cover (front))
evilsoup
Celui-ci a enfin joué aussi sur le lecteur de musique Android. Merci
Michalzuber
1
Et pour convertir tout le répertoire (y compris les noms de fichiers avec des espaces) avec la commande ci-dessus: for i in * .mp4; do ffmpeg -i "$ i" -q: un 0 -map un "$ (nom de base" $ {i / .mp4} "). mp3"; terminé;
KingSlayer
En quoi le ffmpeg -i vid.mp4 audio.mp3fichier .mp3 résultant est-il différent de la commande vanilla dans la réponse de @Naga Harish M? Moins de perte?
franc