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?

2voto

Pour extraire sans conversion, j'utilise une entrée de menu contextuel - en tant qu'action personnalisée du gestionnaire de fichiers sous Linux - pour exécuter ce qui suit (après avoir vérifié le type audio contenu dans la vidéo; exemple pour une vidéo contenant l'audio ogg):

bash -c 'ffmpeg -i "$0" -map 0:a -c:a copy "${0%%.*}".ogg' %f 

qui est basé sur la commande ffmpeg ffmpeg -i INPUT -map 0:a -c:a copy OUTPUT.

J'ai utilisé -map 0:1 sans problème, mais, comme indiqué dans un commentaire de @LordNeckbeard, "Le flux 0:1 n'est pas garanti d'être toujours audio. Utiliser -map 0:a au lieu de -map 0:1 évitera toute ambiguïté."

0 votes

@LordNeckbeard ~ Je vais prendre cela en compte, merci.

0 votes

J'ai utilisé mediainfo pour déterminer la piste audio, et je l'ai choisie de cette manière : -map 0:a:1 où a:1 est l'index de la deuxième piste audio, merci ! -c:a copy l'a rendu beaucoup plus rapide !

0voto

Bhuvnesh Varma Points 2698

Utilisez -b:a au lieu de -ab car -ab est désuet maintenant, assurez-vous également que le chemin de votre fichier d'entrée est correct.

Pour extraire l'audio d'une vidéo, j'ai utilisé la commande ci-dessous et cela fonctionne bien.

String[] complexCommand = {"-y", "-i", inputFileAbsolutePath, "-vn", "-ar", "44100", "-ac", "2", "-b:a", "256k", "-f", "mp3", outputFileAbsolutePath};

Ici,

  • -y - Remplacer les fichiers de sortie sans poser de question.
  • -i - FFmpeg lit à partir d'un nombre arbitraire de "fichiers" d'entrée spécifiés par l'option -i
  • -vn - Désactiver l'enregistrement vidéo
  • -ar - définit le taux d'échantillonnage pour les flux audio si encodés
  • -ac - Définir le nombre de canaux audio.
  • -b:a - Définir le débit binaire audio
  • -f - format

Consultez ceci pour mon projet complet d'exemple d'application FFmpeg sur Android sur GitHub.

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