445 votes

Comment puis-je extraire l'audio de la vidéo avec ffmpeg ?

J'ai essayé la commande suivante pour extraire l'audio de la vidéo :

ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3

mais j'obtiens la sortie suivante :

libavutil     50.15. 1 / 50.15. 1
libavcodec    52.72. 2 / 52.72. 2
libavformat   52.64. 2 / 52.64. 2
libavdevice   52. 2. 0 / 52. 2. 0
libavfilter    1.19. 0 /  1.19. 0
libswscale     0.11. 0 /  0.11. 0
libpostproc   51. 2. 0 / 51. 2. 0
SamplE.avi: Invalid data found when processing input

Est-ce que quelqu'un peut aider, s'il vous plaît?

11voto

smp Points 41

ffmpeg -i sample.avi vous donnera les informations sur le format audio/vidéo de votre fichier. Assurez-vous d'avoir les bibliothèques appropriées configurées pour analyser les flux d'entrée. De plus, assurez-vous que le fichier n'est pas corrompu.

0 votes

Maintenant, j'ai obtenu le bon résultat quand j'ai essayé le même commentaire avec une vidéo .mkv. Pourquoi cela ne fonctionne-t-il pas pour .avi, y a-t-il une commande ffmpeg pour convertir .avi

1 votes

AVI ou MKV fait référence au format conteneur qui peut contenir de nombreux formats audio/vidéo différents. Vous ne cherchez pas à convertir l'audio AVI, vous cherchez à convertir la piste audio dans le fichier AVI, que vous n'avez pas encore spécifié. Utilisez la commande que j'ai indiquée ci-dessus pour voir quel type de piste audio se trouve dans le fichier AVI. Si c'est du MP3, vous devrez compiler FFMPEG avec une bibliothèque MP3 comme LAME lame.sourceforge.net

9voto

Suragch Points 197

Pour encoder de l'audio mp3 ffmpeg.org montre l'exemple suivant :

ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3

J'ai extrait l'audio d'une vidéo simplement en remplaçant input.wav par le nom du fichier vidéo. Le 2 correspond à 190 kb/s. Vous pouvez consulter les autres niveaux de qualité à mon lien ci-dessus.

0 votes

Cet exemple concerne la conversion d'un fichier audio vers un format différent, et non son extraction d'une vidéo.

0 votes

@IulianOnofrei, comme je l'ai décrit dans ma réponse, vous pouvez remplacer le fichier audio par un fichier vidéo. Cela a fonctionné pour moi.

6voto

Iulian Onofrei Points 353

Pour les personnes cherchant le moyen le plus simple d'extraire l'audio d'un fichier vidéo tout en conservant les paramètres d'origine du fichier vidéo, vous pouvez utiliser:

ffmpeg -i  

Par exemple, en exécutant:

ffmpeg -i screencap.mov screencap.mp3

extraira un fichier audio mp3 à partir d'un fichier vidéo mov.

3 votes

Simple et fonctionne. Pourquoi toutes les autres solutions sont-elles si compliquées? +1

1 votes

La question est, pourquoi cela a-t-il un vote de suppression ?

0 votes

Exactement, cela fonctionne pour moi à chaque fois. Pourquoi n'est-ce pas encore la meilleure réponse ?

6voto

Artem Vasiliev Points 736

Voici ce que je viens d'utiliser :

ffmpeg -i my.mkv -map 0:3 -vn -b:a 320k my.mp3

Explication des options :

  • my.mkv est un fichier vidéo source, vous pouvez également utiliser d'autres formats
  • -map 0:3 signifie que je veux la 3ème piste du fichier vidéo. Mettez votre N ici - les fichiers vidéo ont souvent plusieurs pistes audio ; vous pouvez l'omettre ou utiliser -map 0:a pour prendre la piste audio par défaut. Exécutez ffprobe my.mkv pour voir quelles pistes possède le fichier vidéo.
  • my.mp3 est un nom de fichier audio cible, et ffmpeg déduit que je veux un MP3 à partir de son extension. Dans mon cas, la piste audio source est de type ac3 DTS et simplement la copier n'était pas ce que je voulais
  • 320k est un débit binaire cible souhaité
  • -vn signifie que je ne veux pas de vidéo dans le fichier cible

2voto

Xheralt Points 29

Si l'audio emballé dans le fichier avi n'est pas au départ au format mp3, vous devrez peut-être spécifier -acodec mp3 comme paramètre supplémentaire. Ou quel que soit votre codec mp3 (sur les systèmes Linux c'est probablement -acodec libmp3lame). Vous pouvez également obtenir le même effet, sur toutes les plateformes, en spécifiant plutôt -f mp3 pour "forcer" le format en mp3, bien que toutes les versions de ffmpeg ne supportent plus ce commutateur. Votre expérience peut varier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X