Comment utiliser la tuyauterie avec ffmpeg?
Mon but est d'utiliser wget pour télécharger un fichier flv, et de rediriger la sortie vers ffmpeg pour convertir un fichier MP3. De cette façon, l'utilisateur peut télécharger de la musique MP3 sans attendre le FLV pour télécharger sur mon serveur en premier. J'ai été jouer avec elle, et il semble que ffmpeg ne peut le faire de la tuyauterie sur la vidéo brute. J'ai donc été de travailler avec quelque chose comme ceci:
wget -O - 'videoinput.flv' | ffmpeg -y -i - -vcodec rawvideo -f yuv4mpegpipe - | ffmpeg -y -i - -ab 128k audiooutput.mp3
Quelqu'un a une expérience avec ce type de sur-la-mouche ffmpeg processus d'encodage?
source d'informationauteur DiglettPotato
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas testé mais ce devrait être comme ceci ou très proche.
"ffmpeg ne peut le faire de la tuyauterie sur la vidéo brute" <-- Il n'est pas.
Vous pouvez pipe in/out de n'importe quel format ffmpeg prend en charge.
Et dans votre exemple de ligne de commande, vous extrait brut de la vidéo de FLV, et les encoder en MP3.
Il ne peut jamais être fait comme ceci.
Partie du problème que vous allez rencontrer est que certains formats de fichiers importants fichier contenant des informations à la fin du fichier. Ainsi, la tuyauterie d'un wget appel directement à ffmpeg est un potentiel de fichier disjoncteur comme ffmpeg, peut étouffer avant que le fichier soit entièrement téléchargé.
Vous êtes mieux de regarder une série de commandes: wget avec le fichier puis l'exécution de ffmpeg. Il ignore le tuyau de fonctionnalités, mais c'est le problème que vous obtenez de travailler avec certains fichiers.
Aussi, je voudrais prendre un coup d'oeil à cette FAQ réponse de FFMPEG site à l'égard d'un ensemble de méthodes lorsque la tuyauterie des vidéos à l'aide mkfifo et la concaténation de FLV: http://www.ffmpeg.org/faq.html#TOC27
Potentiellement meilleure option pour la tuyauterie en provenance d'un client HTTP est d'utiliser ffmpeg intégré. Au moins les versions plus récentes peuvent prendre l'URL d'un fichier d'entrée argument. De cette façon, FFmpeg pouvez retirer le fichier lui-même, et pour les formats qui ont conteneur de données près de la fin du fichier, il peut (si le serveur le supporte) prenez la partie de la file d'abord, à la différence de la tuyauterie de curl ou wget, extraire le fichier séquentiellement. Voir http://ffmpeg.org/ffmpeg-all.html#http