# VSFilter (TextSub & VobSub)

## Přehled

autor: Gabest
verze: 2.32
stáhnout: Project: guliverkli
kategorie: Pluginy pro titulky
požadavky:

## Popis

Formát titulků může být *.sub, *.srt, *.ssa, *.ass, atd. (ssa = Sub Station Alpha).

syntaxe: TextSub("C:\My Folder\MY subFile.XXX") nebo VobSub("C:\My Folder\MY subFile.XXX")

příklady:

    mpeg2source("F:\From_hell\from_hell.d2v")
    VobSub("F:\From_hell\VTS_01_0.sub")

    mpeg2source("F:\From_hell\from_hell.d2v")
    TextSub("F:\From_hell\fh_ned.srt")

chyba: Uvidíte malý obdélník v místě vložení titulků (pokud se podíváte blíže). Více informací najdete zde.

poznámka: Balík obsahuje dva soubory dll. Unicode vydání může být použito ve W2k nebo vyšším systému, ten druhý je pro uživatele W98 (W98 nepodporuje nativně unicode).

## Více informací (od Ernst Peché)

### SubRip

Titulky na DVD jsou uloženy jako malé obrázky, ne jako text - ale TextSub filtr potřebuje textový soubor.
To vše je uloženo uvnitř VOB souboru, každý jazyk v odděleném streamu, a vy musíte nejdříve zvolit požadovaný stream.
Pak převeďte tyto obrázky na plain text pomocí OCR (optical character recognitionoptické rozpoznávání znaků) tohoto nástroje (SubRip).
Musíte program jednou naučit každý znak (můžete pak uložit tyto mapy pro pozdější použití) - pracuje to opravdu dobře, takže tím neztratíte moc času.

Existuje řada formátů titulků, ale většina neobsahuje formátovací informace.
Takže je dobré zvolit použití "SSA" formátu, který v souboru obsahuje také formátování.

### VSFilter.DLL

Tento obsahuje funkci AviSynthu `TextSub` , která v podstatě bere textový soubor jako vstup a píše titulky z tohoto souboru do video klipu. Má následující docela jednoducho syntaxi:
`TextSub` ("path\filename.ext" [, charset [, fps]])
Takže obvykle jen napíšete

    TextSub ("váš_soubor.ssa")

Kromě SSA (Sub Station Alpha) TextSub může pracovat s SRT (SubRip), SUB (MicroDVD), PSB (PowerDivx), SMI (SAMI), ASS (Advanced Substation Alpha).

Pro přepsání výchozího stylu můžete použít druhý soubor nazvaný např. "váš_soubor.ssa.style" (první soubor + ".style") který musí být ve formátu SSA nebo ASS syntaxe a obsahuje jen formátovací informaci (má smysl jen když se NEpoužívá SSA/ASS).

Většina SSA příkazů je ignorována, protože zde opravdu nejsou užitečné.

### SubResync

Pokud chcete upravit formát vašich titulků (barvu, pozici atd.) můžete to udělat pomocí tohoto nástroje - samozřejmě můžete prostě upravit SSA sobor pokud znáte syntaxi.

### SSA syntaxe

Pokud chcete nastavit formát ručně, zde je základní SSA syntaxe.
Musíte přísně dodržovat syntaxi, jinak bude řádek nebo celý soubor odmítnutý.
Ty údaje, které jsou definitivně použity v TextSub jsou psány tučně.

S řádkem začínajícím ";" (středníkem) je zacházeno jako s řádkem komentáře.

Každý řádek začíná popisovačem (klíčovým slovem) řádku, který popisuje typ údajů.

Nejdříve malý příklad:

    [Script Info]
    ; Toto je Sub Station Alpha v4 skript.
    ;
    ScriptType: v4.00
    Collisions: Normal
    PlayResX: 720
    PlayResY: 576
    Timer: 100.0000

    [V4 Styles]
             Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline,
    		 \  Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
             Style: Style1,Arial,32,&Hffffff,&H000000,&H404040,&H404040,0,0,1,2,0,2,30,30,40,0,0
             Style: Default,Arial,18,&Hffffff,&H00ffff,&H000000,&H000000,-1,0,1,2,3,2,20,20,20,0,1

    [Events]
             Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
             Dialogue: Marked=0,0:02:12.69,0:02:13.92,Style1,Comment,0000,0000,0000,,San Francisco, 1876
             Dialogue: Marked=0,0:07:23.37,0:07:24.96,Style1,Comment,0000,0000,0000,,Er ist unverschämt.
             Dialogue: Marked=0,0:07:25.13,0:07:28.28,Style1,Comment,0000,0000,0000,,So ist es hier.\NDas Land einfacher Krämerseelen.

