Objavilo sa tu už viac návodov na kompresiu videa, najmä pokiaľ ide o Counter-Strike video. Boli to kvalitné ale aj tie menej kvalitné články, aspoň čo sa týka výsledného efektu. Rozhodol som sa napísať článok, v ktorom sa pokúsim v krátkosti popísať celkový postup renderingu a komprimácie, aby ste dosiahli čo najvyššie kvality.
Najskôr si spomeňme jeden fakt…. „Forma vyplýva z funkcie“. Na základe tejto frázy si musíme položiť otázku o aké video ide. Aké su jeho očakávania a čo chceme dosiahnuť. Novodobý fenomén na našej scéne sú herné videa v HD kvalite (1280x720, daj bože, že ešte nikto neprišiel s videom o rozlišení napríklad 1950x1080). V dnešnej dobe rýchlich internetov už nieje pre ľudí stiahnúť si video, ktoré má veľkosť dajme tomu 1 GB problém. Škoda však, že je tu na scéne dosť moviemakerov, ktorí spravia video o rozlišení 800x600@30, má 15 minút a 1 GB a kvalita žiaľ bohu taká, aká sa dá dosiahnuť v kľude aj s 500 MB. Samozrejme pokiaľ hovoríme o kompresií pomocou kodeku XviD. Nové kompresné technológie (x264....) dokážu pri kvalitnej technickej zručnosti zázraky. Preto som sa rozhodol napísať článok v ktorom sa pokúsim vám popísať celkový postup postprodukčnej a záverečnej práce s vašim filmovým projektom.
Trošku teórie:
Tí, ktorí ste videli video
Storm the Front tak ste si mohli všimnúť, že som dosiahol vysokú kvalitu obrazu pri vysokom rozlišení a pri pomerne veľkej dĺžke.
Rozlíšenie : 1280x720
FPS : 30
Bitrate : 5000
Dĺžka : 22 minút
Veľkosť : cca 750 MB
Kodek : avi + xvid
Na porovnanie vám dám iné noname video :
Rozlíšenie: 800x450
FPS : 30
Bitrate : 4000
Dĺžka :18 minút
Veľko ť :1,2 GB
Kodek : avi + xvid
(Nie GHoST, nieje to tvoje video, aj keď vlastne je to totožné s tvojim )
Čím je spôsobený tento rozdieľ? Dôvodov môže byť vždy viac... Zle zvolený kodek, zle zadefinované hodnoty rôznych parametrov... atď.. atď...
Hodnotu bitrate som úmyseľne zvýraznil. Video Storm the front napriek svojmu dátovému toku malo porovnateľne menej MB ako video s nižším bitrate, s menšiou dĺžkou a aj nižším rozlišením. Každý kto pracuje s videom si musí uvedomiť, že hlavným faktorom veľkosti videa nieje nastavený bitrate, ale omnoho viac súčastí, ktoré pri dobrom nastavení spolu tvoria kvalitný celok. Stále beriem do úvahy, že vašim hlavným cieľom je dosiahnuť vysokú kvalitu obrazu s čo najnižšiou veľkosťou a že celá debata sa točí okolo kodeku XVID.
Rozdrobím trošku Stormácke video. Rozdelím ho na časti z ktorých sa skladá a popíšem trošku prípravu videa.
Zhruba 9 minúť z celkovej dĺžky sú rozhovory s ľudmi, alebo hráčmi.
Cca 9 minút sú zábery priamo z Counter-Strike.
A ostatok sú titulky a úvod.
Prečo o tom píšem? Teraz si treba opäť uvedomiť niekoľko vecí. Xvid pracuje tak, že zábery ktoré sú relativne statické alebo viacmenej jednofarebné spotrebujú menší bitrate ako scény, ktoré sú až príliš dynamické a majú veľmi veľa pohybových vektorov. Tým pádom nastáva situácia, že tieto zábery zaberajú minimálnu veľkosť celého videa. Titulky sú ďalšia vec, ktorá spotrebúva viacmenej málo bitrate keďže pozadie je v podstate takmer celú dĺžku tituliek statické čierne a text sa skladá z jednej farby. To čo sme v týchto častiach ušetrili, môže byť doplnené do scén, ktoré sú viac dynamické.
Jeden deň som venoval testovaniu vplyvu farebnej sýtosti na celkovú veľkosť. Pri znížení hodnoty "Saturation" som dosiahol viacmenej príjemné farebné zladenie, ale aj menšiu veľkosť. Znížením hodnoty tohto parametra som zmenšil farebnú hĺbku záberov. Saturation nájdete v Sony Vegas medzi Video FX - Color Correction (Secondari).
Video kontajnérov je viac, napríklad0 avi, wmv, mp4, mov a iné.... Medzi hernými videami tu u nás prevláda formát avi a wmv. Sem tam sa objaví aj to mp4 video. Niektorí si navykli na používanie WMV najmä pre jeho jednoduchosť pri nastavovaní. A však výsledný efekt zďaleka nebýva poväčšine taký, aký by dosiahli napríklad pri AVI + XviD, DivX.....
(DivX je menej používaný z toho dôvodu, že nieje voľne šíritelný. XviD je free.) Všetko čo píšem, píšem na základe dlhodobej praxe a skúseností, takže dúfam, že sa vám výsledný efekt bude páčiť.
Napadá ma toho ešte veľa ale prejdime radšej ku záverečnej práci s projektom.Existuje mnoho programov pre strih a úpravu videa. Medzi nami moviemakermi je rozšírený hlavne Sony Vegas. Adobe Premiere Pro alebo Combustion používa minimum ľudí.
Budeme sa teda venovať vyslovene Sony Vegasu.
Sony Vegas - Finiš (Render)
Konečne..... Po dlhodobej práci nastáva konečne obdobie plné matematických výpočtov, prepočtov a iných osviežujúcich činností. Ďakujme, že to všetko za nás robí počítač.
Nastáva situácia kedy musíte uvoľniť všetky diskové kapacity. Pokiaľ chcete dosiahnuť čo najvyšší efekt, bude určite najvhodnejším riešením celý projekt uložiť do avi bez akejkoľvek kompresie. Prípadne ak vaše kapacity niesu dostačujúce, môžete použiť huffyuv bezstratový kodek o ktorom som už raz písal. Čo sa zvuku týka, tak ten vypnite. Vypnite políčko Include Audio. Audio skompresujeme samostatne a neskôr tieto dva celky ( Audio a Video ) spojíme skrz VirtualDub Mod.
Samozrejme, že rozlíšenie, Frame rate a od toho odvodené interleave every ( seconds ) sú už vacou vecou. Ja osobne preferujem také natavenia ako sú na obrázku. Tak ale nesmiete zabúdať, že rozlíšenie nastavujete v závislosti na tom, ako ste nastavili rozlíšenie pri snímkovaní fragov.
Tí, ktorí nemáte dostatočné kapacity na disku a nevystačia vám ani v prípade, že použijete huffyuv kodek, tak môžete teda kompresovať už priamo z vegasu do XviD. Som si ale istý, že strácate nejaké to % na kvalite. Toto je faktor, ktorý už dosť závisí aj od výkonu vašeho PC. Podrobné nastavenie XviDu popisujem nižšie v článku. Takže tí, ktorí už priamo kompresujete sa preskoliečkujte priamo na konfiguráciu kodeku, dodržiavajte tie isté postupy aké platia aj pri práci s kodekom vo VirtualDube.
Po tom, ako sa vám skončí render otvorte opäť okno Render As a ako výstupný formát nastavte mp3. V konfigurácií Audia nastavte Audio Formát... najlepšie bude na mpeg3 layer. Attributes nastavte 192 kBit/s, 44,100 Hz, Stereo. Kompresujte tak, aby sa skompresoval presne ten istý odsek ako video keď ste ho renderovali. Ak to nepsravíte správne, tak pri spojení audia s videom skrz VirtualDub Mod budete mat celý zvuk posunutý a nebude synchrónny s videom.
Tento audio súbor si uložte tam, kde máte uložený aj váš video súbor. Budete ho neskôr potrebovať :P ale zatiaľ nieje vôbec potrebný.
Teraz budeme kompresovať samotné audio.
Vaše vyrenderované video otvoríte vo VirtualDube.Tu môžete stiahnúť.
Teraz ideme nastavovať samotnú kompresiu videa. Po načítaní videa si hore na lište prejdite do záložky video a z nej vyberte compression. Z ponuky vyberte XviD.
Po tom ako vyberiete XviD prejdite do okienka Configure. Prikladám vám obrázok, na ktorom je zobrazené kompletné nastavenie XviDu...
Čo sa týka položky enconding type, tak samozrejme, že tu budeme používať 1st pass a 2nd pass. Na single pass radšej zabudnime.
Položka Maximum I-frame interval - nastavujete na základe hodnoty FPS
vášho videa. Ak máte fps 30 ponecháte hodnotu 300, ak máte fps 25, nastavíte hodnotu 250.
Vysvetlenia ku jednotlivým zapnutým funkciam :
(Vystrihnuté z článku kde som podrobne popisoval funkcie XviDu)
Veľká časť tuna v spodnej časti článku je len teória ohľadom funkcií XviDu. Tú možete v kľude preskočiť pokial vás to nezaujíma.
Quartelpel
(Quarter Pixel alebo tiež len Qpel)
MPEG4 štandartne používa pre vyhladávanie pohybu polpixelovú presnosť aj keď štandart počíta s režimom, kedy je enkondérom dovolené použiť štvrťpixelovú presnosť. Táto možnosť väčšinou produkuje ostrejši obraz, ale má značný dopad na dátový tok. Pokiaľ je dátový tok pevný, nemusí to znamenať zvýšenie kvality. Lepšie je skúsiť kódovať s použitím quarterpel aj bez neho a až potom si vybrať.
Quarter Pixel by mal ďalej zlepšovať odhad pohybových vektorov a má opäť značný dopad na zníženie rýchlosti procesu kódovania (údajne až 25% spomalenie). Je vhodný skôr pre filmy s nízkym rozlišením a výsledkom je ostrejší obraz bez kostičiek aj keď v niektorých prípadoch má za následok viac šumu. Podmienkov jeho použitia je dostatočný dátový tok v hodnotách vyšších ako 900kb/s, niektoré zdroje uvádzajú radšej 1200kb/s. Pokiaľ si toľko nemôžete dovoliť, pretože proste potrebujete strčiť film na jedno CD, radšej ho nepoužívajte, pretože by ste kvalitu skôr znížili.
GMC
(Global Motion Compensation)
Príjme XviD, aby generoval "sprite" (trpazličie) snímky, ktoré popisujú najlepšíe nastavenie panorama/zväčšenie/otočenie obrázku. Rozhodnutie o použití tejto voľby jednoznačne závisí na druhu video materiálu.
GMC pomáha, pokiaľ sa objekty na zázname približujú, vzdiaľujú alebo inak pohybujú bez toho, že by sa nejako menily. Príkladom takéhoto videa sú napríklad tie "Real Life" filmy točené z ruky jako je Blair Witch aleboamatérske videozáznamy, keď kameraman chaoticky trasie a nepretržite zoomuje, čo to dá..... Pokiaľ sa používa GMC, doporučuje sa nastaviť VHQ na hodnotu 4. Za GMC opäť zaplatíte nejakým procesorovým časom naviac.
B-VOPs (Quantizer ratio)
B-snímky majú veľmi úzky vzťah ku svojím referenčným snímkom a ich kvantizér sa vypočítava vzhľadom k referenčnému kvantizéru. Tieto dve nastavenia umožňujú vyladenie vzorca
(Týmito dvoma nastaveniami sa pravdepodobne B-Quand Ratio a B-Quant Offset)
B-frames Quantizer ratio je pomer dodatočnej kompresie B-snímkov v porovnaní s P-snímkami.
B-VOPs (Quantizer offset)
Quantizer offset vyjadruje kompenzáciu pridanú ku každej kvantizacií. Pokiaľ okolné P-snímky majú kvantizér rovín 2 a obydva koeficienty, radio aj offset sa rovnajú 1, bude mať výsledný B-snímok hodnotu kvantizéru 3.
VHQ
Algoritmus pre vyhodnocovanie pohybu je založený na vyhladávaní v bežnej farebnej oblasti, kde sa snaží nájsť vektor pohybu, ktorý minimalizuje rozdiel medzi referenčným a kódovaným snímkom. Pokiaľ je aktivovaná možnosť VHQ, bude xvid pre vyhladávanie pohybového vektoru používať tiež frekvenčnú oblasť (DCT), čo minimalizuje nielen priestorový rozdiel, ale tiež zakódovanú velkosť bloku. Čím vyššia hodnota, tým vyššia záťaž procesoru.
Hodnoty
0 - Disabled (Zakazaný/nefunkčný)
1 - Mode Selection (Výberový režim)
2 - Limited Search (Obmedzené vyhladávanie)
3 - Medium Search (Stredná hodnota vyhladávania)
4 - Wide Search (Roziahle vyhladávanie)
Vyššia hodnota VHQ umožňuje znížiť kvantizér a tým zvýšiť kvalitu. Obecne sa má za to, že zvýšenie kvality nieje tak podstatné aby sa vyrovnalo spomaleniu kódovania. Podstatne sa ale zvýši kompresia. Hodnota 4 je odporučovaná pre filmy na jedno CD a dlhé filmy, aby sa nemuseli použiť 3 CD. Pre vysoké dátové toky (bitrate) by sa mala používať nízka hodnota 1, pre nízke toky zasa vyššia 2 - 4.
Niekoľko krát sa stalo, že výsledný film bol nečakane menší, ako bola predom udávaná vypočítaná veľkosť súboru.
Nastavte váš XviD tak ako vidíte na obrázku. Nemusíte sa báť ale experimentovať. Target bitrate som uviedol preto v rozhraní od 4000 - 5000, pretože je už na vás ktorú hodnotu si zvolíte. Pri 5000 budete mať o niečo väčšiu kvalitu a aj o niečo väčšiu veľkosť. Storm video bolo spravené na 5000 bitrate. Na 4000 bolo napríklad video JeagarnX.
Ak máte celý XviD nastavený, nastavte enconding type na 1st pass, a všetko potvrďte. Kliknite na záložku file, a dajte Save as. Začne prebiehať proces pri ktorom si XviD vytvorí prvotné informácie o videu. O jeho pohybových vektoroch, farbách a všetkých iných údajoch.
Po tom, ako sa tento proces dokončí opäť prejdite do konfigurácie XviD, a nastavte enconding type na 2nd pass. Potvrďte a dajte Save As. Súbor musíte pomenovať tak isto ako ten prvý a ten prvý súbor dáte prepísať. Toto je podstatná súčasť kompresie. V tomto momente prebieha už samotný proces kompresie kedy sa prerátavajú všetky výpočty atď.... a vaše video sa stáva menším.
Po dokončení kompresie ešte stále niesme hotový. Nemáme zvuk.
Tu si stiahnite VirtualDubMod. Vo VDMode načítajte už skompresované video a hore na lište prejdite do záložky streams. Tam vyberte Stream List. Kliknite na políčko Add a dajte načítať váš skompresovaný zvuk.
Kliknite na Ok, predjte teraz do záložky video a tam vyberte Direct Steram Copy. To nám zabezpečí, že nebude prebiehať už žiadna kompresia, ale v jednoduchosti sa spoja len dva kanály (audio a video kanál) do jedného kontajnéra. Tento proces prebehne v priebehu 2 - 5 minút. Po dokončení môžete slávnostne spustiť vaše hotové video.
Takýto postup a setting som použil ja pri mojom opisovanom videu Storm the Front, a mohli ste vidieť, že výsledná efekt zato fakt stál. Takže je už len na vás čo dokážete. Dúfam, že som vám v niečom aspoň trošku pomohol.
|