DVB do MPEG4 pomoci programu GordianKnot (GK)

(psano podle GK verze 0.28.8 v prosinci 2004)

 

 

Preambule

 

Predesilam, ze tohle neni absolutne vycerpavajici navod a muzes klidne prijit i na nejaka vylepseni. Pokud se tak stane, dej mi prosim vedet, navod doplnim, aby ostatni uzivatele nemuseli objevovat objevene. Kontakt je na konci navodu.

 

Rad bych na zacatku jmenovite podekoval kolegovi z TVFreak Milhausovi za korektury, oponenturu a betatestovani tohoto navodu na vlastni osobe. Ostatnim kolegum z TVFreak pak za prijemnou spolecnost po dobu poslednich cca dvou mesicu a Mikeovi za perfektni forum, kde si muzeme vymenovat rady, zkusenosti a sprostarny.

 

 

Nez zacnes s GordianKnotem

 

Vrele doporucuji zachycene video demuxovat pomoci ProjectX (viz separatni navod na TVFreak.cz). Pokud se budes timto doporucenim ridit, pak se pro pouziti GK hodi pred spustenim demuxu zaskrtnout par checkboxu na zalozce "Extern", konkretne:

         V leve polovine (externals / post processing)

-         rename all MPEG-Audios to *.mpa

-         rename all MPEG-Videos to *.mpv

Tahle uprava zrychli praci s GK, protoze jinak Ti z PX vylezou soubory s koncovkou m2p a mp2, ktere GK "nevidi" a musel bys je manualne prejmenovat.

 

V prave polovine (Projectfile settings)

-         Mpeg2Schnitt idd version: V2/A3 - vytvori idd soubory, ktere se hodi, pokud bys chtel demuxovany material presneji strihat pomoci Mpeg2Schnitt (M2S). M2S ma proti strihu v PX tu vyhodu, ze umi strihany material prehravat, tzn. pokud se chces trefit presne do nejakeho mista, v M2S k tomu uslysis i zvuk. Nevyhodou je, ze M2S neumi soucasne s AV strihat i titulky ze strany 888 teletextu. Drobnou nevyhodou je i fakt, ze pokud strihas az v M2S, demuxujes cely hruby material, takze proces dele trva a ma dva kroky misto jednoho.

-         Create *.d2v Projectfile on demux for each selected videofile - tohle Ti hodne usnadni praci v GK, protoze ten prave umi zpracovavat pouze soubory *.avi a *.d2v. Nicmene pokud mas jenom soubory *.mpv a *.mpa, soubor *.d2v se da dovytvorit z rozhrani GK - v zalozce Ripping si spustis DVD2AVI, das File - Open, najdes si ten *.mpv soubor, das Open - OK, pak das File - Save Project (F4), soubor pojmenujes a das Save. Ten proces je dost rychly, takze tim moc casu neztratis.

 

 

 

Instalace GK

 

GK ma dve casti: GK Codec Pack a GK Rippack, stahnout se daji treba tady http://prdownloads.sourceforge.net/gordianknot/Gordian.Knot.Codec.Pack.1.8.Setup.exe a tady http://prdownloads.sourceforge.net/gordianknot/Gordian.Knot.Rip.Pack.0.28.8.Setup.exe. Instaluji se v tom poradi, v jakem jsem je napsal. Codec Pack v sobe nese vsechny potrebne kodeky, muzes si vybrat, co nechces instalovat, takze pokud se rozhodnes, ze budes vse delat do XviD, nemusis instalovat DivX a opacne. Ja jsem to neresil a nainstaloval jsem vsechno. Jenom bud trpelivy, protoze prakticky kazdy kodek si spousti vlastni instalator a ta posloupnost neni nahodila, takze musis pockat, az dobehne instalace jednoho a teprve pak postupovat dal. Rippack je pohoda, ten vlastne nainstaluje rozhrani ve kterem pak ovladas vse v jednom.

 

Nastaveni GK

 

Pokud si to dobre pamatuju, neni potreba nastavovat skoro nic. Pouze se na zalozce Options podivej na nastaveni prvniho a druheho pruchodu (First Pass, Second Pass) u kodeku, pro ktery se rozhodnes. Ja pouzivam vyhradne XviD, takze kdyz kliknu na 1st Pass, mam v kolonce Profile @ Level hodnotu AS @ L5 a v kolonce Encoding Type hodnotu Twopass - 1st pass. Analogicky v nastaveni druheho pruchodu je totez, pouze Twopass - 2nd pass.

 

 

 

 

 

Ripovani DVD

 

Pro pripadne vyrobeni zalohy DVD ve formatu MPEG4 se da dobre pouzit DVDDecrypter na zalozce Ripping. Demux *.vob souboru se da velice elegantne provest pomoci ProjectX - viz separatni navod. Tenhle navod se zameruje primarne na prevod DVB-T do MPEG4, takze to dal nerozvadim.

 

 

Interlaced nebo progressive?

 

Tady zalezi na zdrojovym materialu a na tom, k cemu chces vysledek pouzit, jestli to vubec potrebujes. Ja jedu prakticky vyhradne z DVB-T do XviD nebo na DVD a deinterlace neresim. Nicmene, pokud Te to zajima, v GK si na zalozce Ripping vpravo dole spust DVD2AVI, tam si otevri *.mpv soubor a zmackni F5, nech chvili bezet to video a dostanes mj. info o tom, zda je video Interlaced nebo Progressive. Bacha, protoze to broadcasteri casto odbydou, tahle informace nemusi byt korektni. Takze si dukladne prohlidni video v tom nahledovym okne, jestli v nem vidis jakoby navzajem posunuty vodorovny radky. Pokud je nevidis, nemusis s tim nic dalsiho delat. Pokud tam posunuty radky vidis, v menu Video si vyber Field Operation - Swap Field Order a znovu spust nahled (F5). Pokud tam ty radky budou porad, vrat to radsi na Field Operation - None a nech to bejt, bude to dobry (na 90 %). Kdyby to dobry nebylo, zeptej se nekoho, kdo tuhle problematiku resi - na TVFreak o tom najdes dost informaci. Kdyz mas nastaveno, das File - Save Project (F4) a vytvoris si novej soubor *.d2v (vyrabel se uz v PX viz kapitola Nez zacnes s GK).
Drobna rada: Pokud chces bejt puntickar a mit informaci o typu videa spravne, nastav si to uz pri demuxu v PX. Je to zalozka Video, zaskrtatka uprostred - patch all frames to progressive resp. patch all frames to interlaced. Ale pokud se bez toho obejdes, radsi se v tom nevrtej.

 

 

 

 

 

Vlastni komprese v GK

 

V zalozce Bitrate mam vybrany kodek XviD, samozrejme je to kazdyho volba. Na tehle zalozce vidis vypocty datovych toku, ktere jsou dane velikosti vstupniho MPEG2 a pozadovanou vystupni velikosti MPEG4 (plati, pokud mas nahore vlevo vybrano Calculate Average Bitrate), resp. vypocet velikosti vysledneho MPEG4 pri danem datovem toku (pokud zmenis volbu na Calculate Avi File Size). Uplne dole temer uprostred je zajimavy policko, ktery ukazuje procentualni hodnotu predpokladane kvality vysledneho MPEG4 souboru. Tahle hodnota by nemela klesnout pod 40 %, protoze vysledne video by bylo kostkate. POZOR: Protoze hodnota datoveho toku, se kterou na tehle zalozce pracujes, je jenom hodnotou prumernou, zatimco dvoupruchodovy MPEG4 pracuje s variabilnim datovym tokem, bude se hodnota v tomhle policku lisit klidne i u dvou naprosto stejne dlouhych vstupnich MPEG2 souboru. Prestoze oba budou mit pri shodne pozadovane vystupni datove velikosti stejny prumerny datovy tok, hodne dynamickemu videu to stacit nebude, naopak statickemu bude klidne prebyvat dost nad 40 %. Proto je vhodne si co nejdrive spustit Compressibility Check (CC).

