Surfistes a càmara lenta

Posts Tagged ‘epub

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

Un dels objectius que tenim fixats dins del projecte MyWay (generació dels continguts de les assignatures en diferents formats) és aconseguir un ritme de generació bastant elevat. Penseu que no només hi ha els continguts nous d’aquest any, sinó que també tenim tota una llarga llista d’assignatures d’anys passats i que també hem de generar.

Amb aquest objectiu al cap, i sabent que els continguts que triguen més a generar-se són els audiollibres i els videollibres (generar un ebook al estil epub o mobipocket d’una assignatura no costa més de 5 minuts!!), ens vam posar a pensar de quines maneres podíem accelerar el procés de generació.

Primer de tot, vàrem veure que no podíem permetre’ns el luxe de generar només una assignatura a la vegada, doncs un videollibre podia arribar a trigar fins a 24h en generar-se. Així doncs vam establir, dins del nostre projecte (J2EE + Spring + Tomcat) un sistema de gestió de treballs o tasques amb Quartz. Nosaltres programem els treballs que volem fer i establim el màxim número de treballs (o threads dins del nostre generador) que es poden estar executant alhora.

D’aquesta manera també aconseguim que, si s’està generant un videollibre, no bloquegi durant 24h o més el procés de generació d’un ebook o audiollibre. Nosaltres tenim establerts 3 treballs: un que va comprovant si hi ha assignatures noves a generar (en cas afirmatiu inserta una petició d’aquella assignatura per cadascun dels 4 formats actuals), un que genera els formats d’ebook (epub i mobipocket) i un altre que genera els formats amb veu (audiollibre i videollibre).

Aquests 3 treballs “programats” s’executen, tal com hem esmentat, alhora, fins a un màxim de 3 treballs concurrents (podem augmentar o disminuir aquest número al nostre gust). Així doncs podem tenir al mateix temps generant-se 3 formats de 3 assignatures diferents (3 videollibres o 2 videollibres i 1 audiollibre …). Tot depèn de la capacitat i càrrega del servidor on s’estigui executant!

En la pròxima entrada explicarem com vàrem millorar, a continuació, el procés de generació d’un videollibre.

Com segurament coneixeu, els estudiants de la UOC reben tots els materials didàctics que necessiten a casa abans de l’inici de les classes. Tots aquests materials pertanyen a la Universitat i han estat elaborats per la nostra editorial. Sumant totes les assignatures, disposem de més de 2000 obres: un volum important.

En  un principi aquests materials eren llibres. Desrpès van aparèixer algunes webs que es distribuïen en CD. Ens vàrem adonar que els estudiants que rebien els CDs reclamaven els materials en format paper, principalment per llegir a casa, i els que rebien els llibres volien la web per a eralitzar consultes puntuals.

Així doncs ens vam decidir per incloure la tecnologia XML al nostre procès editorial, cosa que ens permetia generar sortides pdf i web automàticament. El canvi va ser tot un encert. Actualment la meitat dels nostres continguts estan en format XML i gràcies a això els podem lliurar en sis formats diferents sense que això ens suposi un cost extra: pdf, web, mobipocket, epub, audio sintètic i uns “videollibres” que anomem “karaoke”. El nom que fem servir per a agrupar tots aquests desenvolupament és MyWay: donem el contingut en diferents formats i els estudiants fan servir el que volen segons les seves necesstats concretes.

Com sempre, varem començar a marcar en XML amb més ganes que coneixement. Vam utilitzar els nostres pròpis tags sense tenir en compte que en el mercat ja existien sistemes com DTBook i DocBook. Un exemple: el que per a nostres és un “mòdul”, per a DTBook és un “level” i per a DocBook és un “chapter”.

Tenir un sistema de marques estàndard no és imprescindible, però ajuda a compartir els desenvolupaments amb altres institucions i a aprofitar programes ja existents. I és precissament això el que volem. Així doncs, ens hem decidit a adoptar algun dels sistemes de marques ja existents. Ara el dubte és saber quin.

Els dos sistemes que coneixem son DocBook i DTBook. Encara no ens hem decantat per cap d’ells. Tot just estem analitzant els pros i els contres de cada un d’ells. Us deixo aquí les notes que hem anat prenent per si és del vostre interès:

DTBook

  • Hi ha plug-ins de “save as…” per a word (+1)
  • Hi ha plug-ins de “sace as…” per a openoffice (+1)
  • Compatible amb ePub (+1)
  • Compatible amb Daisy (+1)
  • 80% dels nostres tags (-1)
  • Es pot incloure MathML (+1)
  • Al formar part de l’especificació DAISY, reb el suport d’institucions que vetllen per l’accessibilitat dels continguts (+1)
DocBook