# VSFilter (TextSub & VobSub)

## Abstrato

autor: Gabest
versão: 2.32
download: Projeto: guliverkli
categoria: Plugins de Subtítulo (fonte)
requisitos:

## Descrição

Os formatos dos subtítulos podem ser *.sub, *.srt, *.ssa, *.ass, etc. (ssa = Sub Station Alpha).

sintaxe: TextSub("C:\My Folder\MY subFile.XXX") ou VobSub("C:\My Folder\MY subFile.XXX")

exemplos:

    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")

bug: Você verá um retângulo pequeno onde os substitutos são postos (se olhar de perto). Mais info pode ser achada aqui.

observação: O pacote contém duas dll. O lançamento Unicode pode ser usado com W2k ou mais alto, o outro é para usuários do W98 (W98 não suporta unicode nativo).

## Mais informação (por Ernst Peché)

### SubRip

Os subtítulos são salvos em um DVD como pequenos quadros, não como texto - mas o filtro TextSub precisa de um arquivo de texto. Eles são todos armazenados no arquivo VOB, cada idioma com um fluxo separado e primeiro você tem que selecionar o fluxo desejado.
Então você converte estes quadros em texto claro com o OCR (reconhecimento de caráter óptico) desta ferramenta. Você tem que ensinar uma vez ao programa cada caractere (você pode salvar estes mapas para uso posterior) - trabalha realmente bem e você não gastará muito tempo.

Há muitos formatos de subtítulo, mas a maioria não contém informação do formato. Assim é uma boa escolha usar o formato "SSA", que contém o formato no arquivo também.

### VSFilter.DLL

Isto contém a função TextSub do AviSynth que basicamente pega um arquivo de texto como entrada e pinta os subtítulos desse arquivo no clipe de vídeo. Tem a seguinte sintaxe, bastante simples:

TextSub ("path\filename.ext"[charset [, fps]])

Então você só escreve

    TextSub ("your_file.ssa")

