Surfistes a càmara lenta

Generació concurrent d’elements multimèdia (part II)

Posted on: Agost 4, 2009

Un cop millorat el rendiment “global” del nostre generador, volíem fer més ràpid el procés de generació dels videollibres, doncs és el format que menys hem generat fins ara i el que triga més.

Per això vam fer unes estadístiques detallades de quant es trigava en generar un videollibre. I vam veure que el “coll d’ampolla” estava, principalment, al procés de conversió de Flash a Video (MPEG-4). Podia arribar a ser entre un 75 i un 83% del temps total de generació. Aquest procés s’executa a través d’un programa anomenat Moyea. El cridem des del nostre projecte Java, indicant-li el path de l’arxiu Flash (.swf) i els paràmetres del vídeo MPEG-4 de sortida.

Un dels incovenients del conversor de flash a vídeo (i encara no hem trobat cap que ho sàpiga fer) és que no sap quant dura aquest, ja que tota l’animació està basada en actionscript. Per a ell és com un flash d’1 sol frame, i si no li indiquem res, recorre aquest frame i deixa de capturar. Per a evitar això, Moyea té la opció d’indicar-li els segons que vols que estigui capturant el Flash.

És per això que cada conversió d’un flash dura com a mínim el temps de reproducció del mateix. Això ens causa un coll d’ampolla molt gran. Llavors vam provar de cridar vàries instàncies del Moyea a la vegada, a veure si podíem anar generant diferents vídeos de forma concurrent. I va sortir perfectament.

Així doncs, només calia que, quan generem un videollibre i arribem al pas de generar tots els vídeos d’un mòdul, en comptes d’anar-ho fent en sèrie, un darrera l’altre, creem uns quants threads (controlem el número màxim amb una constant) i anem convertint uns quants arxius flash a la vegada.

És així com ho hem acabat fent i, la veritat, és que el rendiment ha millorat molt. Ara a veure com es comporta a llarg termini. Ja us explicarem!

Anuncis

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out /  Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out /  Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out /  Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out /  Canvia )

S'està connectant a %s

%d bloggers like this: