Download: ftp://slamaci@147.32.8.168/ heslo viz u tohoto příspěvku - vybrané věci (včetně titulků) i RapidShare

Fórum překladatelské skupiny ZDE
Profil překladatelské skupiny ZDE

Aktualizace:

25.5.2012 --> titulky k Hellsing OAV 9
24.5.2013 --> titulky k Hellsing OAV 10
11.11.2013 --> titulky k Dragon Ball Z 1-16
04.10.2014 --> beta titulky k One Piece movie 9 [yibis] - do titulky-beta sekce na našem FTP

úterý 11. září 2007

Trable s enkódy Kenichiho

Tenhle příspěvek je trochu techničtější pokec o těch enkódech se zaměřením na nastalé problémy.

Hlavním ponaučením je pro mě při enkódování hardsubu ruce pryč od DirectShow, a vedlejším že časovat ass titulky (přesnost časování 1/100 sekundy) oproti 120fps avi není úplně dobrý nápad (spoustou hodin stráveného času vykoupená ponaučení - aspoň si to více vtluču do palice).

Původně jsme to měli celé jako hardsub, ale hlavně kvůli problémům s nutností překódovávání při nalezení chyb, jsme se rozhodli udělat jako hardsub titulky efekty (karaoke, nápisy, ...), a zbytek nechat jako softsub titulky, které zmuxujeme do mkv spolu s potřebnými fonty.

Díky tomu se pak dalo jednodušeji zkontrolovat, že se hardsub povedl – bylo daleko méně titulků, které bylo třeba zkontrolovat. A pokud by se snad ještě našly nějaké chybky v softsubu, tak už by stačilo vydat pouze novou verzi titulků.

Popudem k tomu bylo, že na ADVíku jsme si všimli (já a Drobek87) chybek s nepřesným časování nápisů v obraze zpárováných s nápisy v RAWu, takže nepřesnost i když jen o frame byla vidět. Napadlo mě, že pokud budu muset po každém enkódování kontrolovat jestli mi sedí časování hardsubnutých titulků, tak se mi to bude dělat lépe pokud omezím počet titulků, které budu hardsubovat - a to na ty nápisy v obraze (abych si je ohlídal), a pak karaoke a nápisy v japonštině (nemůžeme předpokládat, že všichni mají japonské fonty, a muxování těch fontů do mkv nepřipadá v úvahu, protože ty fonty jsou příliš velké). Samozřejmě jsem v tu chvíli i myslel na to kolikrát jsem musel předělávat enkódy, i když jsme přišli na chyby v dialozích (což kdyby už v tu chvíli byl sofsub, tak jsem nemusel dělat znovu enkód).

Tenhle problém jsem nakonec vyřešil hlavně tím, že jsem v Avisynth skriptu přestal loadovat zdrojové avi (s RAWy) přes DirectShowSource - což byla hlavní příčina nepřesností v časování, protože to, že DirectShow nezaručuje přesné seekování jsem si hezky pěkně prakticky vychutnal - nejenže mi nesedělo časování některých nápisů, ale navíc ještě když jsem příslušný avs loadnul do Virtualdubmodu, tak se mi ty titulky zobrazovaly v různé chvíle v závislosti jak jsem na dané místo zaseekoval - a teď jak sakra vědět, které z těch zaseekování je to, které se projeví při enkódování - nejvíce odpovídající mi to přišlo když jsem k danému místu dojel šipkou po frejmech. Místo toho jsem použil AVISource, což zdá se garantuje přesné seekování.

Proč jsem sakra použil DirectShowSource, když při loadování avi je samo od sebe přirozenější použít AVISource? Asi protože jsem byl zvyklý rutině používat DirectShowSource pro reenkód náročnějších video souborů pro slabší počítače na jednorázové zkouknutí, tak jsem to bohužel automaticky použil aniž by mě hned napadlo, že pak bude problém s přesným časováním (a ne že bych už v tu chvíli nevěděl, že DirectShow nezaručuje přesné seekování).