CC je pouze informativni, ale docela uzitecna pomucka. V podstate se zkusmo spusti a vyhodnoti komprese definovany casti filmu, protoze kazdej film ma jinou dynamiku a tim padem i jinou potrebu stridani obrazovy informace, tedy vlastne datoveho toku. Tzn. pokud bys mel deset minut statickyho a deset hodne dynamickyho videa, a nastavil si pozadovany prumerny br na 1000 kbps, tem prvnim deseti minutam bude stacit treba 500 kbps, ale tech druhych deset bude chtit aspon 1500 kbps.

Jak na to? Kdyz jsi si otevrel ten *.d2v soubor, otevrelo se ti nahledove okno daneho videa. Vlevo dole klikni tlacitko Save & Encode. Objevi se Ti tabulka, kde by vsechno melo byt nastaveno spravne (jenom se mrkni na Resize Filter - nejvic se mi osvedcil Lanczos (sharp)). No a tady v ty tabulce vpravo dole mas CC. Takze si vyberes knoflik pred defaultne nastavenou hodnotou 5 % (samozrejme ji muzes zmenit). Jde o to, kolik procent videa bude promereno - cim vetsi cast filmu das, tim presnejsi hodnotu dostanes, ale zase to bude trvat dyl. Da se rict, ze ten test je zhruba stejne rychlej, jako prehravani toho videa, takze 5 % z hodinovyho videa bude trvat cca 3 minuty. No a kdyz ten CC dojede, v tom okynku procentualniho vyjadreni kvality se Ti objevi hodnota platna pro to konkretni video, se kterym pracujes.

Zatim bitrate nemen a koukni na zalozku Resolution. Prvni dva ramecky vlevo nahore jsou automaticky rozpoznany podle zdrojovyho videa, takze je radsi nemen. Treti ramecek nahore Ti umozni orezat obraz. Bud muzes pouzit AutoCrop, lepsi je zaskrtnout Pixel a vedle v ramecku si nastavit orez manualne - jak budes pridavat, budou ti v nahledovym okne ubyvat okraje. Bacha na jednu vec - nektery strihovy porady maj tu nectnost, ze maji ruzne posunute okraje, takze doporucuju nastavit orez a pak si nahled posuvnikem dat nekam jinam a zkontrolovat. Tady je schovana i jedna vyhoda - pokud je nahrany film sirokouhly, stejne je vysilan ve formatu 4:3, takze ma nahore a dole cerny pruhy. No a ty se tady daj bez milosti oriznout, abys zbytecne nekomprimoval neco, co nepotrebujes. SW ani MPEG4 kompatibilni stolni prehravace s tim nemaj problem. Pri orezavani vidis i realne obrazove rozliseni uz oriznuteho videa v pixelech hned pod tim orezovym "krizem". A ted se dostavam k tomu, proc jsem psal, abys zatim nemenil bitrate.

Zhruba uprostred tehle zalozky vidis i pozadovane obrazove rozliseni vystupniho MPEG4. Osobne vetsinou pouzivam 544x400. Dospel jsem k tomu po rade pokusu jako k nejlepsimu kompromisu - datovy tok muze byt relativne nizky a pritom obrazova kvalita (subjektivne) zustava vysoka i na velke televizi. Nutno ovsem podotknout, ze muj stolni prehravac Philips DVP630 provadi ctyrnasobne prevzorkovani videa, takze je mozne, ze v jinych stolnich prehravacich by byl vysledek slabsi, nevim, nezkousel jsem to.

Dulezite je pri nastavovani vystupniho rozliseni sledovat i hodnotu Aspect Error (kousek vpravo od stredu) a snazit se ji udrzet co nejblize k nule. Jde o to, jak moc se zmeni pomer stran (aspect ratio) ve vztahu ke vstupnimu (orezanemu) videu.