V souboru jsou (obvykle tři) části:

#### Script Info

Tato část obsahuje hlavičky a obecné informace o skriptu.
Řádek, který říká "[Script Info]" musí být prvním řádkem v4 skriptu.

- Script Type: Toto je verze formátu SSA skriptu např. "V4.00". Je použitý v SSA , aby upozornil pokud používáte starší verzi SSA než je verze, která vytvořila skript. ASS verze je "V4.00+".
- Collisions: Toto určuje jak je s titulky hýbáno, když se automaticky brání kolizím na obrazovce. Pokud údaje říkají "Normal" pak se SSA pokusí umístit titulky do pozice zadané pomocí "margins". Nicméně, titulky mohou být posunuty svisle, aby se zabránilo kolizím na obrazovce. S ochranou proti kolizím "normal" , budou titulky "stack up" - hromaděny jeden nad druhým - ale budou vždy umístěny tak blízko vertikálnímu (spodnímu) okraji jak je to možné - a budou vyplňovat mezery "gaps" jiných titulků, pokud je dostatek místa. Pokud údaje říkají "Reverse" pak budou titulky posunuty nahoru pro vytvoření místa pro následné překrytí titulků. To znamená, že titulky mohou být téměř vždy čteny od shora dolů - ale také to znamená, že první titulek se může objevit napůl nad obrazovkou před tím než se objeví následné překrývající titulky. Může to využít hodně plochy obrazovky.

- PlayResY: Toto je výška využité obrazovky.
- PlayResX: Toto je využitá šířka obrazovky.
  Tento údaj je definitivně použit a zvětšuje (zmenšuje) výsledný text.
- Timer: Toto je Timer Speed (časovač rychlosti) pro skript, v procentech. Tento údaj se zdá, že NENÍ použit.
  např. "100.0000" je přesně 100%. Má čtyři cifry následované desetinnou tečkou. Timer speed je násobič času použitý na SSA hodiny pro protažení nebo zkrácení skriptu. Rychlost větší než 100% zkrátí celkovou délku, a znamená, že titulky se budou progresivně objevovat dříve a dříve. Rychlost menší než 100% zvětší celkovou délku skriptu a znamená to že titulky se budou objevovat později a později (jako pozitivní rampa času). Protažení nebo zkrácení nastane jen při přehrávání skriptu - tato hodnota nemění skutečné časování pro každý případ uvedený ve skriptu. Prověřte si to v SSA příručce, pokud chcete vědět proč je "Timer Speed" výkonnější než "Ramp Time", dokonce přesto, že oba dosahují stejného výsledku.

#### v4 Styles

Tato část obsahuje všechny styly Style definicí vyžadovaných skriptem. Každý "Style" použitý titulky ve skriptu by měl být definován zde.

Jakákoli nastavení ve Style, (kromě typu shadow/outline a depth) mohou být přepsána řídícími kódy v textu titulků.

Pole, která se objevují v každém řádku definice Style jsou jmenné speciální řádky s typem řádku "Format:". Formátový řádek se musí objevit před jakýmkoli Style - protože definuje jak bude SSA interpretovat definující řádky pro Style. Jména polí uvedená ve formátovém řádku musí být správně zapsána! Pole jsou takováto:

`Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding`

Formátový řádek umožňuje v budoucnu přidat nové pole do formátu skriptu, a ještě umožňuje starým verzím softwaru číst pole, která rozpozná - dokonce i když je změněno pořadí polí.

- Name: Jméno stylu Style. Rozlišuje velká a malá písmena. Nelze používat čárky mezi slovy.
- Fontname: Jméno fontu použitého ve Windows. Rozlišuje velká a malá písmena.
- Fontsize:
- PrimaryColour: Dlouhá celočíselná BGR (blue-green-red , modrá-zelená-červená) hodnota, tj. bajtové pořadí v hexadecimálním ekvivalentu tohoto pořadí je BBGGRR
  Je to barva, ve které se titulky normálně objeví.