Pak byl ještě problém s tím, že RAWy máme od epizody 2 v avi s 120fps. A jelikož jsme v Aegisubu časovali přímo oproti těm avi, tak jelikož ass formát titulků má přesnost časování na jednu setinu sekundy, tak v několika případech jsme na si na toto naběhli. Nakonec jsem to vyřešil přes avs s AVISource, aplikování (samozřejmě pomocí TextSub z VSFilter.dll) titulků (načasovaných na těch 120fps) a finálně ChangeFPS(23.976). Pak už to jenom stačilo doladit u těch pár případů, kde to ve výsledném videu (pro kontrolu stačit otevřít avs ve Virtualdubmodu) evidentně narazilo právě na tu nedostatečnou (oproti 120fps videu) přesnost časování ass.

Příště to bude chtít, při použití 120fps RAWu (přesněji řečeno je to 119.880fps), v Aegisubu časovat rovnou oproti avs s AVISource a ChangeFPS(23.976). Pak snad žádné problémy s nepřesností časování při enkódu nenastanou.

A až budeme mít RAWy v mkv nebo mp4, tak to nám pro přesné časování asi nezbude nic jiného než to reenkódovat do avi - ledaže by se do té doby objevil filtr pro AviSynth umožňující loadnout mkv/mp4 s přesným seekováním.

Ještě bych měl asi dodat, že enkóduju pod Windows pomocí meGUI, takže pro vstup musím použít AviSynth skript (ne že bych věděl o nečem lepším). A samozřejmě protože používáme ass s efekty, tak prostě musíme enkódovat pod Windows s použitím VSFilter.dll na renderování titulků (nic jiného, co by to pořádně umělo bohužel (VSFilter prý není bůhvíjak efektivní, a různé verze mají různé bugy) pokud vím aktuálně není).



Úplně nakonec pro zajímavost sem pro ukázku uvedu některé AviSynth skripty.

Kenichi_05_pouzity_pro_enkod.avs:
--
LoadPlugin("C:\Program Files\Combined Community Codec Pack\Filters\VSFilter.dll")
AVISource("[Q-R] Shijou Saikyou no Deshi Kenichi ep 05 (DivX5.11 640x480 120fps).avi")
ConvertToRGB32
TextSub("[Q-R] Shijou Saikyou no Deshi Kenichi ep 05 (DivX5.11 640x480 120fps).hard do soft.ass")
ConvertToYV12()
ChangeFPS(23.976)
--

Konverzi do RGB dělám, protože mi to tak renderuje hezčí titulky (jinak to bylo nepřijatelně nekvalitní). Potom konverze do YV12 je potřeba prakticky hlavně protože to vyžaduje meGUI (možná protože takový vstup vyžaduje x264.exe) (jinak samozřejmě to takhle asi bude efektivnější, protože video se zásadně neenkóduje v RGB - sice by si to asi mohl převést až encoder(tedy v mém případě x264.exe), ale takhle se aspoň předává méně dat z AviSynthu do x264.exe).


Kenichi_02_podle_ceho_jsme_to_meli_casovat.avs
--
AVISource("[Q-R] Shijou Saikyou no Deshi Kenichi ep 02 (DivX5.11 640x480 120fps CBR).avi")
ChangeFPS(23.976)
--

3 komentáře:

WillCorn řekl(a)...

Zdravym,
mozno by sa hodilo vyskusat Avidemux.
Snim som zatial ziadny problem nemal.
Da sa nacitat ako mpeg, avi, ogg, pripadne mkv, su vnom filtre pre vlozenie ass/ssa(a vela inych), ktore sa daju aktivovat aj casovo (aby sa neenkodovalo cele video, ale iba cast). Dalej podporuje dost kodekov/filtrov (nieje zavysly od systemu, vsetko ma vlastne), napr Xvid, x264 a vela dalsich. Mozno sa vam to bude hodit.
http://www.avidemux.org/
WillCorn

Anonymní řekl(a)...

kedy sa znivu rizhybe preklad kenichiho????alebo aspon externe titulky by ste mohli uverejnit ak mate...

Su Yue Inoue Kyoraku řekl(a)...

XD jednoduchsie je nerobit enkod :D ked delphi ho už ma :D