Takze: pri orezavani stran se Ti hodnota namerena v CC pomalu zvysuje (protoze ubyva plocha, kterou je potreba zaplnit daty), ze stejneho duvodu se zvysuje i pri zmensovani pozadovaneho vystupniho obrazoveho rozliseni. Pokud i po tom, co sis tyhle hodnoty nastavil na zalozce Resolution, zustala hodnota namerena CC pod 40 %, vrat se na zalozku Bitrate a budes muset zvetsit velikost vystupniho souboru. Ovsem pozor i tady - velmi casto jsou naprosto bez problemu i soubory, ktere zkomprimujes s vysledkem CC mezi 30ti - 40ti procenty, tady jde spis o to, jak moc Ti na danym videu zalezi, jestli to chces risknout. Kazdopadne je to jenom ztrata casu - vstupni MPEG2 zustava beze zmen, tzn. kdyz to nevyjde napoprve, das si to znovu...

Na te zalozce Bitrate si taky nastav, v jakem datovem toku bude audio (na serialy staci mp3 96 kbps), protoze to ma samozrejme vliv na vypocet celkove velikosti vysledneho souboru. Pokud mas dve audio stopy, nastav bitrate pro obe, uvidis, nakolik Ti to ovlivni ten datovy tok videa.

No a po tom, co sis tohle vsechno nastavil muzes v nahledovym okne znovu kliknout na Save & Encode a v tabulce s nastavenimi rovnou znovu Save & Encode. Vyskoci ti dialogovy okno, ktery jenom odklikni Save (muzes si ho i prejmenovat, ale je to ztrata casu), nasledne vyskoci dalsi okno, ktery bude chtit zadat cestu k audio souboru Audio 1. Pres Select nalistujes audio soubor (*.mpa) a zadas bitrate vysledneho mp3 souboru (96 pro serialy, 128 pro filmy...). Pokud jsi demuxoval dualni porad, vyberes *L.mpa pro cesky zvuk a  pak v zalozce Audio 2 vyberes *R.mpa pro puvodni zvuk a nastavis pozadovany datovy tok Audia 2. Nakonec se vratis na prvni zalozku tohohle okna (XviD nebo DivX) a das Add Job to Encoding Queue.

Vyskoci Ti dialog, kterej Ti rekne, ze job byl pridan do fronty a jestli ma zacit kodovat. Bacha! Kdyz das Ano, uz nebudes moct poustet Compressibility Check pro dalsi videa, dokud komprese nedobehne (cca dvojnasobek casu trvani kodovaneho videa). Proto je lepsi dat Ne, naprosto stejnym zpusobem si pripravit vsechna ostatni videa, ktera chces zpracovat - GK je bude radit do fronty - a kdyz mas vsechno pripraveny a ve fronte, kliknes na zalozce Encoder tlacitko Start Encoding.

 

Prakticka rada na konec - prakticky pro vsechny serialy staci Compressibility Check pustit jenom na jeden dil a ostatni delat se stejnym nastavenim, tzn. stejna pozadovana vysledna velikost a obrazove rozliseni. Jenom bacha na speciality typu Halo halo, kdy se obcas mezi 30ti minutovymi dily vyskytne 45ti minutovej, tam je potreba tu velikost zvednout.

A jeste jedna - vyhni se pouzivani diakritiky v nazvech souboru pro GK. Nekdy to na tom zdechne (napr. Parovani mu vadilo to "i"...).

A posledni - docela se mi osvedcilo nasledujici: mam dva interni disky - systemovy a datovy. Prvotni nahravka je na datovy. Demux PX cte z datoveho a zapisuje na systemovy. Komprese GK cte ze systemoveho a zapisuje na datovy. Rekl bych, ze se tim cely proces mirne zrychli, protoze pokud se data cetla a zapisovala na stejnem disku, subjektivne to trvalo dyl. Ted obvykle prvni pruchod jede tesne kolem 30 fps, druhy kolem 25 fps.

 

 

Velmi detailni navod na prevod DVB do MPEG4 pomoci mj. GK v anglictine je na http://www.doom9.org/DigiTV/dvb2divx.htm.

 

 

Pripadne pripominky mi posli na trinitro@trinitro.net, pro rychlou radu jsem na ICQ nebo MSN, oboji mam ve svem podpisu na www.tvfreak.cz.