Magyar Opera

Operások írták - a "video" visszatér

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 és ontimeupdate)
  • poszterkép (Poster attribútum)
  • video képkockák rajzolása canvas-ba
  • a kodektől és a környezettől függő forrás kiválasztása
  • szkriptelt kodek felismerés
HTML5 video akkor és most

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 és audio 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.)

Demók

A bejegyzés trackback címe:

https://magyaropera.blog.hu/api/trackback/id/tr911645736

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

"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."

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

@Teddy Beer: A h264 sokkal jobb. Viszont elvileg itt is codec kérdése lesz a későbbiekben ha jól vettem ki a cikkből. Tehát elvileg mindent le lehet majd vele játszani, ha van a gépen hozzá megfelelő codec. Vagy legfeljebb a GStreamert kell majd patchelni, de szerencsére a My Operán ügyes emberek (Lex1, Tamil, d.i.z, BleedingHeart, Rafael Oliveira), akik majd összehoznak valamit.

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

Én nem teljesen értem ezt az egészet.
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

Ez azert lenne jobb megoldas, mert vegre le lehetne valtani az eroforras zabalo, bughalmaz flasht.

penge™ · http://www.thevenusproject.com/ 2010.01.05. 20:37:05

@Bɑzsi: Azért mert
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™: Nekem van egy tippem, miért a theora a kedvence az Operának. Mivel az Opera nagyon sok eszközön feltűnik a jövőben (repülő ülése, konzol, TV és egyre több nem microsoft beépülő rendszer), nem akarnak mindenhol külön jogdíjat fizetni egy olyan formátumért, ami több mint valószínű, hogy győzni fog. Emiatt ha nagyon makacsok, akkor nincs se youtube, se reklámok (na nem mintha az előbbit és más videó megosztót ne lehetne nézni kliens programmal, ahogy ma is). Persze vannak előnyei is a theorának, de nem hinném hogy ez bárhol előnyt jelentene (hardcore Ubuntu közösséget kivéve).

Teddy Beer 2010.01.14. 11:09:44

@penge™: www.mpegla.com/main/programs/AVC/Pages/FAQ.aspx Akkor kanyarodjunk vissza ahoz a részhez, hogy "van egy tippem, miért a theora a kedvence az Operának."
süti beállítások módosítása