9.7. QuickTime-kompatibilis fájlok készítése a MEncoder használatával

9.7.1. Miért akarna bárki is QuickTime-kompatibilis fájlokat készíteni?

Több oka is van annak, hogy kívánatos lehet QuickTime-kompatibilis fájlok készítése.

  • Azt szertnéd, hogy minden gép le tudja játszani a kódolásod bármelyik fő platformon (Windows, Mac OS X, Unices …).

  • A QuickTime több hardveres és szoftveres gyorsítást ki tud használni Mac OS X-en, mint a platform-független lejátszók, mint például az MPlayer vagy a VLC. Ez azt jelenti, hogy a kódolásaid jó eséllyel szebben mennek majd egy régi G4-alapú gépen.

  • A QuickTime 7 támogatja a következő generációs H.264 codec-et, ami sokkal jobb képminőséget biztosít, mint az előző codec generációk (MPEG-2, MPEG-4 …).

9.7.2. QuickTime 7 korlátok

A QuickTime 7 támogatja a H.264 videót és az AAC audiót, de nem támogatja ezek AVI konténer formátumba történő keverését. Mindamellett használhatod a MEncodert a videó és az audió kódolásához, és utána egy külső programmal, mint pl. az mp4creator (az MPEG4IP suite része) újrakevered a videó és audió sávokat egy MP4 konténerbe.

A QuickTime H.264 támogatása korlátolt, így néhány fejlett funkció nem lesz elérhető. Ha olyan funkciókkal kódolod el a videódat, amiket a QuickTime 7 nem támogat, a QuickTime-alapú lejátszók egy csodás fehér képet fognak mutatni neked a várt videó helyett.

  • B-frame-k: A QuickTime 7 maximum 1 B-frame-t támogat, pl. -x264encopts bframes=1. Ez azt jelenti, hogy a b_pyramid-nek és a weight_b-nek nem lesz hatása, mivel 1-nél több bframe kell nekik.

  • Makroblokkok: A QuickTime 7 nem támogatja a 8x8 DCT makroblokkokat. Ez az opció (8x8dct) ki van kapcsolva alapértelmezésben, ezért győződj meg, hogy még véletlenül sem engedélyezed. Ez azt is jelenti, hogy a i8x8-nak nem lesz hatása, mivel ahhoz a 8x8dct szükséges.

  • Méret arány: A QuickTime 7 nem támogatja a SAR (sample aspect ratio) információkat az MPEG-4 fájlokban; feltételezi, hogy a SAR=1. Olvasd el a méretezés részt a tüneti kezeléshez. A QuickTime X-ben már nincs meg ez a korlátozás.

9.7.3. Vágás

Tegyük fel, hogy rip-pelni szeretnéd a "Narnia krónikái" frissen vásárolt másolatát. A DVD-d régió 1-es, ami azt jelenti, hogy NTSC. Az alábbi példa működik PAL-ra is, feltéve, hogy elhagyod a -ofps 24000/1001-et és kicsit más crop és scale méreteket adsz meg.

Miután lefuttattad az mplayer dvd://1-et, kövesd a Mit kezdjünk a telecine-nel és az átlapolással NTSC DVD-ken részben leírtakat, és rájössz, hogy ez egy 24000/1001 fps-es progresszív videó. Ez kicsit leegyszerűsíti a folyamatot, mivel nem kell inverz telecine szűrőt használnod, mint a pullup vagy deinterlacing szűrőt, mint a yadif.

Ezután le kell vágnod a fekete sávokat a videó tetején és alján, ahogy az ebben az előző részben le van írva.

9.7.4. Méretezés

A következő lépés szívszaggató. A QuickTime 7 nem támogatja azon MPEG-4 videókat, melyekben a sample aspect ratio 1-től különböző, így vagy fel kell méretezned (ami rengeteg lemezterületet elvisz) vagy le kell méretezned (ami miatt elveszik a forrás pár részlete) a videót négyzetes pixelekre. Bárhogy is csinálod, ez nagyon nem jó, de nem kerülheted ki, ha QuickTime 7 által lejátszható videót akarsz. A MEncoder végre tudja hajtani a megfelelő fel- illetve leméretezést megfelelően a -vf scale=-10:-1 vagy a -vf scale=-1:-10 megadásával. Ez a videódat a vágott magasságnak megfelelő szélességűre méretezi, 16 legközelebbi többszörösére kerekítve az optimális tömörítéshez. Emlékezz rá, hogy ha vágsz, először vágnod kell, utána méretezni:

-vf crop=720:352:0:62,scale=-10:-1

9.7.5. A/V szinkron

Mivel egy másik konténerbe keversz, mindig ajánlott a harddup opció használata annak biztosítására, hogy a duplikált kockák a kimeneti videóban is duplikálva lesznek. Ezen opció nélkül a MEncoder egyszerűen csak egy jelet tesz a videó folyamba a képkocka duplikálásának helyére és innentől a kliens szoftveren műlik, hogy kétszer mutatja-e az adott kockát. Sajnos ez a "szoft duplikálás" nem éli túl az újrakeverést, így az audió lassan elveszíti a szinkront a videóval.

A végleges szűrőlánc így néz ki:

-vf crop=720:352:0:62,scale=-10:-1,harddup

9.7.6. Bitráta

Mint mindig, a bitráta megválasztása a forrás technikai tulajdonságaitól függ, ahogy az itt le van írva, valamint az egyéni ízlésedttől is. Ebben a filmben sok akció van nagy részletességgel, de a H.264 videó sokkal kisebb bitrátán is jobban néz ki, mint az XviD vagy más MPEG-4 codec-ek. Hosszas kísérletezés után ezen leírás szerzője úgy döntött, hogy 900kbps-en kódolja el ezt a filmet és úgy hiszi, hogy nagyon jól néz ki. Csökkentheted a bitrátát, ha több helyet kell megspórolnod vagy növelheted, ha javítanod kell a minőséget.

9.7.7. Kódolási példa

Készen állsz a videó elkódolására. Mivel érdekel a minőség, természetesen két-lépéses kódolást futtatsz le. Hogy megspóroljunk némi kódolási időt, megadhatod a turbo opciót az első lépésben; ez lecsökkenti a subq-t és a frameref-et 1-re. Némi lemezterület megspórolása érdekében használhatod az ss opciót a videó első pár másodpercének levágásához. (Úgy tűnik, hogy a konkrét film 32 másodpercnyi stáblistát és logót tartalmaz.) A bframes lehet 0 vagy 1. A többi opció a Kódolás az x264 codec-kel részben és a man oldalon van leírva.

mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \
-x264encopts pass=1:turbo:bitrate=900:bframes=1:\
me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
-vf crop=720:352:0:62,scale=-10:-1,harddup \
-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
-ofps 24000/1001

Ha több processzoros géped van, ne hagy ki a kódolás drasztikus módon történő gyorsításának a lehetőségét, melyet az x264 több-processzoros módja nyújt a threads=auto x264encopts-ban történő megadásával a parancssorban.

A második lépés ugyan ez, kivéve, hogy meg kell adni a kimeneti fájlt és a pass=2-őt.

mencoder dvd://1 -o narnia.avi -ss 32 -ovc x264 \
-x264encopts pass=2:turbo:bitrate=900:frameref=5:bframes=1:\
me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
-vf crop=720:352:0:62,scale=-10:-1,harddup \
-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
-ofps 24000/1001

Az eredmény AVI tökéletesen lejátszható az MPlayer-rel, de természetesen a QuickTime nem játsza le, mivel nem támogatja az AVI-ba kevert H.264-et. Ezért a következő lépés a videó MP4 konténerbe történő keverése.

9.7.8. Újrakeverés MP4-ként

Több mód is van az AVI MP4-be történő újrakeverésére. Használhatod az mp4creator-t, ami az MPEG4IP suite része.

Először az AVI-ból különálló audió és videó folyamokat kell készíteni az MPlayerrel.

mplayer narnia.avi -dumpaudio -dumpfile narnia.aac
mplayer narnia.avi -dumpvideo -dumpfile narnia.h264

A fájl nevek fontosak; az mp4creator .aac kiterjesztésű AAC audió folyamot és .h264 kiterjesztésű H.264 videó folyamot vár.

Ezután használd az mp4creator-t egy új MP4 fájl létrehozásához az audió és videó folyamból.

mp4creator -create=narnia.aac narnia.mp4
mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4

A kódolási lépéstől eltérően itt a framerátát decimálisként (23.976) kell megadni, nem törtként (24000/1001).

Ennek a narnia.mp4 fájlnak már bármilyen QuickTime 7 alkalmazással lejátszhatónak kell lennie, mint például a QuickTime Player vagy az iTunes. Ha a videót böngészőben szeretnéd megnézni a QuickTime plugin-nel, utasítanod kell a QuickTime plugin-t, hogy kezdje meg a lejátszást, miközben még tart a letöltés. Az mp4creator bele tudja tenni a videóba az ehhez szükséges utasító sávokat:

mp4creator -hint=1 narnia.mp4
mp4creator -hint=2 narnia.mp4
mp4creator -optimize narnia.mp4

Ellenőrizheted a végső eredményt, hogy meggyőződj róla, hogy az utasító sávok rendben elkészültek:

mp4creator -list narnia.mp4

Látnod kell a sávok listáját: 1 audió, 1 videó és 2 hint sáv.

Track   Type    Info
1       audio   MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz
2       video   H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps
3       hint    Payload mpeg4-generic for track 1
4       hint    Payload H264 for track 2

9.7.9. Metadata tag-ek hozzáadása

Ha tag-eket akarsz hozzáfűzni a videódhoz, amiket az iTunes megjelnít, használhatod az AtomicParsley-t.

AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite

A --metaEnema opció eltávolít minden meglévő metadata-t (mp4creator beszúrja a saját nevét az "encoding tool" tag-be), a --freefree pedig visszaszerzi a törölt metadata által elfoglalt helyet. A --stik opció beállítja a videó típusát (mint pl. Movie vagy TV Show), aminek a segítségével az iTunes csoportosítani tudja a fájlokat. A --overWrite opció felülírja az eredeti fájlt; ennélkül az AtomicParsley egy új, automatikusan elnevezett fájlt hoz létre ugyan abban a könyvtárban és érintetlenül hagyja az eredeti fájlt.