Návody

Malá pří­ručka pro en­code

v 1.0

Nejsem od­bor­ník, spíš pouhý uži­va­tel. Ale chtěl jsem si zku­sit na­psat po­dobný tu­tu­rial, a po­kud mi dáte zpět­nou vazbu, mohu ho u zlep­šo­vat. Na in­ter­netu už jsou ná­vody, menší či větší ob­tíž­nosti, já zde před­klá­dám ten ob­tíž­nosti nejmenší (tím pá­dem vás toho také nejméně na­učí).

Ještě do­dá­vám, že já se ne­za­bý­vám kó­do­vá­ním hra­ných filmů; ne že by stejné po­stupy ne­šly po­u­žít, ale chtělo by to jisté mo­di­fi­kace.

Takže ještě jed­nou: po­kud ně­který z na­šich od­bor­níků na en­co­ding vi­dea ob­jeví chybu, ne­lyn­čujte mě a radši mi řek­něte, jak ji opra­vit.

Co po­tře­bu­jete

- Zdro­jové vi­deo, raw. Nej­snažší de­fi­nice je, že to je vi­deo, kde nejsou hard­subo­vané žádné titulky/loga, prostě ne­bylo po­zna­me­náno žád­nou před­chozí fan­subo­vou sku­pi­nou. Po­kud máte DVD, je to o krok delší, a má to své vý­hody i ne­vý­hody. Také se tím budu za­bý­vat.

- Avi­synth – soft­ware, který en­ko­déru po­dává snímky na kó­do­vání. Na­hle­dejte žádné okénko nebo tak, není tam. Ne­po­tře­bu­jete ho. Ovládá se se avs skripty (viz níže)

- x264.exe – en­co­der. Sa­mo­zřejmě jsou i jiné, ale já po­u­ží­vám te­nhle, vzhle­dem k jeho uži­va­tel­ské pří­vě­ti­vosti a dob­rým vý­sled­kům i při de­fault­ních na­sta­ve­ních.*)

- VSFilter.dll - plu­gin pro avi­synth, aby vám fun­go­valy ně­které po­kro­či­lejší věci, jako text­sub. Je v něm víc funkcí, za­tím ho bu­dete po­ře­bo­vat asi jen na tuhle.

- pár dal­ších plu­ginů pro Avi­synth, když bu­dete chtít de­in­ter­lace apod…

AVS Skript

Avi­synth ovlá­dáte skrip­tem. To je tex­tový sou­bor, který říká avi­syn­thu, co má dě­lat.
Zá­kladní skript může vy­pa­dat velmi jed­no­duše:

loadplugin("VSFilter.dll")
directshowsource("d:\Video\video.mp4")
converttoyv12()

Lo­ad­plu­gin – na­čítá plu­giny, může ob­sa­ho­vat i cestu (v “ “), po­kud není plu­gin ve stejné složce.

Di­rect­show­source – na­čítá vi­deo

converttoyu12 - pře­vádí ba­revný pro­stor, aby si s ním x264 uměl po­ra­dit.

Nic víc v tom není. Po­kud byste měli avi vi­deo, po­u­ži­jete místo di­rect­show­source pro na­čí­tání avi­source.

Ovlá­dání x264.exe

Asi jste si to zku­sili. Když ho spus­títe, ote­vře se na oka­mžik okno CMD a pak skončí. Lekli jste se? Já po­prvé jo xD
X264 en­co­der nemá gra­fické pro­středí (GUI), takže se ovládá po­mocí pa­ra­me­trů v pří­ka­zo­vám řádku (CLI). (Sa­mo­zřejmě na něj exis­tujě ně­ko­lik GUI, ale já je ne­po­u­ží­vám. Přesto je na konci zmí­ním.)

Ote­vřete si si notepad.exe a vy­tvořte batch sou­bor (to je textak ale s pří­po­nou .bat, ten pak spouš­títe, když chcete za­čít kó­do­vat.), který bude ob­sa­ho­vat ná­sle­du­jící:

x264.exe --crf 20 --preset slow --tune animation --output video_enkod.mp4 skript.avs

Co je co je co:

crf – kon­stantní kva­lita; pro­měnný bit­rate, za­cho­vává se kva­lita snímků, jsou i mody na konst. bit­rate apod. Čím menší číslo, tím vyšší kva­lita, 0=bezztrátové; smys­lu­plný roz­sah je 15~25 (zá­lěží na roz­li­šení, čím vyšší roz­li­šení, tím větší crf lze po­u­žít; proč, to se mě ne­ptejte)

pre­set – rych­lost kó­do­vání; čím větší rych­lost, tím menší účin­nost, tím větší ve­li­kost; po­u­ží­vejte co nej­po­ma­lejší mů­žete, ať ne­do­pad­nete jako Thora ;)

tune – au­to­ma­tické vy­la­dění en­ko­déru pro ur­čitý druh vi­dea, po­kud kó­du­jete anime, ur­čitě to po­u­žijte

out­put – kam se uloží vý­sledný sou­bor, může tam být i cesta; po­zor, ne­ptá se to na pře­pi­so­vání sou­borů!

