9.7. QuickTime-kompatibilis fájlok készítése a MEncoder használatával
Vissza | 9. fejezet - Kódolás a MEncoderrel | Előre

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

Vissza | Fel | Előre
9.6. Kódolás a `Video For Windows` codec családdal | Főoldal | 9.8. A MEncoder használata VCD/SVCD/DVD-kompatibilis fájlok készítéséhez.