2009-06-10 5 views
2

J'écris des simulations de physique en c pour l'université, et maintenant je produis une série de centaines de png que je regarde ensuite en séquence rapide ... y at-il un moyen de les fusionner à une vidéo en c avec un simple lossless bibliothèque de codecs?comment créer facilement des vidéos en c à partir d'une série de toiles cairo?

P.S. J'utilise graphiques caire et ont très peu d'expérience dans le graphisme de programmation en général

Répondre

1

Pas exactement ce que vous demandez, mais je ne roule pas moi-même, j'utiliser mencoder:

mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi 

PS. mencoder fait partie de MPlayer et est Open Source. DS.

+0

belle suggestion .. peut-être il y a un moyen de passer l'entrée png à travers stdin et les canaliser sans avoir besoin de les enregistrer tous avant ... – luca

2

Si vous voulez éviter d'utiliser un programme externe, libavcodec est probablement le meilleur moyen de générer de la vidéo. C'est en C, et assez bien documenté (voir le lien ci-dessus).

Plus de documentation sur la solution de Jonas en utilisant mencoder est here.

1

Vous souhaitez simplement regarder des fichiers PNG en tant que vidéo? Vous n'êtes pas obligé de les fusionner:

mplayer -fps 2 mf://*.png

Il y a des codecs sans perte rapide dans libavcodec de ffmpeg, si vous voulez faire au lieu de PNGs d'écriture. par exemple. ffvhuff, ou huffyuv.

Ou si vous ne voulez pas utiliser libavcodec, vous pouvez écrire une sortie brute y4m et la rediriger vers quelque chose. yuv4mpeg est un en-tête avec la fréquence d'images et la taille d'image, puis les pixels non compressés pour chaque image juste brutes.

Questions connexes