Egy gyakran feltett kérdés: "Hogyan készíthetem el a legjobb minőségű DVD rip-et egy adott méretben? A másik kérdés: "Hogyan készíthetem el a lehető legjobb minőségű DVD rip-et? Nem érdekel a fájl méret, csak a legjobb minőséget akarom."
Az utóbbi kérdés talán kicsit rosszul van megfogalmazva. Hiszen ha nem érdekel a fájl méret, akkor miért nem másolod át az egész MPEG-2 videó stream-et a DVD-ről egy az egyben? Az AVI fájlod 5GB körül fogja végezni, fogd és vidd, de ha a legjobb minőséget akarod és nem érdekel a méret, akkor biztos, hogy ez lesz a legjobb lehetőséged.
Valójában egy DVD MPEG-4-be történő átkódolásának az oka pont az, hogy érdekel a fájl mérete.
Nehéz egy általános receptet adni a jó minőségű DVD rip-ek készítéséhez.
Számos szempontot figyelembe kell venni és meg kell értened ezeket a
részleteket, különben elégedetlen leszel a végeredménnyel. Kicsit körbejárjuk
ezen dolgok közül néhányat és utána példát is adunk. Feltételezzük, hogy a
libavcodec
-et használod a videó
kódolásához, habár az elmélet bármilyen codec-kel használható.
Ha ez túl sok neked, akkor talán jobb, ha a sok nagyszerű frontend valamelyikét használod, amik fel vannak sorolva a kapcsolódó projektek oldalán a MEncoder részben. Így nagyon jó minőségű rip-eket készíthetsz túl sok gondolkodás nélkül, mert ezen eszközök legtöbbje úgy lett megtervezve, hogy jó döntéseket hozzon.
Mielőtt eszedbe jutna bármiféle film átkódolása, meg kell tenned pár előkészületi lépést.
Az első és legfontosabb lépés a kódolás előtt annak megállapítása, hogy miféle anyaggal van egyáltalán dolgod. Ha a forrás anyagod DVD-ről származik vagy sugárzott/kábeles/műholdas TV, a következő két formátum valamelyikében tárolódik: NTSC Észak Amerikában és Japánban, PAL Európában. Fontos tudatosítani, hogy ez csak a televízión történő megjelenítés formátuma és gyakran nincs összhangban a film eredeti formátumával. Ahhoz, hogy megfelelő legyen a kódolás, ismerned kell az eredeti formátumot. Ennek elmulasztása esetén csúnya törési (átlapolás) mellékhatások lesznek a kódolásodban. Mindamellett, hogy csúnya, a mellékhatások rontják a kódolási hatékonyságot is: rosszabb minőség per bitráta arányt kapsz.
Itt van egy lista a forrás anyagok által általában használt típusokról, ebben valószínűleg megtalálod a tiédet és annak jellemzőit:
Szabványos film: Moziban történő vetítéshez rögzítették 24 fps-sel.
PAL videó: PAL videókamerával rögzítették 50 mező per másodperc sebességgel. Egy mező csak a képkocka páros vagy páratlan sorszámú sorait tartalmazza. A televíziót úgy tervezték meg, hogy ilyen arányban frissítsen, az analóg tömörítés egy olcsó formájaként. Az emberi szemnek ezt kompenzálnia kellene, de ha egyszer megérted az átlapolást, meg fogod látni a TV-n és soha többé nem fogod élvezni a TV adást. Két mező még nem alkot egy teljes képkockát, mert 1/50 másodpercnyire vannak egymástól időben és így csak mozgásnál igazodnak össze.
NTSC Videó: NTSC kamerával felvett, 60000/1001 mező per másodperc vagy a színek előtti időben 60 mező per másodperc sebességű film. Egyébként hasonló a PAL-hoz.
Animáció: Általában 24fps-sel rajzolják, de található kevert-framerátás változat is.
Számítógépes grafika (CG): Bármilyen framerátával mehet, de van pár, ami gyakoribb a többinél; 24 és 30 képkocka per másodpercesek a tipikusak NTSC-nél és 25fps PAL-nál.
Régi film: Különböző alacsony frameráták.
A képkockákból álló filmekre progresszívként szoktak hivatkozni, míg az egymástól független mezőkből állóakra vagy átlapoltként vagy videóként - bár ez utóbbi félreérthető.
További bonyolításként néhány film a fenti kettő keveréke.
A legfontosabb különbség, amit észre kell venni a két formátum között, hogy van, amelyik képkocka-alapú míg mások mező alapúak. Bármikor, ha egy filmet televíziós megjelenítésre készítenek elő (beleértve a DVD-t is), átkonvertálják mező-alapú formába. A különböző módszereket, amikkel ez végrehajtható, gyűjtőnéven "pulldown"-nak hívjuk, ennek egyik változata a hírhedt NTSC-s "3:2 telecine". Hacsak nem volt az eredeti anyag is mező-alapú (és megegyező mező rátájú), más formátumbú lesz a filmed, mint az eredeti.
Számos általános típusa van a pulldown-nak:
PAL 2:2 pulldown: Az összes közül a legjobb. Minden képkocka két mező idejéig látszódik, úgy, hogy a páros és páratlan sorokat kinyeri belőlük és váltakozva mutatja őket. Ha az eredeti anyag 24fps-es, ez az eljárás felgyorsítja a filmet 4%-kal.
PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown: Minden 12. kockát három mező hosszan mutat kettő helyett. Ezzel elkerüli a 4%-os gyorsulást, de sokkal nehezebben megfordíthatóvá teszi a folyamatot. Általában musical készítésénél használják, ahol a 4%-os sebességmódosulás komolyan rontaná a zenei jelet.
NTSC 3:2 telecine: A kockák felváltva 3 vagy 2 mezőnyi ideig látszódnak. Ezáltal a mező ráta 2.5-szöröse lesz az eredeti framerátának. Az eredmény nagyon kis mértékben lelassul, 60 mező per másodpercről 59.94 mező per másodpercre, az NTSC mező ráta megtartása miatt.
NTSC 2:2 pulldown: A 30fps-es anyagok NTSC-n történő megjelenítéséhez használják. Szép, csakúgy, mint a 2:2 PAL pulldown.
Vannak még egyéb módszerek az NTSC és a PAL videó közötti konvertáláshoz, de ez a téma meghaladja ezen leírás célkitűzéseit. Ha ilyen filmbe futsz bele és el szeretnéd kódolni, a legjobb, ha keresel egy másolatot az eredeti formátumban. A két formátum közötti konvertálás nagyon romboló hatású és nem lehet teljesen visszafordítani, így a kódolt adatod nagyon megszenvedi, ha már konvertált forrásból készül.
Ha a videó DVD-n van, az egymást követő mezők képkockává csoportosíthatóak, még akkor is, ha nem egyidejű megjelenítésre tervezték őket. A DVD-n és digitális TV-n használt MPEG-2 szabvány lehetőséget nyújt mind az eredeti progresszív kockák elkódolására, mind pedig arra, hogy azon mezők számát, amelyhez egy képkockát meg kell jeleníteni, az adott képkocka fejlécében tárolhassuk. Ha ezt a módszert használják, a filmet gyakran "soft-telecined"-ként jellemzik, mert ez az eljárás csak utasítja a DVD lejátszót a pulldown alkalmazására a film tényleges megváltoztatása helyett. Ez a lehetőség nagyon preferált, mert könnyen visszafordítható (tulajdonképpen kihagyható) a kódoló által és megtartja a maximális minőséget. Bár sok DVD és műsorszóró stúdió nem használ megfelelő kódolási technikát, hanem inkább "hard telecine"-es filmeket alkalmaznak, ahol a mezők tulajdonképpen duplázva vannak az elkódolt MPEG-2-ben.
Az eljárás, ahogy ezeket az eseteket kezelni kell, később kerül leírásra ebben az útmutatóban. Most következzék pár tanács, amik segítségével eldöntheted, hogy milyen anyaggal van dolgod:
NTSC régiók:
Ha az MPlayer azt írja ki, hogy a frameráta megváltozott 24000/1001-re a film nézése közben, és soha nem vált vissza, akkor majdnem biztosan progresszív tartalomról van szó, amit "soft telecine" eljárásnak vetettek alá.
Ha az MPlayer a frameráta oda-vissza váltakozását mutatja 24000/1001 és 30000/1001 között és "hullámzást" látsz ilyenkor, akkor több lehetőség is van. A 24000/1001 fps-es részek majdnem biztosan progresszív tartalmak, "soft telecine"-ltek, de a 30000/1001 fps-es részek lehetnek vagy hard-telecine-lt 24000/1001 fps-esek vagy 60000/1001 mező per másodperces NTSC videók. Kövesd a következő két esetben leírt irányelveket, hogy el tudd dönteni, valójában melyik formátummal van dolgod.
Ha az MPlayer soha nem mutatja a frameráta változást és minden egyes mozgást tartalmazó kocka hullámosnak tűnik, akkor a filmed NTSC videó 60000/1001 mező per másodperc sebességgel.
Ha az MPlayer soha nem mutatja a frameráta változást és minden ötből két kocka hullámosnak tűnik, akkor a filmed "hard telecine"-s 24000/1001fps-es formátumú.
PAL régiók:
Ha sosem látsz hullámzást, akkor a filmed 2:2 pulldown-os.
Ha hullámzást látsz váltakozóan ki-be minden fél másodpercben, akkor a filmed 2:2:2:2:2:2:2:2:2:2:2:3 pulldown-os.
Ha mindig látsz hullámzást a mozgás közben, akkor a filmed PAL videó 50 mező per másodperces sebességgel.
Az MPlayer le tudja lassítani a lejátszást a -speed kapcsolóval. Próbáld meg használni a -speed 0.2-t, hogy nagyon lassan nézhesd a filmet és azonosíthasd a mintákat, ha nem látod meg teljes sebességnél.
Nagyon sokféle minőségben tudod elkódolni a filmedet. A modern videó kódolókkal és egy kis pre-codec tömörítéssel (leméretezés és zajcsökkentés), lehetséges nagyon jó minőség elérése 700 MB-on, egy 90-110 perces szélesvásznú filmnél. Továbbá minden, kivéve a leghosszabb filmeket, elkódolható majdnem tökéletes minőséggel 1400 MB-ba.
Három féle megközelítése van egy videó kódolásának: konstans bitráta (CBR), konstans kvantálás, és többmenetes (ABR vagy átlagos bitráta).
A legtöbb ABR kódolást támogató codec csak a két lépéses kódolást
támogatja, míg néhány másik, mint pl. az x264
és a libavcodec
támogatják
a többmenetest, ami kissé javít a minőségen minden lépésben,
bár ez a javulás nem mérhető és nem is észrevehető a 4. lépés után.
Ezért, ebben a részben a két lépéses és a többmenetes felváltva
értelmezhető.
Ezen módok mindegyikében a libavcodec
a videó képkockákat 16x16 pixel nagyságú macroblock-okra osztja, majd egy
kvantálást végez mindegyik macroblock-on. Minél alacsonyabb a kvantálás, annál
jobb a minőség és nagyobb a bitráta. A libavcodec
által egy adott macroblockhoz a megfelelő kvantáló kiválasztására használt módszer
változó és nagymértékben tuningolható. (Ez egy extrém túl-egyszerűsítése a
tulajdonképpeni folyamatnak, de az alap koncepciót hasznos megérteni.)
Ha előírsz egy konstans bitrátát, a libavcodec
elkódolja a videót, figyelmen kívül hagyva a részleteket amennyire csak
lehetséges és a legkisebb mértékben, amennyire szükséges, hogy a megadott
bitrátánál alacsonyabban maradjon. Ha tényleg nem érdekel a fájl méret,
használhatsz CBR-t és megadhatsz egy bitrátát vagy hagyhatod határozatlanul.
(A gyakorlatban ez egy kellően magas értéket jelent, ami nem szab gátat, pl.
10000Kbit.) Ha nincs különösebb megkötés a bitrátára vonatkozóan, az eredmény
az lesz, hogy a libavcodec
a lehető
legalacsonyabb kvantálást fogja használni minden egyes macroblock-hoz (amint
ez a vqmin-ben meg van adva, ami alapértelmezésként 2). Amint
előírsz egy megfelelően alacsony bitrátát, ami a libavcodec
et
magasabb kvantálás használatára kényszeríti, majdnem biztos, hogy rontod a
videód minőségét.
Ahhoz, hogy ezt elkerüld, valószínűleg downscale-t kell végrehajtani a
videón, az alábbiakban szereplő módszernek megfelelően. Általában igaz,
hogy jobb ha kerülöd a CBR-t, ha számít a minőség.
Konstans kvantálással a libavcodec
ugyan azt a kvantálót használja, amit
a vqscale kapcsolóval megadtál, minden macroblock-nál. Ha
a lehető legjobb minőségű rip-et szeretnéd, szintén a bitráta kihagyásával,
használhatod a vqscale=2 kapcsolót. Ez ugyan azt a bitrátát
és PSNR-t (peak signal-to-noise ratio) szolgáltatja, mint a CBR a
vbitrate=végtelen kapcsolóval és a alapértelmezett 2-es
vqmin-nal.
A konstans kvantálás problémája, hogy a megadott kvantálót alkalmazza, akár szükséges a macroblock-hoz, akár nem. Lehet, hogy használható lenne egy nagyobb kvantálás is a mackroblock-on a vizuális minőség feláldozása nélkül is. Miért pazarolnánk a biteket szükségtelenül alacsony kvantálóra? A CPU-d annyi ciklusa lehet, amennyi időd csak van, de a merevlemezed véges.
Két lépéses kódolásban az első lépés úgy rip-eli a filmet, mintha CBR lenne, de megtartja a tulajdonságok listáját minden egyes képkockánál. Ezeket az adatokat használja fel aztán a második lépésben a használni kívánt kvantálót meghatározó intelligens döntésekben. Gyors akciónál vagy kis részletességű jeleneteknél magasabb kvantálót használ, lassú mozgásnál vagy nagy részletességű jeleneteknél alacsonyabbat.
Ha használod a vqscale=2 kapcsolót, akkor biteket pazarolsz. Ha a vqscale=3 kapcsolót adod meg, akkor nem a legjobb minőségű rip-et kapod. Tegyük fel, hogy egy DVD-t rip-elsz vqscale=3-mal, és az eredmény 1800Kbit. Ha két lépéses kódolást csinálsz vbitrate=1800 kapcsolóval, az kimeneti videó jobb minőségű lesz ugyanolyan bitrátával.
Mivel most meggyőződtél róla, hogy a két lépéses kódolás a megfelelő módszer, az igazi kérdés az, hogy milyen bitrátát ajánlott használni? A válasz az, hogy nincs egyszerű válasz. Valószínűleg olyan bitrátát akarsz választani, ami a legjobb egyensúlyt biztosítja a minőség és a fájl méret között. Ez viszont a forrás videótól függően változik.
Ha a méret nem számít, egy jó kiindulási pont minden nagyon jó minőségű rip-hez egy 2000Kbit körüli érték, plusz-mínusz 200Kbit. A gyors akciókhoz és a nagy részletességű videókhoz vagy ha sas szemed van, akkor választhatsz 2400-at vagy 2600-at. Néhány DVD-nél nem fogsz különbséget felfedezni 1400Kbit-en sem. Jó ötlet az egyes fejezeteket különböző bitrátával megnézni, hogy meglásd a különbséget.
Ha egy bizonyos méretet céloztál be, valahogy ki kell számítanod a bitrátát.
De ezelőtt azt kell megtudnod, hogy mennyi helyet kell fenntartanod az
audió sáv(ok)nak, így először ezeket
kell lerippelned.
A következő egyenlettel tudod kiszámítani a bitrátát:
bitráta = (cél_méret_Mbyteokban - hang_mérete_Mbyteokban) *
1024 * 1024 / hossz_másodpercben * 8 / 1000
Például egy két órás film 702 Mbájtos CD-re való összenyomásához, 60
Mbájtnyi hang sávval, a videó bitrátájának
(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 =
740kbps
-nek kell lennie.
Az MPEG-típusú tömörítés természetéből adódóan számos megszorítás van, amit követned kell a maximális minőség érdekében. Az MPEG 16x16 makroblokknak nevezett négyzetre osztja fel a videót, mindegyik 4 darab 8x8 blokk luma (intenzitás) információt és két fél-felbontású 8x8 chroma (szín) blokkot tartalmaz (egy a vörös-világoskék tengelyen, a másik a kék-sárga tengelyen). Ha a film szélessége és magassága nem 16 többszöröse, a kódoló akkor is elegendő 16x16-os makroblokkot fog használni, hogy lefedje a teljes képet, a maradék hely veszendőbe megy. Így ha a minőség maximalizálása a cél egy fix fájlmérettel, akkor eléggé rossz ötlet nem 16 valamelyik többszörösét használni méretként.
A legtöbb DVD-n van valamekkora fekete sáv a sarkokban. Ha ezeket békén hagyod, akkor több módon is ronthatják a minőséget.
Az MPEG-típusú tömörítés szintén nagyban függ a frekvencia tartományok transzformálásától is, általában a Diszkrét Koszinusz Transzformációt (DCT) használják, ami hasonló a Fourier transzformációhoz. Ez a fajta kódolás hatékony a minták és a sima átmenetek átalakításához, de nehezen bírkózik meg az éles élekkel. Ezek elkódolásához sokkal több bitre van szüksége, különben egy gyűrűsödésnek nevezett mellékhatás jelenik meg.
A frekvencia transzformáció (DCT) külön hajtódik végre minden egyes makroblokkon (tulajdonképpen minden blokkon), így ez a probléma csak akkor jelentkezik, ha az éles él a blokkon belül van. Ha a fekete határ épp olyan pixel határon kezdődik, ami 16 többszöröse, akkor nincs probléma. Habár a fekete határok a DVD-ken ritkán vannak szépen eligazítva, így a gyakorlatban majdnem mindig vágni kell, hogy elkerüld ez a büntetést.
A frekvencia tartományok kódolása mellett az MPEG-típusú tömörítés mozgó vektorokat használ a képkockák közötti változások ábrázolásához. A mozgó vektorok természetesen kevésbé hatékonyak a sarkokból érkező új tartalomnál, mert az még nincs jelen az előző képkockán. Amíg a tartalom a sarkok felé terjed ki, a mozgó vektoroknak nincs problémájuk a tartalom kifelé mozgásával. Habár a fekete határok megjelenésekor lehetnek gondok:
Minden egyes makroblokknál az MPEG-típusú kódolás egy vektort is eltárol, mely azt mondja meg, hogy az előző képkocka melyik részét kell átmásolni ebbe a makroblokkba a következő kocka megbecsléséhez. Csak a megmaradt különbséget kell elkódolni. Ha a makroblokkot kettéosztja a kép széle és a fekete sáv, akkor a kép többi részének mozgó vektorai felül fogják írni a fekete sávot. Ez azt jelenti, hogy sok bitet kell elpazarolni vagy a határ felülírt részének újrafeketítéséhez vagy (inkább) a mozgó vektor nem kerül felhasználásra és így a makroblokk összes változását expliciten el kell kódolni. Mindkét esetben jelentősen romlik a kódolás hatékonysága.
Ez a probléma szintén csak akkor jelentkezik, ha a fekete sáv nem 16 többszörösű pixel-határon van.
Végül tegyük fel, hogy van egy makroblokkunk a kép belsejében és egy objektum mozog be ebbe a blokkba a kép sarka felől. Az MPEG-típusú kódolás nem tudja azt mondani, hogy "másold át azt a részt, ami a kép belsejében van, de a fekete sávot ne". Így a fekete sáv is átmásolódik és így rengeteg bitet kell feláldozni a kép ott lévő részének újrakódolásához.
Ha a kép tovább fut az elkódolt terület sarka felé, az MPEG-nek speciális optimalizációi vannak az kép szélén lévő pixelek ismétlődő másolására, ha a mozgó vektorok a kódolt területen kívülről jönnek. Ez a tulajdonság haszontalanná válik, ha a filmen fekete sávok vannak. Az első két problémával ellentétben itt nem segít a 16 többszörösére való igazítás.
Habár a sávok teljesen feketék és soha nem változnak, mindenképpen egy kis plusz munkát igényelnek, mivel több macroblokk van.
A fenti okok miatt javasolt, hogy teljesen vágd le a fekete sávokat. Továbbá ha a kép sarkainál zaros/torz rész van, ennek a levágása is javít a kódolási hatékonyságon. A keményvonalas videósok, akik az eredeti tartalmat akarják megtartani, amennyire csak lehet, biztos tiltakozni fognak ez ellen, de ha nem tervezed konstant kvantálás használatát, akkor a vágás miatt nyert minőségjavulás jelentősen nagyobb lesz, mint a sarkok levágása miatti információvesztés.
Emlékezz rá az előző fejezetből, hogy a végső képméret, amibe kódolsz, 16 többszöröse ajánlott, hogy legyen (mind szélességben, mind magasságban). Ezt vágással, méretezéssel vagy ezek kombinációjával érheted el.
Vágásnál van egy pár ökölszabály, amit jó ha betartasz, ha nem akarsz kárt tenni a filmben. A normál YUV formátum 4:2:0, a chroma (szín) információkat almintaként tárolja, pl. a chroma csak fele annyiszor kerül mintázásra minden irányban, mint a luma (intenzítás) információk. Tanulmányozd ezt a diagramot, ahol L jelenti a luma mintázási pontokat és C a chroma-kat!
L | L | L | L | L | L | L | L |
C | C | C | C | ||||
L | L | L | L | L | L | L | L |
L | L | L | L | L | L | L | L |
C | C | C | C | ||||
L | L | L | L | L | L | L | L |
Amint láthatod, a kép sorai és oszlopai természetszerűleg párokba rendeződnek. Így a vágási eltolásodnak és a méreteidnek páros számoknak kell lenniük. Ha nem, akkor a chroma nem fog rendes sort alkotni a luma-val. Elméletben lehetséges a vágás páratlan eltolással, de ehhez a chroma újramintázása szükséges, ami egy veszteséges művelet és nem is támogatja a vágó szűrő.
Továbbá az átlapolt videót a következőképpen mintázzák:
Felső mező | Alsó mező | ||||||||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L |
Amint láthatod a minták nem ismétlődnek meg a 4 sor után. Így az átlapolt videóhoz a vágás y-eltolásának és a magasságának 4 többszörösének kell lennie.
A natív DVD felbontás 720x480 NTSC-vel és 720x576 PAL-lal, de van egy arányjelző is, ami megmutatja, hogy teljes képernyős (4:3) vagy széles vásznú (16:9). Sok (ha nem az összes) széles képernyős DVD nem szigorúan 16:9-es, vagy 1.85:1-hez vagy 2.35:1-hez (cinescope). Ez azt jelenti, hogy fekete sávok lesznek a videón, amit le kell vágni.
Az MPlayer rendelkezik egy crop detection szűrővel, ami megállapítja a levágandó téglalapot (-vf cropdetect). Futtasd az MPlayert a -vf cropdetect kapcsolóval és kiírja a vágási beállításokat a határok eltávolításához. A filmet elegendő ideig kell engedned futni ahhoz, hogy legyen teljesen lefedett kép és helyes vágási eredményeket kapj.
Ezután teszteld le a kapott rétékeket az MPlayerrel, felhasználva a cropdetect által kiírt parancssort és állíts a téglalapon, ha szükséges. A téglalap szűrő segít neked a vágási téglalap filmen való, interaktív módon történő elhelyezésében. Emlékezz, és kövesd a fenti oszthatósági ökölszabályokat, nehogy félreigazítsd a chroma plane-eket.
Bizonyos esetekben a méretezés nem kívánatos. A méretezés függőleges irányban nehéz átlapolt videónál és ha meg akarod őrizni az átlapoltságot, tartózkodnod kell a méretezéstől. Ha nem fogsz méretezni, de 16 többszörösét akarod használni képméretként, túl kell vágnod a filmet. Ne vágj kisebbet, mert a fekete szélek nagyon rosszak kódoláskor!
Mivel az MPEG-4 16x16-os macroblock-okat használ, meg kell győződnöd róla, hogy a kódolt videó mindegyik dimenziója 16 többszöröse-e, különben rontod a minőséget, különösen alacsony bitrátánál. Ezt megteheted a levágandó terület szélességének és magasságának 16 legközelebbi többszörösére való kerekítésével. Amint az már szerepelt korábban, vágásnál növelni szeretnéd az y-offszetet a régi és az új magasság közötti különbség felével, így a keletkező videó elmozdul a kép középpontjából. A DVD videó mintavételezési módja miatt meg kell győződnöd róla, hogy az offszet páros szám-e. (Valójában íratlan szabály, hogy soha ne használj páratlan értékeket semmilyen paraméternek se, ha vágsz vagy méretezel egy videót.) Ha nem akarsz pár extra pixelt eldobni, akkor a videó méretezését kell megfontolnod inkább. Ezt nézzük meg a következő példánkban. Tulajdonképpen engedélyezheted a cropdetect szűrőnek, hogy ezt az egészet megcsinálja helyetted, mivel van egy opcionális kerekítési paramétere, ami alapértelmezésként 16.
Szintén figyelned kell a "félfekete" pixelekre a sarkokban. Győződj meg róla, hogy ezeket szintén levágtad, különben olyan biteket pazarolsz el ott, amiket máshoz jobban felhasználhatnál.
Miután mindent elmondtunk és kész, valószínűleg olyan videót kapsz, aminek
a pixeljei nem éppen 1.85:1 vagy 2.35:1 arányúak, de legalább valami hasonló.
Az új képarányt kiszámíthatod kézzel is, de a MEncoder
rendelkezik egy kapcsolóval a libavcodec
hez, amit autoaspect-nek
hívnak, ami megcsinálja ezt neked. Ne méretezd át ezt a videót a pixelek
négyszögletesítéséhez, hacsak nem akarod pazarolni a helyet a merevlemezeden.
A méretezés történhet lejátszáskor, és a lejátszó az AVI-ban tárolt arányt
fogja használni a megfelelő felbontás megállapításához.
Sajnos nem minden lejátszó teszi kötelezővé ezt az auto-méretezési információt,
ezért lehet, hogy mégis átméretezésre kényszerülsz.
Először, ki kell számítanod az elkódolt képarányt:
ARc = (Wc x (ARa / PRdvd )) / Hc
Ahol:
Wc és Hc a vágott videó szélessége és a magassága,
ARa a megjelenített kép aránya, ami általában 4/3 vagy 16/9,
PRdvd a DVD pixel rátája, ami PAL DVD-k esetén 1.25=(720/576) és 1.5=(720/480) NTSC DVD-knél,
Ezután, kiszámíthatod az X és Y felbontást, egy bizonyos Tömörítési
Minőség (Compression Quality, CQ) faktornak megfelelően:
ResY = INT( SQRT(1000 * Bitrate / 25 / ARc / CQ) / 16 ) * 16
és
ResX = INT( ResY * ARc / 16) * 16
Oké, de mi az a CQ? A CQ reprezentálja a kódolás pixelenkénti és képkockánkénti bitszükségletét. Nagy vonalakban minél nagyobb a CQ, annál kisebb a valószínűsége, hogy kódolási hibát fog látni. Bár ha van cél méret a filmedhez (1 vagy 2 CD például), akkor korlátozott a felhasználható bitek száma; ezért szükséges, hogy megfelelő arányt találj a tömörség és a minőség között.
A CQ függ mind a bitrátától mind a film felbontásától. Ha növelni akarod a CQ-t, általában leméretezést kell végezned a filmen, mivel a bitráta a cél méret és a film hosszából számítódik, ami konstans. Egy 0,18 alatti CQ általában nagyon kockás képet eredményez, mert nincs elég bit minden egyes macroblokk információinak eltárolásához (az MPEG4, mint sok más codec, csoportokba gyűjti a pixeleket a kép tömörítéséhez; ha nincs elég bit, láthatóvá válik ezen blokkok széle). Ezért ésszerű a CQ-t a 0,20-0,22-es tartományból választani 1 CD-s rip esetén, és 0,26-0,28-ból a 2 CD-snél.
Kérlek figyelj rá, hogy a CQ csak egy mutató, mely az elkódolt tartalomtól függ, egy 0,18-as CQ-val jól nézhet ki egy Bergman, szemben az olyan filmekkel, mint például a Mátrix, ami sok gyors-mozgású részt tartalmaz. Másrészt nem éri meg növelni a CQ-t 0,30-nál magasabbra, mert csak pazarlni fogod a biteket észrevehető minőségi nyereség nélkül.
Az audió egy sokkal könnyebben megoldható probléma: ha számít a minőség, akkor egyszerűen hagyd úgy, ahogy van. Még az AC3 5.1 stream-ek is leginkább 448Kbit/s-osak és minden bitet megérnek. Csábító lehet az audió jó minőségű Vorbis-ba történő konvertálása, de az, hogy ma nincs egy A/V receiver-ed az AC3 áteresztéshez, nem jelenti azt, hogy holnap sem lesz. Készíts a jövőben is használható DVD rip-eket az AC3 stream megtartásával. Megtarthatod az AC3 stream-et a kódolás közben a videó stream-be történő közvetlen átmásolással. Vagy ki is szedheted az AC3 stream-et, hogy elkeverd valamilyen konténer formátumba, mint pl. a NUT vagy a Matroska.
mplayerforras_fajl.vob
-aid 129 -dumpaudio -dumpfilehang.ac3
a 129-es audió sávot kiszedi a sound.ac3
nevű
fájlba a source_file.vob
-ból (NB: a DVD VOB
fájlok általában különböző audió számozást használnak, ami azt jelenti,
hogy a 129-es VOB audio sáv a 2. audió sáv a fájlban).
De néha tényleg nincs más választásod, mint tovább tömöríteni a hangot így több bit jut a videóra. A legtöbb ember vagy MP3-at vagy Vorbis-t választ az audió tömörítéséhez. Míg az utóbbi nagyon hely-takarékos codec, az MP3-nak jobb a hardveres lejátszók terén a támogatottsága, bár ez a trend változóban van.
Mindenek előtt át kell konvertálnod a DVD hangját WAV fájlba, hogy az audió codec használhassa bemenetként. Például:
mplayerforras_fajl.vob
-ao pcm:file=cel_hang.wav
-vc dummy -aid 1 -vo null
ki fogja szedni a második audió sávot a source_file.vob
fájlból a destination_sound.wav
fájlba.
Kódolás előtt valószínűleg normalizálni akarod a hangot, mivel a DVD audió
sávjait legtöbbször alacsony hangerővel rögzítik.
Használhatod a normalize eszközt, ami megtalálható
a legtöbb disztribúcióban.
Ha Windows-t használsz, egy eszköz, mint pl. a BeSweet
megcsinálja ezt neked.
Vagy Vorbis-ba vagy MP3-ba kódolsz.
Például:
oggenc -q1 cel_hang.wav
elkódolja a destination_sound.wav
-ot az 1-es
kódolási minsőséggel, ami nagyjából megfelel 80Kb/s-nak és annak a minimum
minőségnek, amit legalább használnod kell, ha érdekel a minőség.
Kérlek jegyezd meg, hogy a MEncoder jelenleg nem tud Ogg Vorbis sávokat
belekeverni a kimeneti fájlba, mert csak AVI és MPEG konténereket támogat
kimenetként és mindkettőnél audió/videó lejátszási szinkronizációs problémákat
okozhat néhány lejátszóval, ha az AVI fájl VBR-es audió stream-et tartalmaz,
mint pl. a Vorbis.
De ne aggódj, ez a dokumentáció megmutatja, hogy hogy tudod
ezt megcsinálni egyéb programokkal.
Majdnem minden filmet 24 fps-sel fényképeznek. Mivel az NTSC 30000/1001 fps-es, némi átdolgozás szükséges ezen a 24 fps-es videón, hogy a megfelelő NTSC framerátával menjen. Ez az eljárást 3:2 pulldown-nak hívják, de általában csak telecine néven hivatkoznak rá (mivel a pulldownt gyakran használják a telecine eljárás során), ami egyszerűen leírva lelassítja a filmet 24000/1001 fps-re és megismétel minden negyedik képkockát.
Ez nem speciális feldolgozás, habár minden PAL DVD esetében megcsinálják, ami 25 fps-sel megy. (Műszaki szempontból a PAL-t lehet telecine-elni, ezt 2:2 pulldown-nak hívják, de ez nem terjedt el a gyakorlatban.) A 24 fps-es filmet egyszerűen 25 fps-sel játszák le. Az eredmény az, hogy a film kissé gyorsabban megy, de ha nem vagy egy földönkívüli, valószínűleg nem fogod észrevenni a különbséget. A legtöbb PAL DVD zajszint-javított audiót tartalmaz, így amikor 25 fps-sel játszák le őket, a hangok jól hangzanak, még akkor is, ha az audió sáv (és ebből adódóan az egész film) az NTSC DVD-kénél 4%-kal lassabb futási idővel megy.
Mivel a PAL DVD-ben a videót nem változtatták meg, nem kell aggódnod a frame ráta miatt. A forrás 25 fps-es és a rip-ed is 25 fps-es lesz. De ha egy NTSC DVD filmet rippelsz, fordított telecine-t kell alkalmaznod.
A 24 fps-sel felvett filmeknél az NTSC DVD-n lévő videó vagy telecine-elt 30000/1001 fps-re vagy pedig progresszív 24000/1001 fps-es és szándék szerint a DVD lejátszó végzi a telecine-t lejátszás közben. Másrészről a TV sorozatok általában csak átlapoltak, nem telecine-ltek. Ez azonban nem ökölszabály: néhány TV sorozat átlapolt (mint a Buffy a Vámpír gyilkos) míg másik a progresszív és az átlapolt keverékei (mint pl. az Angyal vagy a 24).
Javasoljuk, hogy olvasd el a mit kezdjünk a telecine-nel és az átlapolással NTSC DVD-ken részt, hogy kezelni tudd a különböző lehetőségeket.
Bár ha legtöbbször csak filmeket rippelsz, valószínűleg vagy 24 fps-es progresszív vagy telecine-lt videóval lesz dolgod, ezekben az esetekben használhatod a pullup szűrőt a -vf pullup,softskip kapcsolóval.
Ha az általad elkódolni kívánt film átlapolt (NTSC videó vagy PAL videó), el kell döntened, hogy akarsz-e deinterlacing-et vagy sem. A deinterlacing használhatóvá teszi a filmed progresszív scan-es megjelenítőkön, mint pl. a számítógép monitorok vagy a projektorok, van ára is: az 50 vagy 60000/1001-es mezőráta feleződik 25 vagy 30000/1001 képkocka per másodpercre és így a filmedben tárolt információk durván fele elveszik a jelentős mozgást tartalmazó részekben.
Így hát ha archiválási okokból jó minőség kell, akkor kerüld el a deinterlace-t. Bármikor deinterlace-lheted a filmet lejátszás közben is, ha progresszív scan-es megjelenítőd van, valamint a jövő lejátszói képesek lesznek teljes mezőrátával deinterlacing-elni, 50 vagy 60000/1001 teljes képkocka per másodpercre interpolálni az átlapolt videóból.
Fokozott figyelemmel kell eljárni, ha átlapolt videóval dolgozol:
A vágási magasság és y-offszet 4 többszöröse kell, hogy legyen.
Bármilyen függőleges átméretezést átlapolt módban kell elvégezni.
Az utófeldolgozó és a zajcsökkentő szűrők nem az elvártnak megfelelően működnek, ha nem gondoskodsz róla, hogy egyszerre csak egy mezővel dolgozzanak, különben a nem megfelelő használat miatt sérülhet a videó.
Mindezt észben tartva, itt az első példánk:
mencoder capture.avi
-mc 0 -oac lavc -ovc lavc -lavcopts \
vcodec=mpeg2video:vbitrate=6000:ilmv:ildct:acodec=mp2:abitrate=224
Figyelj az ilmv és az ildct kapcsolókra.
Általában olyan kevés szűrést szeretnél, amennyit csak lehet, hogy az eredeti DVD forráshoz hű maradj. A vágás gyakran elkerülhetetlen (amint azt fentebb leírtuk), de ne méretezd a videót. Noha a kicsinyítés néha előnyben részesül a magas kvantálóknál, mi szeretnénk elkerülni mindkét dolgot: emlékezz, hogy mit határoztunk el kezdetben a bitek minőségért történő feláldozásáról.
Szintén hagyd békén a gamma, kontraszt, fényerő, stb. beállításokat. Ami jól néz ki a monitorodon nem biztos, hogy másnál is szép lesz. Ezeket a beállításokat lejátszáskor kell elvégezni.
Az egyetlen dolog, amit szeretnél, a videó nagyon könnyű zajszűrőn történő áteresztése, mint pl. -vf hqdn3d=2:1:2. Ismételten, ezen bitek jobb felhasználásáról van szó: miért vesztegessük el őket a zaj kódolására, ha ezt a zajt lejátszás közben is hozzá tudod adni? A hqdn3d paramétereinek növelésével még jobb tömörítettséget érhetsz el, de ha túl magasra állítod az értékeket, rontod a kép láthatóságát. A fent javasolt értékek (2:1:2) eléggé konzervatívak; kísérletezz szabadon nagyobb értékekkel és ellenőrizd az eredményeket magad.
Ideális esetben szeretnéd, ha csak azt kellene mondani a kódolónak, hogy váltson "jobb minőségre" és kész. Ez szép is lenne, de sajnos nehezen megvalósítható, mert a különböző kódolási opciók különböző minőséget eredményeznek, mely függ a forrás anyagtól is. Ez azért van, mert a tömörítés függ a szóbanforgó videó vizuális tulajdonságaitól. Például az anime és az élő felvétel két nagyon különböző anyag és így különböző opciókat követelnek meg az optimális kódoláshoz. A jó hír, hogy néhány opciót soha sem lehet elhagyni, mint például az mbd=2, trell és v4mv. Olvass tovább a gyakori kódolási opciók leírásához.
Állítható opciók:
vmax_b_frames: 1 vagy 2 a jó, a filmtől függően. Figyelj rá, hogy a libavcodec még nem támogatja a zárt GOP-ot (a cgop opció még nem igazán működik), így a DivX5 nem fog tudni visszakódolni semmit sem, ami B-kockákkal lett elkódolva.
vb_strategy=1: segít a gyors mozgású jeleneteknél. vmax_b_frames >= 2 szükséges. Néhány videónál a vmax_b_frames rontja a minőséget, de a vmax_b_frames=2 a vb_strategy=1-gyel együtt segít.
dia: mozgás kereső tartomány. A nagyobb a jobb és a lassabb. Negatív értékek teljesen más skálát adnak. A jó értékek -1 a gyors kódoláshoz vagy 2-4 a lassabbhoz.
predia: mozgás kereső előre-lépés. Nem olyan fontos, mint a dia. Jó értékek 1-től (alapértelmezett) 4-ig. preme=2 kell hozzá, hogy igazán hasznos legyen.
cmp, subcmp, precmp: Összehasonlító funkciók a mozgás becsléshez. Kísérletezz a 0 (alapértelmezett), 2 (hadamard), 3 (dct) és 6 (ráta torzítás) értékekkel! 0 a leggyorsabb és és elegendő a precmp-hez. A cmp-hez és subcmp-hez 2 jó, ha anime és 3 ha élő akció. A 6 vagy jobb vagy nem, de mindenképpen lassabb.
last_pred: Az előző képkockából megjósolandó mozgások száma. 1-3 vagy hasonló segít egy kis sebességcsökkenés árán. A magasabb értékek lassúak, de igazi hasznuk nincs.
cbp, mv0: A makroblokkok kiválasztását irányítja. Egy kis sebességcsökkenés egy kis minőségjavulásért.
qprd: adaptív kvantálás, mely a makroblokk komplexitásán alapul. Vagy segít vagy nem, a videó és egyéb opciók függvényében. Ennek lehetnek mellékhatásai, hacsak nem állítod be a vqmax-ot valami ésszerűen alacsony értékre (a 6 jó, talán minimum 4); a vqmin=1 is segíthet.
qns: nagyon lassú, különösen ha a qprd-vel kombinálod. Ezen opció hatására a kódoló minimalizálja a zajt tömörítési mellékhatásokkal, ahelyett, hogy a szigorúan a forráshoz próbálna igazodni. Ne használd ezt, csak ha már minden mást kipróbáltál és az eredmény még mindig nem elég jó.
vqcomp: Rátaírányítás beállítása. Hogy milyen értékek jók, az a filmtől függ. Nyugodtan elhagyhatod ezt, ha akarod. A vqcomp csökkentése több bitet engedélyez az alacsony komplexitású részeknél, a növelése a nagy komplexitású részekre teszi őket (alapértelmezés: 0.5, tartomány: 0-1, javasolt tartomány: 0.5-0.7).
vlelim, vcelim: Beállítja a szimpla együttható eliminációs küszöböt a fényerősséghez és a chroma plane-khez. Ezt elkülönítve kódolja le minden MPEG-szerű algorítmus. Az ötlet emögött az opció mögött az, hogy egy jó heurisztikát használnak annak megállapítására, hogy a blokkban történt változás kisebb-e, mint az általad megadott küszöb és ebben az esetben egyszerűen "változtatás nélkül" kerül elkódolásra a blokk. Ez biteket ment meg és talán gyorsít is a kódoláson. A vlelim=-4 és vcelim=9 látszólag jók az élő filmekhez, de nem segítenek az anime-nál; ha animációt kódolsz, inkább hagyd őket változatlanul.
qpel: Negyed pixel mozgás becslés. Az MPEG-4 fél pixeles precíziót használ a mozgáskereséshez alapértelmezésként, ezért ez az opció plusz terhelést hoz, mivel több információ tárolódik az elkódolt fájlban. A tömörítési nyereség/veszteség a filmtől függ, de általában nem hatékony anime-oknál. A qpel mindig jelentős dekódolási CPU idő igénnyel jár (+20% a gyakorlatban).
psnr: nem érinti az aktuális kódolást, de készít egy log fájlt, mely megadja minden képkocka típusát/méretét/minőségét és a végére odaírja a PSNR-t (Peak Signal to Noise Ratio, Zajarány csúcspontja).
Opciók, melyekkel nem javasolt játszadozni:
vme: Az alapértelmezett a legjobb.
lumi_mask, dark_mask: Pszichovizuális adaptív kvantálás. Ne játszadozz ezekkel az opciókkal, ha számít a minőség. Az ésszerű értékek jók lehetnek a te esetedben, de vigyázz, ez nagyon szubjektív.
scplx_mask: Megpróbálja megelőzni a blokkos mellékhatásokat, de az utófeldolgozás jobb.
Nos hát, éppen most vetted meg a Harry Potter és a titkok kamrája gyönyörű új példányát (widescreen edition természetesen) és le akarod rip-pelni ezt a DVD-t, hogy hozzáadhasd a PC-s házimozidhoz. Ez egy régió 1-es DVD, így NTSC-s. Az alábbi példa egyszerűen alkalmazható PAL-ra is, a -ofps 24000/1001 kapcsoló elhagyásával (mert a kimeneti frameráta ugyan annyi, mint a bemeneti) és természetesen a vágás méretei is mások lesznek.
Miután lefuttattad az mplayer dvd://1 parancsot, kövesd a mit kezdjünk a telecine-nel és az átlapolással NTSC DVD-ken részben leírt utasításokat és fedezd fel, hogy ez egy 24000/1001 fps-es progresszív videó, ami azt jelenti, hogy nem kell inverz telecine szűrőt használnod, mint pl. a pullup vagy a filmdint.
Következőnek megállapítjuk a megfelelő vágási téglalapot, így használjuk a cropdetect szűrőt:
mplayer dvd://1 -vf cropdetect
Győződj meg róla, hogy egy teljesen kitöltött képkockán állsz (pl. egy világos jelenet), ezt fogod látni az MPlayer konzol kimenetén:
crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)
Ezután lejátszuk a filmet ezzel a szűrővel a számok ellenérzéséhez:
mplayer dvd://1 -vf crop=720:362:0:58
És azt látjuk, hogy tökéletesen megfelel. Majd meggyőződünk, hogy a szélesség és a magasság osztható 16-tal. A szélesség jó, de a magasság nem. Mivel nem buktunk hetedik osztályban matekból, tudjuk, hogy a 16 legközelebbi többszöröse, ami kisebb, mint 362, a 352.
Így egyszerűen használhatjuk a crop=720:352:0:58 opciót, de jó lenne egy kicsit lecsípni a telejéből és az aljából, hogy középen maradjunk. Összehúzzuk a magasságot 10 pixellel, de nem akarjuk növelni az y-offszetet 5 pixellel, mert az páratlan szám és rontja a minőséget. Helyette inkább 4 pixellel növeljük az y-offszetet:
mplayer dvd://1 -vf crop=720:352:0:62
A másik ok, hogy lecsípjünk pixeleket mid fent, mint lent, hogy biztosak legyünk, hogy a fél-fekete pixeleket is levágtuk, amennyiben vannak. Figyelj rá, hogy ha a videó telecine-lt, a pullup szűrő (vagy bármelyik inverz telecine szűrő, amit használsz) a vágás előtt szerepeljen a szűrők láncában. Ha átlapolt, végezz deinterlace-t a vágás előtt. (Ha úgy döntesz, hogy megtartod az átlapolt videót, győződj meg róla, hogy a függőleges vágási offszet 4 többszöröse.)
Ha érdekel annak a 10 pixelnek az elvesztése, inkább a méretek 16 legközelebbi többszörösére való kicsinyítése érdekelhet. A szűrő lánc ez esetben:
-vf crop=720:362:0:58,scale=720:352
A videó ilyen módon történő lekicsinyítése azt jelenti, hogy néhány apró részlet elveszik, de ez valószínűleg nem lesz észrevehető. A nagyítás rosszabb minőséget eredményez (hacsak nem növeled a bitrátát). A vágás az összes ilyen pixeltől megszabadít. Ez egy üzlet, amit minden esetben meg kell fontolnod. például ha a DVD videó televízióra készült, ajánlott elkerülni a függőleges méretezést, mert a sor mintázás az eredeti felvételhez igazodik.
Megtekintés után azt látjuk, hogy a filmünk eléggé eseménydús és nagyon részletes, így 2400Kbit-et választunk bitrátának.
Most már készen vagyunk a két lépéses kódoláshoz. Első lépés:
mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ -o Harry_Potter_2.avi
A második lépés ugyan ez, csak megadjuk a vpass=2-t:
mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ -o Harry_Potter_2.avi
A v4mv:mbd=2:trell kapcsolók nagyban javítják a minőséget
a kódolási idő rovására. Nem ajánlott ezen opciók elhagyása, ha a fő cél a
jó minőség. A cmp=3:subcmp=3:mbcmp=3 opciók egy
összehasonlító függvényt választanak ki, ami jobb minőséget biztosít, mint
az alapértelmezettek. Ezzel a paraméterrel is kísérletezhetsz (lásd a man
oldalt a lehetséges értékekért), mivel a különböző függvények nagyban
befolyásolják a minőséget a forrás anyagtól függően. Például ha úgy találod,
hogy a libavcodec
túl
kockás eredményt ad, megpróbálhatod a kísérleti NSSE összehasonlító
függvény használatát a *cmp=10 opcióval.
Ennél a filmnél a keletkező AVI 138 perc hosszú lesz és közel 3 GB-os. És mivel azt mondtuk, hogy a fájl méret nem számít, ez egy tökéletesen megfelelő méret. De ha kisebbet szeretnél, próbálj ki egy alacsonyabb bitrátát. A bitráták növelése csökkenő mértékű javulást hoz, így pl. tisztán kivehető a különbség az 1800Kbit és a 2000Kbit között, szinte észrevehetetlen 2000Kbit felett. Nyugodtan kísérletezz, amíg csak kedved tartja.
Mivel a forrás videót áteresztettük a zajeltávolító szűrőn, talán egy picit vissza akarsz tenni a lejátszás közben. Ez, az spp utófeldolgozó szűrővel drasztikusan javítja a felfogható minőséget és segít a segít a videó kockásodásának megszüntetésében. Az MPlayer autoq opciójával szabályozhatod az spp szűrő utófeldolgozásának mértékét a CPU-tól függően. Emellett valószínűleg gamma és/vagy szín korrekciót is szeretnél csinálni, hogy jobban illeszkedjen a monitorodhoz. Például:
mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
Most, hogy elkódoltad a videódat, valószínűleg szeretnéd elkeverni egy vagy több audió sávval együtt egy film konténerbe, mint pl. az AVI, Matroska vagy a NUT. A MEncoder jelenleg csak MPEG és AVI konténer formátumokba tud audió és videó kimenetet készíteni. Például:
mencoder -oac copy -ovc copy -okimenet_film.avi
-audiofilebemenet_audio.mp2
bemenet_video.avi
Ez a bemenet_video.avi
videó fájlból
és a bemenet_audio.mp2
audió fájlból
elkészíti a kimenet_film.avi
fájlt.
Ez a parancs működik MPEG-1 layer I, II és III (ismertebb nevén
MP3) audióval, WAV és egy pár más audió formátummal.
A MEncoderben kísérleti jelleggel van
libavformat
támogatás, ami
az FFmpeg projektből egy függvénykönyvtár, ami számos konténer keverését és
demux-álását támogatja.
Például:
mencoder -oac copy -ovc copy -okimenet_film.asf
-audiofilebemenet_audio.mp2
bemenet_video.avi
-of lavf -lavfopts format=asf
Ez ugyan azt csinálja, mint az előbbi példa, de a kimeneti
konténer ASF lesz.
Kérlek figyelj, hogy ez a támogatás még nagyon kísérleti (de minden
nap egyre jobb lesz) és csak akkor működik, ha az
MPlayert a
libavformat
támogatás
bekapcsolásával fordítottad (ami azt jelenti, hogy az előre
csomagolt binárisok a legtöbb esetben nem fognak működni).
Habár a legszélesebb körben támogatott konténer formátum az MPEG-1 után, az AVI-nak is van néhány nagy hátránya. Talán a legnyilvánvalóbb a túlterhelés. Az AVi fájl minden egyes chunk-ja 24 bájtot pazarol a fejlécekre és az index-re. Ez egy kicsit több mint 5 MB óránként vagy 1-2,5% plusz egy 700 MB-os filmnél. Ez nem tűnik soknak, de eldöntheti, hogy 700 kbit/sec-os videót tudsz csak használni vagy 714 kbit/sec-osat, ahol minden bit a minőségre megy.
Ezen hatalmas hátrány mellett az AVI-nak a következő fő korlátai vannak:
Csak fix-fps-ű tartalmat tud tárolni. Ez különleges korlátozás, ha az eredeti anyag, amit el akarsz kódolni, kevert tartalom, például NTSC videó és film anyag keveréke. Már vannak olyan hack-ek, amivel kevert framerátás tartalmat lehetne AVI-ba tenni, de ötszörös vagy még nagyobb mértékben növelik a (már amúgy is nagy) túlterhelést, így nem praktikusak.
Az AVI fájlokban az audiónak vagy konstans-bitrátásnak (CBR) vagy konstans-képkocka méretűnek (pl. minden képkocka ugyan annyi számú mintát dekódol) kell lennie. Sajnos a leghatékonyabb codec, a Vorbis, egyik kívánalomnak sem felel meg. Ezért ha AVI-ban tárolod a filmjeidet, egy kevésbé hatékony codec-et kell használnod, mint pl. az MP3 vagy az AC3.
A fentiek miatt a MEncoder jelenleg nem támogatja a változó-fps-es kimenetet vagy a Vorbis kódolást. Így ezeket nem korlátozásként fogod fel, ha a MEncoder az egyetlen eszköz, mellyel kódolsz. Azonban lehetséges a MEncodert csak a videó kódolására használni és valamilyen egyéb eszközzel elkódolni az audiót majd összekeverni őket egy konténer formátumba.
A Matroska szabad, nyílt szabványú konténer formátum, melynek célja, hogy rengeteg továbbfejlesztett képességet biztosítson, amit a régebbi konténerek, mint pl. az AVI nem tud kezelni. például a Matroska támogatja a változó bitrátás audió tartalmat (VBR), változó framerátát (VFR), fejezeteket, fájl csatolásokat, hiba kereső kódot (EDC) és a modern A/V codec-eket, mint az "Advanced Audio Coding" (AAC), "Vorbis" vagy "MPEG-4 AVC" (H.264), szemben az AVI-val, amelyik egyiket sem.
A Matroska fájlok készítéséhez szükséges eszközöket együtt mkvtoolnix-nek hívják és elérhetőek a legtöbb Unix platformon, akárcsak Windowson. Mivel a Matroska nyílt szabványú, találhatsz más eszközöket is, amik jobban megfelelnek neked, de mivel az mkvtoolnix a leggyakrabban használt, és maga a Matroska csapat támogatja, csak ennek a használatát mutatjuk be.
Talán a legegyszerűbb módszer, hogy elindulj a Matroska-val, az MMG használata, az mkvtoolnix-szel szállított grafiksu frontend és kövesd a mkvmerge GUI (mmg) leírást
A parancssor segítségével is összekverheted az audió és videó fájlokat:
mkvmerge -okimenet.mkv
bemenet_video.avi
bemenet_audio1.mp3
bemenet_audio2.ac3
Ez a bemenet_video.avi
fájlt és a
két audió fájlt, a bemenet_audio1.mp3
-at
és a bemenet_audio2.ac3
-at összefűzi a
kimenet.mkv
Matroska fájlba.
A Matroska, mint ahogy azt már megemlítettem, ennél sokkal többre
képes, mint pl. több audió sáv használatára (beleértve az audió/videó
szinkronizáció finom-hangolását), fejezetek, feliratok, vágás, stb...
Kérlek olvasd el ezen alkalmazások dokumentációit a részletekért.