- SecondaryColour. Dlouhá celočíselná BGR (blue-green-red , modrá-zelená-červená) hodnota, tj. bajtové pořadí v hexadecimálním ekvivalentu tohoto pořadí je BBGGRR
  Tato barva může být použita místo Primary colour, když je titulek automaticky posunut, aby se zabránilo kolizím na obrazovce, pro odlišení jiných titulků.
- TertiaryColour. Dlouhá celočíselná BGR (blue-green-red , modrá-zelená-červená) hodnota, tj. bajtové pořadí v hexadecimálním ekvivalentu tohoto pořadí je BBGGRR
  Tato barva může být použita místo Primary nebo Secondary colour , když je titulek automaticky posunut, aby se zabránilo kolizím na obrazovce, pro odlišení jiných titulků.
- BackColour. Toto je barva obrysu nebo stínu titulků, pokud jsou použity. Dlouhá celočíselná BGR (blue-green-red , modrá-zelená-červená) hodnota, tj. bajtové pořadí v hexadecimálním ekvivalentu tohoto pořadí je BBGGRR.
- Bold. Toto definuje zda je text tučný (true) nebo ne (false). -1 je True, 0 je False. Toto je nezávislé na atributu kurzívy Italic - můžete mít text, který je jak tučný tak i kurzíva.
- Italic. Toto definuje zda je text psaný kurzívou (true) nebo ne (false). -1 je True, 0 je False. Toto je nezávislé na atributu tučného písma Bold - můžete mít text, který je jak tučný tak i kurzíva.
- BorderStyle. 1=Obrys + Stín, 3=Neprůhledný box
- Outline. Pokud je BorderStyle = 1, pak toto zadává šířku obrysové čáry kolem textu, v pixelech.
  Hodnoty mohou být 0, 1, 2, 3 nebo 4.
- Shadow. Pokud je BorderStyle = 1, pak toto zadává hloubku stínu za textem, v pixelech. Hodnoty mohou být 0, 1, 2, 3 nebo 4. Stín je vždy použit jako doplněk k obrysové čáře - SSA vynutí obrysovou čáru 1 pixel pokud není zadaná žádná její šířka.
- Alignment. Toto nastavuje jak je text "zarovnaný" mezi levým a pravým okraje obrazu, a také jeho vertikální umístění. Hodnoty mohou být 1=Vlevo, 2=Na střed, 3=Vpravo. Přidejte 4 k hodnotě pro "Toptitle" - horní titulek. Přidejte 8 k hodnotě pro "Midtitle" - středový titulek.
  Např. 5 = vlevo zarovnaný horní titulek
- MarginL. Toto definuje levý okraj v pixelech. Je to vzdálenost od levé hrany obrazu. Tři okraje obrazu (MarginL, MarginR, MarginV) definují oblasti ve kterých bude text titulků zobrazen.
- MarginR. Toto definuje pravý okraj v pixelech. Je to vzdálenost od levé hrany obrazu. Tři okraje obrazu (MarginL, MarginR, MarginV) definují oblasti ve kterých bude text titulků zobrazen.
- MarginV. Toto definuje vertikální levý okraj v pixelech.
  Pro subtitle - spodní titulek je to vzdálenost od spodního okraje obrazu.
  Pro toptitle - horní titulek je to vzdálenost od horního okraje obrazu.
  Pro midtitle - střední titulek, je hodnota ignorována - text bude vertikálně vystředěn.
- AlphaLevel. Toto definuje průhlednost textu. SSA to zatím nepoužívají, ale TextSub to používá.
- Encoding. Toto zadává sadu znaků fontu nebo enkódování a na vícejazyčných instalacích Windows to poskytuje přístup ke znakům použitým ve více než jednom jazyku. Obvykle je to 0 (nula) pro English (Western, ANSI) Windows.

#### Events

Toto obsahuje text titulků, jejich časování, a jak by měli být zobrazeny. Celkem všechny funkce jsou podporovány v TextSub.
Pole, která se objeví v každém řádku Dialogu jsou definována Formátem: řádek, který se musí objevit před jakýmikoli dalšími událostmi. Formátový řádek zadává jak SSA bude interpretovat všechny následující Event řádky (řádky vlastního dění - vlastních titulků). Názvy polí musí být správně zapsány (vyhláskovány), a jsou následující:

`Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text`

Posledním polem bude vždy pole Text, takže může obsahovat čárky. Formátový řádek umožní v budoucnu přidat pole do skriptového formátu, a ještě umožňuje starým verzím softwaru číst pole, která rozpozná - dokonce i když je pořadí polí změněno.

- Marked
  Marked=0 znamená, že řádek není zobrazen jako "Marked" - označený v SSA.
  Marked=1 znamená , že řádek je zobrazen jako "Marked" - označený v SSA.
- Start
  Počáteční čas Event - vlastních titulků, ve formátu 0:00:00:00 t.j. Hod:Min:Sek:setiny. Je to uplynulý čas při přehrávání skriptu, ve kterém se text objeví v obrazu. Všimněte si, že je jen jedna cifra pro hodiny!
- End
  Koncový čas pro Event - vlastních titulků, ve formátu 0:00:00:00 t.j. Hod:Min:Sek:setiny. Je to uplynulý čas při přehrávání skriptu, ve kterém text zmizí z obrazu. Všimněte si, že je jen jedna cifra pro hodiny!
- Style
  Název stylu. Pokud je to "Default" - výchozí, pak bude dosazen váš vlastní *Výchozí styl.
  Nicméně, výchozí styl použitý autorem skriptu IS uložený ve skriptu bude i přesto SSA ignorovat - takže pokud ho chcete použít, informace je taková - mohli by jste dokonce změnit jméno v řádku definice stylu, tak, že se objeví v seznamu "script" stylů.
- Name
  Jméno herce. Je to jméno herce, který vede dialog. Je to jen pro informaci, aby pak bylo jednodušší skript upravovat/načasovat.
- MarginL
  4-ciferné nadřazení (přepsání) levého okraje. Hodnoty jsou v pixelech. Samé nuly znamenají výchozí okraje definované použitým stylem.
- MarginR
  4-ciferné nadřazení (přepsání) pravého okraje. Hodnoty jsou v pixelech. Samé nuly znamenají výchozí okraje definované použitým stylem.
- MarginV
  4-ciferné nadřazení (přepsání) spodního okraje. Hodnoty jsou v pixelech. Samé nuly znamenají výchozí okraje definované použitým stylem.
- Effect
  Přechodový efekt. Toto je buď prázdné, nebo obsahuje informaci pro jeden ze tří přechodových efektů implementovaných v SSA v4.x
  Názvy efektů rozlišují velká a malá písmena a musí se objevit přesně jak je ukázáno. Názvy efektů nemají kolem sebe uvozovky.
  `
  "Scroll up;y1;y2;delay[;fadeawayheight]"
  "Scroll down;y1;y2;delay[;fadeawayheight]"
  ` znamená, že text/obrázek bude rolován nahoru/dolů v obrazu. Parametry za slovy "Scroll up" jsou oddělené středníky.
  Hodnoty y1 a y2 definují vertikální region v obrazu ve kterém bude text rolován. Hodnoty jsou v pixelech, a je jedno, která hodnota (horní nebo spodní) bude první. Pokud jsou hodnoty nulové, pak bude text rolovat nahoru přes celou výšku obrazu.
  Hodnota zpoždění může být číslo od 1 do 100, a zpomaluje rolování - nula znamená žádné zpoždění a rolování bude tak rychlé jak jen to bude možné.
  Parametry fadeawayheight mohou být použity pro vytvoření rolovaného textu na stranách průhledného.
  `
  "Banner;delay"
  "Banner;delay[;lefttoright;fadeawaywidth]"
  ` znamená že text bude vynucen do jednoho řádku, bez ohledu na délku, a rolován zprava doleva napříč obrazem.
  lefttoright 0 nebo 1. Toto pole je volitelné. Výchozí hodnota je 0 , aby byl zpětně kompatibilní.
  Hodnota zpoždění může být číslo od 1 do 100, a zpomaluje rolování - nula znamená žádné zpoždění a rolování bude tak rychlé jak jen to bude možné.
  Parametry fadeawaywidth mohou být použity pro vytvoření rolovaného textu na stranách průhledného.

`$English Date: 2004/08/17 20:31:19 $`

`$Český překlad:7.5.2009`