2 votes

La copie audio de ffmpeg échoue avec pipe

Dans une ligne de commande, si je lance :

ffmpeg -i inputVideo.mp4 -vn -f mp4 -acodec copy outputAudio.aac

tout fonctionne parfaitement bien. Cependant, si je fais la même chose, mais avec la sortie standard au lieu du fichier de sortie ("pipe:1" au lieu de "outputAudio.aac"), j'obtiens cette erreur : "Could not write header for output file #0 (incorrect codec parameters ?)"

L'aide de toute personne ayant une expérience de ffmpeg est très appréciée.

Merci

1voto

av501 Points 4036

Le problème est que vous demandez un fichier mp4 dont le nom de fichier est outputAudio.aac. Donc si vous vérifiez outputAudio.aac c'est en fait un fichier mp4. Pour écrire des fichiers mp4, ffmpeg aura besoin d'un descripteur de fichier recherchable, ce que stdout n'est pas. [Ceci est dû au fait que l'atome mp4 moov est écrit à la fin au début du fichier.
Si vous voulez que l'aac soit envoyé à la sortie, vous devez demander un fichier adts.

ffmpeg -i input.mp4 -acodec copy -vn -f adts -strict -2 -

Si vous avez besoin d'un mp4, muxsez-le ensuite dans un fichier.

mp4 n'est pas un format de streaming : voir ici Correction d'un fichier 3GP après une diffusion en continu depuis Android Media Recorder pour ma réponse à une autre question qui explique cela.

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