Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Multimedia
Práce s titulky
25. července 2006, 00.00 | Minule jsme se seznámili se základy toho, co umí kontejner QuickTime; dnes se budeme podrobněji zabývat pouze jednou z možností, jež nabízí – použitím textových streamů pro titulky.
Minule jsme se seznámili se základy toho, co umí kontejner QuickTime; dnes se budeme podrobněji zabývat pouze jednou z možností, jež nabízí – použitím textových streamů pro titulky. Jak už víme, v kontejnetu QuickTime může být libovolný počet textových streamů; každý z nich může mít nezávisle na ostatních zvolený jazyk – což je vhodné, ačkoli, jak také víme odminula, stejně je pro přepínání titulků lepší používat přímé řízení streamů pomocí služeb QuickTime Pro (v okně s přehledem streamů, jež vyvoláme příkazem "Show Movie Properties"), než poněkud nedotaženou podporu pro přepínání jazyků.
Co to je textový stream?
S trochou zjednodušení můžeme říci, že textový stream je navržen právě pro titulky: může obsahovat řadu samostatných textů, z nichž každý je označen výchozím a cílovým časem. Přehrávač QuickTime pak pro každý titulek v každém aktivním textovém streamu prostě titulek vyrenderuje na patřičné místo v jeho výchozím čase, a opět jej odstraní v čase cílovém.
Samozřejmě, že "patřičné místo" můžeme sami určit – každý videostream (mezi něž de facto textové streamy patří) má určenu velikost a také svou relativní pozici vůči ostatním streamům:
Stejně můžeme rozhodnout, jakým písmem se titulky mají renderovat, v jaké barvě to má být, a řadu dalších atributů.
Pro titulkové streamy má QuickTime vlastní formát, s poměrně bohatými možnostmi nastavení. Podrobný popis tohoto formátu lze nalézt na webu Apple; v praxi však je pohodlnější nechat titulky v patřičném formátu vygenerovat přímo aplikaci QuickTime Player, a pak jen potřebným způsobem upravit časové body pro jejich zobrazení a skrytí. K tomu je vhodný následující postup:
- nejprve si připravíme titulky jako obyčejný textový soubor, v němž je každý titulek na samostatném řádku;
- takovéto titulky naimportujeme do přehrávače QuickTime Player;
- a hned je zase vyexportujeme, ale ve formátu "Text to Text" s nastavením "Text with Descriptors".
Výsledný textový soubor obsahuje časové značky, jež můžeme snadno změnit a soubor opět naimportovat do aplikace jako další stream:
{QTtext}{font:Helvetica}{italic}{dropShadow:on}{anti-alias:on} {keyedText:on}{size:20}{textColor: 65535, 65535, 65535} {backColor: 255, 255, 255}{justify:center}{timeScale:1000} {width:678}{height:60}{timeStamps:absolute}{language:0}{textEncoding:0} [00:00:00.000] {dropShadowOffset: 4, 4}{dropShadowTransparency:128} [00:02:28.900] {dropShadowOffset: 4, 4}Thank you very much and welcome to TO TELL THE TRUTH [00:02:30.949] {dropShadowOffset: 4, 4} [00:02:31.471] {dropShadowOffset: 4, 4}Our first guest he's made a career out of being the most [00:02:34.203] ...
Trochu "podraz" zde může být s češtinou: formát QuickTime sice podporuje UNICODE, jenže poněkud šíleným způsobem, kdy jsou v UNICODE pouze samotné titulky, zatímco časové značky a ostatní tagy jsou uloženy jako osmibitové ASCII; upravovat takový soubor v běžném textovém editoru je mírně řečeno poněkud problematické, a specializovaný editor – pokud vím – neexistuje. Proto je většinou lepší zvolit češtinu jako jazyk titulků prostřednictvím tagu {language:} – jak víme již z minulého dílu, čeština má v QuickTime kódové číslo 38 – a uložit titulky v kódování Mac OS CE: díky českému jazyku QuickTime toto kódování použije automaticky a vše je bez problémů.
(Ovšem, problém může nastat v případě, kdy by naše titulky měly obsahovat některé znaky, jež nejsou součástí kódové tabulky Mac OS CE; pak již by nezbylo, než použít onen dosti šílený formát s využitím UNICODE.)
Co s formátem SRT?
Na Internetu existuje řada serverů, na nichž jsou k dispozici titulky ve formátech, jež užívají windowsovské přehrávače spolu s kontejnery AVI (mimochodem, existovalo dokonce i jedno poněkud šílené rozšíření kontejneru AVI, jež ukládalo titulky – jak tomu podle zdravého rozumu samozřejmě má být – přímo do kontejneru spolu s filmem; bohužel se však neujalo).
Jelikož jde o formát textový, je zřejmé, že není příliš těžké vytvořit aplikaci, jež tyto formáty bude vzájemně převádět. Velmi šikovnou takovou aplikací je kupříkladu TitleLab: ta dokáže načíst v podstatě libovolný formát titulků, s nimiž se setkáme na Webu, a vyexportovat jej do formátu QuickTime. Navíc aplikace TitleLab nabízí pohodlné grafické uživatelské rozhraní pro nastavení všemožných atributů titulků, a velmi šikovná a pohodlná je také pro synchronizaci titulků s filmem.
Osobně jsem v aplikaci TitleLab narazil pouze na dva problémy. První z nich není nikterak zásadní: při synchronizaci si musíme jen dávat bedlivý pozor, abychom nenastavili překrývající se časy titulků (tj. např. jeden do 1:01:01, následující od 1:01:00). Aplikace sice obsahuje kontrolu a varování; je v ní však – přinejmenším ve versi 0.5b1 již mám – nepříjemná chybka: varování se totiž nedá nijak odstranit, jediný způsob, jak se jej zbavit, je aplikaci ukončit :)
Druhý problém se opět týká těch nešťastných českých nabodeníček: aplikace TitleLab (přinejmenším ve výše zmíněné versi) prostě jaksi češtinu nebere v úvahu, natvrdo předpokládá, že zdrojové titulky jsou v nějakém zcela nesmyslném kódování (patrně Windows Latin 1), a z českých znaků tedy udělá naprostý galimatyáš.
Možná existuje i lepší řešení; nejlepší však, jež jsem objevil já, je využít kódování "Non-lossy ASCII", jež Mac OS X (spolu s nepřebernou řadou dalších) standardně podporuje. Kódování "Non-lossy ASCII" je šikovné v tom, že libovolný znak UNICODE překóduje do čistého sedmibitového ASCII, jež celkem vzato žádná aplikace již nijak poškodit nemůže :)
- nejprve tedy načteme výchozí titulky do TextEditu tak, aby byla čeština korektně čitelná – pro české titulky to skoro jistě bude znamenat kódování Windows CP1250;
- uložíme text do jiného souboru, ale právě v kódování "Non-lossy ASCII";
- tento druhý soubor načteme do aplikace TitleLab, podle potřeby sesynchronizujeme s videem, a po nastavení požadovaných atributů vyexportujeme do formátu QuickTime;
- výsledný soubor opět načteme do TextEditu, samozřejmě v kódování "Non-lossy ASCII";
- do nastavení jazyka – tag {language:} – zapíšeme češtinu (číslo 38), a text uložíme v kódování "Central European (Mac OS)";
- tento výsledek nyní můžeme importovat do aplikace QuickTime Player a uložit jako nový stream.
Snad jediná nevýhoda kódování "Non-lossy ASCII" spočívá v tom, že samozřejmě neodpovídají velikosti textu; používáme-li proto v aplikaci TitleLab její schopnost spočíst velikost největšího z titulků při daných atributech, je zapotřebí pro tento účel do ní načíst původní titulky, hodnoty si zapamatovat, a do titulků vygenerovaných v "Non-lossy ASCII" je pak dosadit ručně.
Titulky z DVD
Získat titulky z DVDisku není tak jednoduché: problém spočívá v tom, že na DVD nejsou titulky uloženy v textové, ale v grafické podobě. Každý titulek na DVD je uložen jako bitmapový obrázek patřičného rozměru, podporující průhlednost; při přehrávání jej pak přehrávač DVD zobrazí "přes" video. Výhodou tohoto přístupu samozřejmě je to, že nemohou nastat problémy s písmy, s kódování znaků a podobně (a nadto je možné do titulkových streamů ukládat obecnou grafiku); nevýhodou však je to, že nelze z DVD titulky získat jako text.
Jistě, můžeme titulky z DVD načíst jako bitové mapy, a na ně pak aplikovat nějaký program OCR, který z nich zpětně dekóduje původní texty. Pro Mac OS X aplikace, jež právě tohle dělá, samozřejmě existuje – jedná se o program D-Subtitler:
Mé zkušenosti s ním jsou neobyčejně špatné: neustále vyžaduje od uživatele korekce, mnohdy v neopravitelných případech (kdy kupříkladu samotná diakritická znaménka interpretuje jako samostatný znak, nezávislý na textu "pod nimi"); chcete-li však, vyzkoušejte jej sami...
Obsah seriálu (více o seriálu):
- Kam patří DVDisky? Na dno skříně!
- Než DVD do skříně uložíme...
- Kódování videa
- Aplikace pro kódování DVD
- Kontejner QuickTime
- Práce s titulky
- Jak na audio?
- Ostatní možnosti QuickTime
- Metadata Hootenanny