plusieurs images png sur un seul tube vers ffmpeg (aucun fichier n’écrit sur le disque!)

2

J'ai un programme qui génère un script pour gnuplotqui génère à son tour beaucoup d’images png et l’envoie à stdout. Je veux diriger ces images vers ffmpeg sans les écrire sur le disque . Ceci est ma ligne de commande jusqu'à présent:

./myprogram | gnuplot | ffmpeg -c:v png -i - -c:v libx264 -preset medium -crf 24 output.mkv

Malheureusement, cela ne semble pas être le cas, ffmpeg se plaint de "pipe: données non valides trouvées lors du traitement de l'entrée".

Y at-il un moyen ou suis-je obligé de vider les pngs numérotés sur le disque, puis passez ffmpeg quelque chose comme -i %10.png?

Lorenzo Pistone
la source
Hm, cela dépasse mes connaissances sur FFmpeg, mais je ne suis pas sûr que cela soit supposé fonctionner de cette façon. Peut-être avez-vous besoin d'un FIFO? Voir ici .
slhck
@slhck eh bien, cette page montre comment créer un canal en C et diffuser des données d'image brutes. Cela serait également bienvenu si je connaissais un programme en ligne de commande capable d'effectuer la conversion png- & gt; raw image array.
Lorenzo Pistone
Essayez d'utiliser -f image2pipe
leepfrog
@leepfrog avec du violon, ça marche! n'hésitez pas à poster la réponse. Quoi qu'il en soit, il y a quelques bizarreries, cela ne semble pas fonctionner avec des images png canalisées. Le programme qui génère l'image est gnuplot, et j'ai dû basculer sa sortie sur pbm.
Lorenzo Pistone

Réponses:

1

Essayez d'utiliser -f image2pipe, il n’est pas documenté dans la documentation officielle mais a fonctionné pour un problème similaire

leepfrog
la source
jpeg fonctionne, le support png a été ajouté le 9/5/2012, pbm est en panne ( ffmpeg.org/trac/ffmpeg/ticket/1321 ), gif est cassé.
Lorenzo Pistone