skript.avs – tady na­čí­táte právě onen avi­synth skript; může se jme­no­vat sa­mo­zřejmě i ji­nak, hlavní je, aby se sho­do­valo jméno sou­boru se skrip­tem s tím tady

Pozn.: vý­stupní vi­deo může mít for­mát mp4, mkv flv nebo raw .… Po­u­ží­vám mp4 nebo mkv, pro­tože se s tím pak nej­snáz pra­cuje dál.

Au­dio

X264 je en­co­der je­nom pro vi­deo. Avi­synth si umí po­ra­dit s ně­kte­rými druhy au­dia (s tím nej­čas­těj­ším, AAC, ale ne). V růz­ných GUI jde za­ří­dit, aby se po vy­kó­do­vání au­dio a vi­deo zase spo­jily do­hro­mady, takhle bez GUI jsem to ne­vy­kou­mal. Ale ono je to stejně jedno, pro­tože to ne­po­tře­bu­jete. Podle toho, jaký máte raw, po­u­ži­jete při­slušný de­mu­xer (SW na vy­ta­žení stop z kon­taj­neru) a pak vaše vy­kó­do­vané vi­deo spo­jíte s au­diem a s ti­tulky do ji­ného kon­taj­neru (ob­vykle mkv, je to ne­po­ho­dl­nější).

Rawy:

MKV kon­ta­i­ner, AVC Vi­deo

Na­čí­táte přes di­rect­show­source, de­mux­nete mkvde­mu­xem. To je všechno.

MP4 kon­ta­i­ner, AVC Vi­deo

Na­čí­táte přes di­rect­show­source. Exis­tuje kom­bi­no­vaný muxer/demuxer, MP4 Box, ten po­u­žijte na de­mu­xo­vání au­dia.

AVI kon­ta­i­ner, Xvid/divX vi­deo

Na­čí­táte přes avi­source. Pro práci se sto­pami je avi­demux, po­měrně kom­plexní pro­gram, který umí kó­do­vat, mu­xo­vat, de­mu­xo­vat, stři­hat… Vy­svět­lo­vání práce s avi­demu­xem je nad rá­mec to­hoto tu­to­ri­alu, ale je do­cela in­tu­i­tivní, takže byste ne­měli mít pro­blém.

Dal­šími jako je WMV, OGM apod. se za­bý­vat ne­budu, pro­tože to sám po­řadně ne­u­mím. Ale jsou tu ještě DVD.

Když máte DVD, tak po­u­ži­jete DGIn­dex na vy­tvo­ření in­dexu z DVD (soubor.d2v), a ten pak bu­dete na­čí­tat v AVS skriptu. Opět, po­pis práce s DGIn­de­xem je nad rá­mec, ale tady je pěkný ná­vod (eng).

Máte tedy sou­bor .d2v. Udě­láte tedy ná­sle­du­jící skript:

loadplugin("dgdecode.dll")
DGDecode_mpeg2source("mojedvd.d2v")

Je tedy jasné, že ve složce se skrip­tem mu­síte mít kni­hovnu dgdecode.dll. Tu si stáh­nete, nebo ji na­jdete v pro­gra­mo­vém ad­re­sáři DGIn­dexu. DGi­on­dex také zá­ro­veň vy­hodí i au­dio o správně délce, takže v tomto ohledu jste bez práce.

Při­pravte se, že u DVD bu­dete po­tře­bo­vat do­da­tečné úpravy vi­dea v avi­synth skriptu, jako de­in­ter­lace apod., vzhle­dem k po­vaze DVD.

Do­kon­čení

Máte tedy na disku dva sou­bory. Vý­slední vy­kó­dvané vi­deo a de­mu­xo­vané pů­vodní au­dio. Tyto dva sou­bory mu­síte tzv. zmu­xo­vat (spo­jit) do­hro­mady. Obyv­kle se v dnešní době po­u­žívá MKV kon­taj­ner, takže po­u­ži­jete MKV­Merge.

Další

Text­sub

Po­kud bu­dete chtít do vi­dea hard­subo­vat ně­jaké ti­tulky, jde to velmi snadno.

Do skriptu při­dáte tento řá­dek:

textsub("vase_titulky.ass")

Toto vy­ža­duje pří­tom­nost VSFiltr.dll.

Pa­ma­tujte, že 1. hard­subo­vané ti­tulky už ne­mů­žete změ­nit, po­kud v nich na­jdete chybu, mu­síte pře­dě­lat celý en­kód, 2. ti­tulky jsou ne­při­ro­zený pr­vek ve vi­deu z hle­diska kom­pres­ních al­go­ritmů, takže je nutné tro­chu zvý­šit bit­rate (sni­žit hod­notu crf, na­pří­klad).

Exis­tuje spousta dal­ších fil­tru a funkcí, na to už si mu­síte při­jít sami. Na­jdete jich vět­šinu, co exis­tuje, na wiki​.avi​synth​.org.

Na co si dát po­zor:

