Ez a bejegyzés a "(re-)Introducing video" című cikk fordítása. Az eredeti cikk 2009. december 31-én jelent meg a Core blogon.
Ma [azaz 2010 január 1-én] a Desktop Team kiadta az év első Opera 10.5 pre-alfáját, ami már tartalmazza az új HTML5-ös video
implementációnkat. Az Opera volt az első, aki javasolta a video
elemet, és már 2007-ben elérhetővé tette az első demonstrációs célú (proof-of-concept) előzetest. Ebben a bejegyzésben az azóta végzett munkáról beszélnék, az általunk hozott döntésekről és a lehetséges folytatásról.
Kodekek
A kezdetektől fogva az egyik legfontosabb kérdés, hogy melyik audió- és videóformátumokat kellene használnia a HTML5-nek. A kérdés komoly vitákat indukált a web standard közösségen belül, de azóta sincs egyetértés. Mi úgy gondoljuk, hogy a webes platformnak nyílt szabványokon kell alapulnia, emiatt folytatjuk az Ogg formátumok támogatását: a Vorbis audió- és a Theora videóformátumot. Az alap WAVE PCM hanggal együtt ezek alkotják az "alap" kodekjeinket, amit minden platformon támogatni fogunk.
Képességek
Noha az alapkodekek nem változtak, szinte minden más igen. a video
megjelenése óta sokat fejlődött a specifikáció, mi pedig igyekszünk szóról-szóra követni azt. Íme egy nem kimerítő lista arról, hogy jelenleg mit tekintünk belőle többé-kevésbé késznek:
- natív vezérlőelemek (a
controls
attribútum) - szkriptelt vezérlőelemek (pl.
play()
,.currentTime
ésontimeupdate
) - poszterkép (
Poster
attribútum) video
képkockák rajzolásacanvas
-ba- a kodektől és a környezettől függő forrás kiválasztása
- szkriptelt kodek felismerés
Mivel ez egy pre-alfa, akadnak még befejezetlen részek. A legégetőbb, hogy jelenleg még egyáltal nem támogatjuk a videón belüli keresést (seek). Ennek mellékhatásaként a videó végéig nem is írja ki a fájl hosszát, szóval a keresősávnak egyelőre nincs sok értelme. Jelenleg ez az elsődleges elem a végső kiadás előtt javítandó funkciók listáján. Dolgozunk továbbá a sávszélesség kezelésen így alkalmazkodni tudunk majd az autobuffer attribútumhoz (illetve annak hiányához)
Megvalósítás
Az eredeti video
bemutatónkban a libogg
, a libvorbis
és a libtheora
könyvtárakat használtuk. Ezeket ebben a kiadásban is megtalálhatjuk, de adaptáltuk a GStreamer média-keretrendszert, ami egy extra rétegként funkciónál a böngésző magja és a nyers dekódolás között. Ez, sok más egyéb mellett, lehetővé tette, hogy a feldolgozás külön szálon fusson, ami javította a válaszkészséget és a hangminőséget.
Azon platformok esetén, ahol natívan elérhető a GStreamer, az Opera egyszerűen a telepített verziót fogja használni. Tehát ha Linuxot vagy FreeBSD-t használsz, akkor fel kell telepítened a GStreamer "base" és "good" beépülőit, különben a video
egyáltalán nem fog működni. (Frissítés: Ubuntun/Debianon a kérdéses csomagok neve gstreamer0.10-plugins-base és gstreamer0.10-plugins-good).
Ha ezek rendelkezésre állnak, az Opera képes lesz lejátszani bármit, amit a GStreamer kezelni tud, amiben szerencsére az alap kodekjeink is benne foglaltatnak. Megpróbáljuk felismerni a a GStreamer beépülők egy részét, így korrekt választ adhatunk a szkriptelt kérdésekre (pl. canPlayType('audio/flac')
). Reméljük, örömeteket lelitek majd ebben, de maradjatok az Ogg-nál, ha keresztplatform és böngészőfüggetlen megoldásban gondolkodtok.
Windows alatt egy olyan minimál GStreamer konfigurációt implementáltunk, ami csak az említett alap-kodekek dekódolására képes. Ahogy azt a GStreamer licensze (LGPL) megköveteli, elérhetővé tettük a módosított forráskódot. Sajnos még nem készült el a Mac-es verzió ezért is nincs video
támogatás Mac-re.
Hálás köszönet a GStreamer és a Xiph projektek fejlesztőinek a kiváló szoftvereikért és az időnkénti IRC-s tanácsaikért.
A jövő
Remélem, a most kezdődő évben a video
elem elfogadottsága tovább növekedik majd, és az audio
, valamint a video
elemek webes platformba integrálásának sok új, izgalmas alkalmazását láthatjuk majd. Keményen dolgzunk majd azon, hogy segítsük a hasonló próbálkozásokat, részben a saját implementáción tökéletesítésével, részben a HTML és más szabványok létrehozásában való közreműködésünkkel. Néhány, jelenleg fontos dolog:
- a teljes-képernyős videólejátszás egy szükséges dolog
- feliratok, jelenetek (statikus és szkriptelt)
- médiatöredék webcímek (Media Fragment URI), amik segítségével a videó egy adott időpontjára lehet hivatkozni
- még több CSS, hogy a
video
és az egész web még fantasztikusabb legyen - ne felejtsük el az SVG saját
video
ésaudio
elemét sem - biztonság, teljesítmény és stabilitás (ez mindig fontos)
(Nincsenek arra vonatkozó ígéreteink, hogy az egyes funkciók mikorra leszek készen.)
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Teddy Beer 2010.01.04. 21:44:16
A Google a YouTubenál úgy néz ki hogy nem fogadta meg és azt kell mondjam igazuk van, mivel a H.264 jobb a videokártyáknak 720p, vagy afeletti felbontáson.
penge™ · http://www.thevenusproject.com/ 2010.01.05. 01:51:49
A fullscreen (lehetőleg duplaklikkel), seeking, timejump kéne még hozzá, a felirat nagyon jó lenne (főleg ha .srt-ből és .sub-ból is be lehetne tölteni alá elvégre mindkettő csak egy sima szövegfájl), akkor pedig még a DivX webplayert is lepipálja.
bazsı' 2010.01.05. 17:45:31
Régebben sokszor láttam .wmv videót HTML-be beágyazva, azt hiszem <object> vagy <embed> tagek között. Ha volt fenn az ember gépén Media Player vagy plugin, akkor le is lehetett játszani a videót.
Az miért nem volt jó megoldás (attól eltekintve, hogy WMP kellett hozzá)?
Darkcomet 2010.01.05. 18:02:54
penge™ · http://www.thevenusproject.com/ 2010.01.05. 20:37:05
1: Zárt
2: Microsoft-függő, Linuxon necces
3: Erőforrászabáló
4: Beépülő kell hozzá, nagyobb hibalehetőség, nagyobb biztonsági kockázat, hosszabb elérési idő.
+1: A WMV-től kevés szarabb formátum létezik. Attól még a sima DivX vagy XviD is jobb, de még az MPEG-2 is.
Még a mai napig kínja van minden normális lejátszónak a WMV fájlok tekerésével és a time streching-et sem szeretik, a WMP meg eleve nem tud ilyeneket, még a mai napig úgy teker, mint egy VHS videó, szóval ott nem lehet kipróbálni.
Ezért. Ez pedig, ahogy előttem is írták leváltja a Flash-t, a Silverlight-ot és mindenféle izét, tiszta, szabványos és nyílt megoldás a HTML specifikációban...
Teddy Beer 2010.01.13. 20:03:15
penge™ · http://www.thevenusproject.com/ 2010.01.14. 07:02:57
Teddy Beer 2010.01.14. 11:09:44