Converter TTML para SMI
Ou cole o texto da legenda
O que esta conversão altera
2 coisas são descartadas ou precisam de uma decisão
- Estilo
todo o estilo exceto negrito e itálico (cor, contorno, sombra, margens)
- Conteúdo específico do formato
conteúdo que o formato de origem guarda fora de seus blocos (blocos que não são cue, texto de cabeçalho, configurações por bloco, eventos comentados) — o formato de destino não tem lugar para ele
Esta lista vem da matriz de capacidades destes dois formatos, não do arquivo específico que você carregou. Um arquivo específico pode perder mais se usar recursos que o formato permite mas a matriz não modela.
Esta página converte TTML em SMI. Arraste um arquivo ou cole o texto e receba a versão SMI de volta. A conversão roda inteiramente no navegador, então nada é enviado e não há cadastro.
O SAMI troca a tela por <SYNC Start=…> e não tem campo de fim, então cada cue do TTML gera dois blocos: um com <P> e o texto no início, e outro com <P> no fim, que apaga a legenda. Os milissegundos são copiados exatamente, como Start=1000 e Start=3500.
O que se perde é a aparência global: a declaração XML, a tabela <styling> com fonte, tamanho, contorno e margens, a tabela <layout> com as regiões, os metadados e as referências. A ênfase dentro do parágrafo é mantida como tag no texto: <i>, <b>, <u> e <font color="…">. A fila processa vários arquivos e o download final é um ZIP.
Exemplos
Um arquivo TTML típico, convertido para SMI
Entrada
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
</layout>
</head>
<body>
<div>
<p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
</div>
</body>
</tt>
Saída
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello <i>there</i>.
<SYNC Start=3500>
<P>
<SYNC Start=3500>
<P>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P>
</BODY>
</SAMI>
Perdido nesta saída: estilos e conteúdo específico do formato. O resto corresponde linha a linha.
A mesma conversão em uma entrada problemática
Entrada
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
ttp:frameRate="25" xml:lang="en">
<body>
<div>
<p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
<p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
<p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
<p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom & Jerry.</p>
</div>
</body>
</tt>
Saída
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1500>
<P>Loaded from an offset and a duration.
<SYNC Start=3500>
<P>
<SYNC Start=4000>
<P>A coarser clock spelling.
<SYNC Start=6500>
<P>
<SYNC Start=7000>
<P>Frames, at 25fps.
<SYNC Start=8480>
<P>
<SYNC Start=9000>
<P><font color="#FF0000">Half-open</font> and Tom & Jerry.
<SYNC Start=11000>
<P>
</BODY>
</SAMI>
É o tipo de dano que arquivos reais trazem — fins de linha misturados, espaços soltos, campos vazios. Compare com o exemplo organizado acima para ver o que o leitor tolera.
Perguntas frequentes
Por que cada cue do TTML vira dois blocos SYNC no SMI?
Porque o SAMI não tem tempo de fim: um <SYNC Start=1000> mostra o texto em <P>, e outro <SYNC Start=3500> traz <P> para limpar a tela. É assim que o fim do cue do TTML é representado.
As tags de ênfase do TTML aparecem dentro do <P> do SMI?
Aparecem: <i>there</i> continua em itálico, e <b>, <u> e <font color="…"> seguem o mesmo caminho. O navegador que renderiza o SAMI aplica essas tags, mas a fonte e o tamanho da tabela <styling> não vêm junto.
O atributo region do TTML tem equivalente no SMI?
Não. O SMI não aceita posição por cue; a posição vem da folha de estilo da página que incorpora a legenda. Por isso o region e o style apontados pelo <p> são descartados.
O SMI gerado copia os milissegundos do TTML sem arredondar?
Copia: 00:00:04.126 vira Start=4126 e 00:00:08.480 vira Start=8480. O SAMI usa milissegundos inteiros no atributo, então não há arredondamento entre os dois formatos.
Duas linhas de um parágrafo TTML continuam juntas no SMI?
Continuam, com um <br> entre elas dentro do mesmo <P>. O SAMI escreve quebra dura com <br> e mantém o par visível ao mesmo tempo, sem abrir um SYNC extra.