Além de SSA (Sub Station Alpha) TextSub pode tratar com SRT (SubRip), SUBSTITUTO (MicroDVD), PSB (PowerDivx), SMI (SAMI), ASS (Advanced Substation Alpha.

Para ativar o estilo padrão você pode usar um segundo arquivo nomeado por exemplo " your_file.ssa.style " (o primeiro arquivo + ".style") que deve estar na sintaxe SSA ou ASS e contém só informação de formato (só tem sentido ao não usar SSA/ASS).

A maioria dos comandos SSA é ignorada, pois eles não são realmente úteis aqui.

### SubResync

Se você quer ajustar o formato de seus subtítulos (cor, posição e assim por diante), pode fazer isso com esta ferramenta - claro que você pode editar o arquivo SSA se souber a sintaxe.

### Sintaxe SSA

Se você quer fixar o formato manualmente, aqui está a sintaxe SSA básica.

Você tem que obedecer estritamente a sintaxe e a linha ou o arquivo inteiro será rejeitado.

Essas entradas que definitivamente são usadas por TextSub são escritas em negrito.

Uma linha começa com um ";" (ponto-e-vírgula) é tratado como uma linha de comentário.

Cada linha começa com um descritor de linha que descreve o tipo de entrada.

Primeiro um pequeno exemplo:

    [Script Info]
    ; Este é um escrito Sub Station Alpha v4.
    ;
    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,,São Francisco, 1876
             Dialogue: Marked=0,0:07:23.37,0:07:24.96,Style1,Comment,0000,0000,0000,,Ele é impertinente.
             Dialogue: Marked=0,0:07:25.13,0:07:28.28,Style1,Comment,0000,0000,0000,,O país de simples pessoas mesquinhas.

Há (tipicamente três) seções no arquivo:

#### Script Info - (Informação do Escrito)

Esta seção contém cabeçalhos e informações gerais sobre o escrito.

A linha que diz "[Script Info]" deve ser a primeira linha em um escrito na v4.

- Script Type: Tipo de escrito - este é o formato do escrito SSA versão "V4.00". É usado por SSA para avisar se você estiver usando uma versão de SSA mais velha que a versão que criou o escrito. A versão ASS é "V4.00+".
- Collisions: Colisões - isto determina como são movidos os subtítulos, quando prevenindo automaticamente colisões em tela. Se a entrada diz "Normal" então SSA tentará posicionar os subtítulos na posição especificada pelas "margens". Porém, os subtítulos podem ser trocados verticalmente para prevenir colisões na tela. Com prevenção "normal" de colisão, os subtítulos "empilharão" um em cima do outro - mas eles sempre serão posicionados o mais perto da margem vertical (fundo) quanto possível - preenchendo "lacunas" em outros subtítulos se está disponível um grande o bastante. Se a entrada diz "Reverse" (contrário), os subtítulos serão trocados de baixo para cima para abrir espaço para subtítulos sobrepostos subseqüentes. Isso significa que os subtítulos podem ser lidos sempre de cima para baixo - mas também significa que o primeiro subtítulo pode aparecer na parte de cima da tela antes que os subtítulos sobrepostos subseqüentes apareça. Pode usar muita área da tela.

- PlayResY: Esta é a altura da tela usada.
- PlayResX: Esta é a largura da tela usada.
  Esta entrada é definitivamente usada e escala o texto resultante.
- Timer: Cronômetro - esta é a Velocidade do Cronômetro para o escrito, como uma porcentagem. Esta entrada parece não ser usada, ex. "100.0000" é exatamente 100%. Tem quatro dígitos que seguem o ponto decimal. A velocidade do cronômetro é um multiplicador de tempo aplicado ao relógio do SSA para esticar ou comprimir a duração de um escrito. Uma velocidade maior que 100% reduzirá a duração global e significa que os subtítulos aparecerão progressivamente cada vez mais cedo. Uma velocidade menor que 100% aumentará a duração global do escrito significando que os subtítulos aparecerão progressivamente depois e depois (como um tempo de rampa positivo). O alongar ou o comprimir só acontece durante o playback do escrito - este valor não muda a cronometragem atual para cada evento listado no escrito. Confira o guia do usuário SSA se quiser saber por que "Velocidade de Cronômetro" é mais poderosa que "Tempo de Rampa", embora ambos alcançam o mesmo resultado.

#### v4 Styles

Esta seção contém todas as definições de Estilo requeridas pelo escrito. Cada "Style" usado pelos subtítulos no manuscrito deve ser definido aqui.

Qualquer das colocações no "Style", (salvo tipo e profundidade de "shadow/outline", sombra/contorno) pode ser anulada por códigos de controle no texto do subtítulo.

Os campos que aparecem em cada linha de definição de Estilo são nomeados em uma linha especial com o "Format" do tipo da linha:. A linha Format tem que aparecer antes de qualquer Style - porque define como SSA interpretará as linhas de definição de Estilo. Os nomes dos campos listados na linha de formato devem ser escritos corretamente! Os campos são como segue:

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

A linha de formato permite acrescentar novos campos ao formato do escrito no futuro e ainda permite versões velhas do software para ler os campos que reconhece - até mesmo se a ordem de campo é mudada.

- Name: O nome do Estilo. Caso sensível. Não pode incluir vírgulas.
- Fontname: O nome da fonte, como o usado pelo Windows. Caso-sensível.
- Fontsize: O tamanho da fonte
- PrimaryColour: Um longo valor inteiro BGR (azul-verde-vermelho). A ordem do byte no equivalente hexadecimal deste número é BBGGRR
  Esta é a cor que um subtítulo aparecerá regularmente.
- SecondaryColour. Um valor inteiro longo BGR (azul-verde-vermelho). A ordem do byte no equivalente hexadecimal deste número é BBGGRR
  Esta cor pode ser usada em vez da Primária quando um subtítulo é automaticamente trocado para prevenir uma colisão em tela e distinguir os subtítulos diferentes.
- TertiaryColour. Um valor inteiro longo BGR (azul-verde-vermelho). A ordem do byte no equivalente hexadecimal deste número é BBGGRR
  Esta cor poderá ser usada em vez da Primária ou Secundária quando um subtítulo é trocado para prevenir uma colisão em tela e distinguir os subtítulos diferentes, automaticamente.
- BackColour. Esta é a cor do contorno ou sombra do subtítulo, se é usada. Um longo valor inteiro BGR (azul-verde-vermelho). A ordem do byte no equivalente hexadecimal deste número é BBGGRR.
- Bold. Isto define se o texto é negrito (true) ou não (false). -1 é True, 0 é False. Este é independente do atributo Itálico - você pode ter texto negrito e itálico.
- Italic. Isto define se o texto é itálico (true) ou não (false). -1 é True, 0 é False. Este é independente do atributo negrito - você você pode ter texto negrito e itálico.
- BorderStyle. 1=Contorno + sombra inclinada , 3=Caixa Opaca
- Outline. Se BorderStyle é 1, então especifica a largura do contorno ao redor do texto, em píxeis.
  Valores podem ser 0, 1, 2, 3 ou 4.
- Shadow. Se BorderStyle é 1, então especifica a profundidade da inclinação da sombra atrás do texto, em píxeis. Valores podem ser 0, 1, 2, 3 ou 4. A inclinação da sombra sempre é usada além de um esboço - SSA forçará um contorno de 1 píxel se nenhuma largura de contorno for determinada.

- Alignment. Fixa como o texto é "justificado" dentro das margens esq/dir na tela e também a posição vertical. Valores podem ser 1=Esquerda, 2=Centrada, 3=Direita. Some 4 ao valor para um "Toptitle". Some 8 ao valor para um "Midtitle".

  ex. 5 = título do topo justificado à esquerda

- MarginL. Define a Margem Esquerda em píxeis. É a distância da extremidade à esquerda da tela. As três margens em tela (MarginL, MarginR, MarginV) definem as áreas nas quais o texto de subtítulo será exibido.
- MarginR. Isto define a Margem Direita em píxeis. É a distância da extremidade à direita da tela. As três margens em tela (MarginL, MarginR, MarginV) definem as áreas nas quais o texto de subtítulo será exibido.
- MarginV. Define a Margem Esquerda vertical em píxeis.
  Para um subtítulo, é a distância do fundo da tela.
  Para um título de topo, é a distância do topo da tela.
  Para um título central, é ignorado o valor - o texto será centrado verticalmente
- AlphaLevel. Define a transparência do texto. SSA ainda não usa isto, mas TextSub o usa.
- Encoding - Codificando. Isto especifica a fonte dos caracteres fixados ou de codificação e em instalações de Windows multi-línguas provê acesso aos caracteres usados em mais de um idioma. Normalmente é 0 (zero) para Windows inglês (Ocidental, ANSI).

#### Eventos

Estes contêm o texto de subtítulo, suas cronometragens e como deve ser exibido. Todas as características são suportadas por TextSub.
Os campos que aparecem em cada linha de Diálogo (Dialogue) estão definidos por um Formato: linha que deve aparecer antes de qualquer evento na seção. A linha de formato especifica como SSA interpretará todas as linhas de Evento (Event) seguintes. Os nomes de campo devem ser digitados corretamente como segue:

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

O último campo sempre será o campo do Texto, de forma que pode conter vírgulas. A linha de formato permite acrescentar novos campos ao formato do escrito no futuro e ainda permite versões antigas do software para ler os campos que reconhece - até mesmo se a ordem dos campos é mudada.

- Marked
  Marked=0 significa que a linha não é mostrada como "marked" (marcada) no SSA.
  Marked=1 significa que a linha é mostrada como "marked" (marcada) SSA.
- Start
  Start Time of the Event - Tempo do Início do Evento, no formato 0:00:00:00 = Horas : Minutos : Segundos : centésimos. Este é o tempo decorrido durante o playback do escrito no qual o texto aparecerá na tela. Note que há um único dígito durante as horas!
- End
  End Time of the Event - Tempo do Fim do Evento, no formato 0:00:00:00 = Horas : Minutos : Segundos : centésimos. Este é o tempo decorrido durante o playback do escrito no qual o texto desaparecerá da tela. Note que há um único dígito durante as horas!
- Style
  Nome do Estilo. Se for "Default" (padrão), então seu próprio estilo *Default será substituído.
  Porém, o estilo padrão usado pelo autor do escrito é armazenado no escrito embora SSA ignore isso - assim se você quiser usá-lo, a informação está lá - você pode até mesmo mudar o Name na linha de definição do Style, de forma que aparecerá na lista dos estilos de escrito.
- Name
  Nome do caractere. Este é o nome do caractere que fala o diálogo. Só é para informação, para fazer o escrito é mais fácil seguir ao editar/temporizar.
- MarginL
  Para ativar Margem Esquerda. Os valores são em píxeis. Todos os zeros significam as margens padrões definidas pelo estilo que são usadas.
- MarginR
  Para ativar Margem Direita. Os valores são em píxeis. Todos os zeros significam as margens padrões definidas pelo estilo que são usadas.
- MarginV
  Para ativar Margem de Fundo. Os valores são em píxeis. Todos os zeros significam as margens padrões definidas pelo estilo que são usadas.
- Effect
  Efeito de Transição. Pode estar vazio ou conter informação para um dos três efeitos de transição implementado no SSA v4.x
  Os nomes de efeito são caso sensível e têm que aparecer exatamente como mostrado. Os nomes de efeito não têm aspas em volta.
  `
  "Scroll up;y1;y2;delay[;fadeawayheight]"
  "Scroll down;y1;y2;delay[;fadeawayheight]"
  significa que o texto/figura rolarão acima/abaixo na tela. Os parâmetros depois de "Scroll up", Rolar para Cima, são separados por ponto-e-vírgulas.`
  Os valores de y1 e y2 definem na tela uma região vertical na qual rolará o texto. Os valores são em píxeis e não importa qual valor (topo ou fundo) vem primeiro. Se os valores são zeros, o texto rolará para cima em tela cheia.
  O valor de atraso pode ser um número de 1 a 100 e reduz a velocidade para rolar abaixo - zero significa nenhum retardo e a rolagem será tão rápida quanto possível.
  Os parâmetros fadeawayheight podem ser usados para fazer o texto transparente ao rolar para os lados.
  `
  "Banner;delay"
  "Banner;delay[;lefttoright;fadeawaywidth]"
  significa que texto será forçado a uma única linha, sem levar em conta o comprimento e o rolar da direita para a esquerda na tela.`
  lefttoright 0 ou 1. Este campo é opcional. O valor padrão é 0 para volta compatível. O valor de retardo pode ser um número de 1 a 100 e reduz a velocidade da rolagem - zero significa nenhum retardo e o rolar será tão rápido quanto possível.
  Os parâmetros fadeawayheight podem ser usados para fazer o texto transparente ao rolar para os lados.

`$Date: 2006/03/26 18:11:54 $ Portuguese translation by RoLon`