1. Ne­smí se vám roz­chá­zet au­dio s vi­deem po zmu­xo­vání. To se stává často, když ne­za­dáte správně fra­me­rate, proto si zjis­těte fps pů­vod­ního vi­dea a podle toho za­dejte pa­ra­metr k di­rect­show­source na­pří­klad pro vi­deo s 24000/1001 FPS:

directshowsource("zdroj.mp4", fps=23.967)

Pozn.: pa­ra­me­try k funk­cím se od­dě­lují čár­kou a jsou ve tvaru název=hodnota, … po­kud se jedná o cestu k sou­boru apod, jsou v uvo­zov­kách.

2. Vi­deo se ne­smí tr­hat – opět špatně fra­me­rate, ale při­čin může být mnoho. Než to za­čnete ře­šit, zkon­t­ro­lujte, zda se ne­trhá raw.

3. Ne­smí být vi­dět „kos­tičky“ – moc malý bit­rate

4. Než to bu­dete ně­kde pu­b­li­ko­vat, dejte to zkon­t­ro­lo­vat ně­komu, kdo se tro­chu vy­zná.

Do­po­ru­čený nebo zmí­něný soft­ware

AVSP­mod – skvělý edi­tor AVS skriptů, řekne vám i kde máte chybu.

MKVMerge&Demux

MP4Box

AVI­Demux

GUI pro x264:

Me­GUI – ne­líbí se mi a ne­mám ho rád, ale jestli vám bude vy­ho­vo­vat.. well, wha­te­ver ma­kes you feel good…

Za­rx­GUI – chvíli jsem ho po­u­ži­val, osvěd­čilo se, ale přesto mi při­šlo zby­tečné. Na ně­které věci se hodí, umí cel­kem ro­zumně pra­co­vat s au­diem (ale to MEGUI taky asi).

…o dal­ších ne­vím.

A ještě rada na zá­věr: Ob­čas se stává, že na­jdete vi­deo, které spl­ňuje pa­ra­me­try rawu, ale je mux­nuté do kon­taj­neru se soft­su­bem (s ti­tulky). Když to na­čtete jak to stojí a leží do di­rect­show­source, tak vám to ty ti­tulky bude hard­subo­vat (za­leží na tom, co po­u­ží­váte na vy­kres­lo­vání em­bed­do­va­ných soft­subů (ti­tulky v jed­nom kon­taj­neru se zbyt­kem), ale po­kud máte CCCP, tak to je Ha­ali Me­dia Spli­ter, a ten to di­rect­show­sour­covi na­ser­ví­ruje i s ti­tulky). Ře­šení: v na­sta­ve­ních Ha­ali Me­dia Split­teru (po­kud jej tedy po­u­ží­váte) si na­jděte pre­fe­renci ja­zyka ti­tulků, a do toho okénka na­pište off. (Jestli to dělá, co má, zkon­t­ro­lu­jete jed­no­duše tak, že si za­pnete ně­jaké vi­deo s ti­tulky – ne­měly by se zob­ra­zit).

A to je asi všechno.


*) za to­hle mě asi mnozí bu­dou lyn­čo­vat, ne­vím. Exis­tuje celá wiki se se­zna­mem na­sta­vení pro x264, za­tím pře­ží­vám bez vět­šiny z nich.

p style=„text-align: jus­tify;“

4 thoughts on “Malá pří­ručka pro en­code

  1. Možná bych to vi­deo na­čí­tal spíš přes FFM­pe­g­Source než přes DS. Přeci je­nom DS je „jedna díra pro všechno“ a ja­ký­ko­liv chytrý filtr se tam na­cpe, taky tam zů­stane (ne­týká se je­nom ti­tulků). Na­víc ne­přesné se­e­ko­vání… Spíš si člo­věk za­dě­lává na pro­blémy.

    Mno­ha­řád­kové se­znamy pa­ra­me­trů x264 lze v dnešní době spo­leh­livě po­va­žo­vat a) za po­mník dob mi­nu­lých nebo b) za tro­lo­vání. Jed­no­du­chost po­u­žití (kdo ne­tuší, co která na­sta­vení dě­lají, ne­měl by je mě­nit dle ma­gic­kého kon­fi­gu­ráku od­kudsi) spolu s „dob­rými vý­sledky při de­fault­ních na­sta­ve­ních“ (ně­kdo udělá srov­ná­vací test, ni­kde nic ne­na­staví a pak vy­le­zou haus­num­mera) byl ostatně dů­vod za­ve­dení –pre­set a –tune.

  2. dik za radu, nekdy to sam zku­sim :) a pak to zme­nim i tady ^^

  3. nor­malni (tedy „ne‐unicode“) je pro stare verze win­dows, tusim win mi­le­num a starsi (win98, win95…), ktere pou­zi­valy zna­ko­vou sadu ANSII. roz­dil je tedy v tom, ze ne­bu­dou umet di­a­kri­ticke znaky, znaky vy­chod­nich ja­zyku apod.. po­kud pou­zi­vas win2k a vy­ssi, pou­zil vsfil­ter uni­code.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *