Annyit beszélnek róla, én is számtalanszor említettem, most már írni kell hát. Nagyon sok letorrentelt film ezzel jön, vele kódoljuk a legjobb minőségű webes videókat, szinte mindenhol beleakadunk. Részletek!
A H.264 hivatalos neve MPEG-4 Part 10 vagy MPEG-4 AVC (advanced video coding), ez lenne az MPEG-4 legtöbbet tudó változata, 1998-ban kezdték fejleszteni és az első verzió 2003-ban jött ki. Azóta szinte évente kapunk valamilyen módosítást, ma is élő dologról van szó.
A H.264 csak videó, a hozzá társított audió kodek neve pedig AAC (advanced audio coding), hivatalos neve MPEG-4 Part 3. Az AAC majdnem kétszer jobb az MP3-nál, amit úgy lehet lefordítani, hogy ugyanazt a minőséget tudja fele méretben, vagy ugyanabban a méretben kétszer szebb a hangja. Mindkettő sztenderd formátum, bejegyezve, lepapírozva, minden.
Az MPEG-4 Part 14 doksi szerint működnek ők ketten együtt egy MPEG-4 fájlban, tehát, ha eddig nem esett volna le a H.264 az az egyik (legjobb) fajta MPEG-4. Az audió és videó részt is tartalmazó fájlokat .mp4, a csak videósokat .m4v, a csak audiósokat pedig .m4a kiterjesztéssel kell ellátni.
A H.264-ben az MPEG-2-höz hasonlóan három fajta képkocka van, ezek az I, B és P kockák:
A képkockák csoportosítva vannak a videófolyamban, egy ilyen csoportot nevezünk GOP-nak (group of frames). A képkockákon belül macroblock-okban történik a kódolás, egy macroblock mondjuk 4x4 pixelt tartalmaz. Az optimalizálások jó része a macroblock-okon alapul, ezért "kockásodik" egy gyengébb minőségű videó.
A H.264-nek profiljai és szintjei vannak azért, hogy mindenféle eszközön működhessen. A profilok az alkalmazható kódoló eszközöket határozzák meg (pl. milyen képkocka típusok lehetnek a fájlban), a szintek pedig a legfontosabb paraméterek tartományait (pl. bitráta vagy felbontás). 7 darab profil van, a gagyitelefontól az über profi extra minőségig:
A Hi10P, Hi422P és a Hi444PP profilokkal nem nagyon fogsz találkozni, nem neked készült. Egyébként csak teljes képkockákat tartalmaznak (Intra), tömörítés szempontjából nudli.
Természetesen nem ilyen egyszerű az élet, definiáltak még 3 skálázható profilt is, van Scalable Baseline Profile a mobil eszközökhöz, Scalable High Profile a tároláshoz és sugárzáshoz, Scalable High Intra Profile pedig a profik részére.
Szintekből is kismillió van. Egy szint összesen 3 paramétert határoz meg, maximum macroblock méretet, maximum képkocka méretet (max. hány macroblock-ból áll) és maximum bitrátát. Ezek lefedik a teljes elképzelhető igényskálát, a 64kbps-es mobilvideótól a 960mbps-es szuperminőségű moziig.
Az a lényeg, hogy egy lejátszó eszköznél (pl. Flash player vagy iPod) a profilokkal és szintekkel határozzák meg egyértelműen, hogy hogyan lehet rájuk kódolni. Például a Flash player és az iPod-ok képességei eltérnek, ezért célszerű külön-külön kódolni oda, hiába reklámozták, hogy majd a Flash-re kódolt H.264-et simán betolod az iPod-odba.
A Flash Player az összes szintet támogatja és a Baseline, Main, High és High 10 profilokat. Tehát nagyon megengedő és szinte bármilyen felbontást rá lehet küldeni, a maximum 720mbps (nem kilo, mega!) és 4096x2048. Köszönjük, egy darabig elég lesz.
Határozottabban gyengébb, mint a Flash Player. Bár tud nagyobb felbontást is lejátszani, de 480x320-nál nagyobb kijelzőjű iPod/iPhone még nincs, ezért ennél nagyobba kódolni felesleges. Néhány régebbi iPod nem ismeri még a B kockákat, ezért érdemes azokat kihagyni a játékból, így viszont csak a Baseline profil játszik.
A H.264 a dekóder részét szabványosítja a videónak, ami azt jelenti, hogy a belekódoláshoz bármilyen trükkös eljárást lehet alkalmazni, ami szabványos kimenetet eredményez. Éppen ezért nagyon nem mindegy, hogy az enkódoló szoftverünk milyen.
Van egy csomó fizetős kódoló, de nem érdekesek, mivel rendelkezésünkre áll az ingyenes x264 kodek, ami kiválóan együttműködik a szintén free FFMPEG-gel. Ráadásul az x264 az egyik legjobb enkódoló, szóval FFMPEG és csókolom.
Az x264-nek rettentő sok finombeállítása van, erről készül majd egy külön poszt és ismertetem a szerintem legjobb Flash h264 beállításokat is.
A legtöbb enkódoló ott hibáz nagyot, hogy a legfontosabb index információkat tartalmazó, MOOV-nak hívott részt a fájl végére teszi, anélkül viszont nem kezdődhet el a lejátszás. Ha netről stream-elünk, akkor ez nem pálya, hiszen végig kellene várni a teljes letöltést. A merevlemezen lévő filmeknél sem jó, hiszen mindig a végére kell tekerni, darálós ügy. Szerencsére van rá ingyenes kis eszköz, ami átdobja ezt az elemet a fájl elejére, QT-faststart-nak hívják, keress rá a guglin.
iMect means internet, media and other cool things. We're a small company located in Hungary. There is a big footer on every page where you can discover what we do and what happens with us.
Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis magyar cég vagyunk. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.