Optimisation de l’encodage vidéo Theora

Suite à plusieurs expériences de streaming vidéo live via Peercast avec mon ami que j’ai Fredix, il nous est apparu évident que l’encodage en format Theora était très gourmant en ressources CPU. Nos ordis portables avaient franchement du mal à suivre la cadence et le flux résultant était assez moyen en fluidité. Le désespoir et la frénesie d’achat d’un portable bicoredelamortquitue me guettant, « mon ami que j’ai » porta à mon attention un commentaire d’un billet sur un blog qui parlait d’une version optimisée MMX de la libtheora qui apportait, semblait-il, un gain substantiel en performance.
Pour tuer le temps aujourd’hui j’ai récupéré la dernière version de la bibliothèque theora qui, oh joie, inclue maintenant par défaut les optimisations MMX.

J’ai effectué un petit test d’encodage Theora sur une vidéo MPEG d’une durée de 7min 30s de résolution 320×240 25fps sur un pentium 4 2,8Ghz HT tournant sous Ubuntu Dapper.
Ligne de commande utilisée : « time ffmpeg2theora video.mpg ».
Un reboot entre les deux tests pour bien vider les éventuels caches système.

libtheora-alpha5 (version livrée avec Ubuntu Dapper) :
real 3m54.145s
user 3m51.102s
sys 0m2.592s

libtheora-alpha7 :
real 2m45.557s
user 2m42.578s
sys 0m2.520s

WoooOO ! Environ 40% de gain de performance.
Plus qu’a tester ça en direct live pour confirmer que nos portables ne sont pas bon à jeter :)

J’ai mis à disposition les paquets pour Ubuntu Dapper dans un dépôt spécial (à utiliser à vos risques et périls) :
deb http://ubuntu.myreseau.org/ dapper-updates main
À savoir que cette version est disponible dans Debian Sid, donc dans Ubuntu Edgy certainement.