Ir para o conteúdo principal
SubtitleMatrix

Converter fins de linha

Texto e estiloCorrigir codificação e BOM
Ou cole o texto da legenda

Opções

Cada linha do arquivo termina com um caractere invisível (LF) ou com dois (CRLF). Reprodutores, editores e ferramentas de legendas leem os dois, então quase nunca é esse o motivo de um arquivo de legendas dar problema — os dois motivos para que seja são um pipeline de build ou um analisador rígido que rejeita o outro, e uma ferramenta de diff que mostra cada linha como alterada porque os fins diferem. LF é a escolha aqui por padrão porque é o que Unix, macOS e a web usam, e porque um arquivo que já o tem é deixado em paz. Escolher CRLF converte os dois tipos de fim existentes, então um arquivo com mistura sai consistente.

A taxa de quadros em que os tempos são contados. Nas páginas de formato é o que o MicroDVD precisa, porque ele guarda os tempos como números de quadro. Nas páginas de taxa de quadros é a taxa com que o arquivo foi cronometrado — a versão para a qual as legendas foram feitas — e a segunda caixa da página recebe a taxa do vídeo com que você vai usá-las. 23,976, 24, 25, 29,97, 30, 50, 59,94 e 60 são as comuns. Errar isso desloca toda a linha do tempo e, nas páginas de taxa de quadros, desloca por uma proporção em vez de por uma quantidade fixa.

Um fim de linha é o caractere ou par de caracteres que encerra uma linha, e há dois deles em uso comum. Sistemas Unix terminam a linha com um caractere, LF; o Windows termina com dois, CR e depois LF. Os dois parecem iguais na tela, e os dois são lidos do mesmo jeito pelos tocadores de legenda, e é por isso que esta é uma daquelas diferenças que fica invisível até algo depois na cadeia se importar.

O que se importa: controle de versão, em que cada linha de um arquivo pode parecer alterada porque os fins mudaram; scripts de build e pipelines que removem o último caractere de uma linha e ficam com um retorno de carro perdido quando esperavam uma quebra de linha; ferramentas que dividem um arquivo em LF e acabam com um retorno de carro grudado no último campo; e qualquer especificação de entrega que nomeie um dos dois. Um arquivo de legenda que precisa ser comparado com outro, ou concatenado com outro, é um arquivo cujos fins de linha fazem parte da interface dele.

A página é deliberadamente uniforme quanto ao que produz. Um arquivo com fins mistos — algumas linhas CRLF porque foi editado no Windows, algumas LF porque foi editado em qualquer outro lugar — sai inteiramente no estilo que você escolheu, porque a página normaliza os fins de linha para LF primeiro e depois aplica a sua escolha. Isso não é o mesmo que converter só os fins que já estão corretos e deixar o resto em paz: significa que a resposta a "qual é o estilo deste arquivo" deixa de depender de qual linha você olha, que é a única versão da resposta útil para um script.

Um retorno de carro sozinho, o fim de linha do Mac anterior ao OS X, é tratado junto com o resto. Ninguém mais o escolhe, mas arquivos ainda aparecem carregando-o, e um arquivo cujas linhas terminam assim é uma única linha para toda ferramenta que só procura LF. Normalizar primeiro faz esses arquivos saírem certos em vez de saírem como uma legenda gigantesca.

Os dois painéis desta página são o único lugar desta família em que a diferença é diretamente visível: um fim de linha é um caractere real, e um arquivo com linhas que parecem ter espaçamento duplo em um visualizador que não as esconde é um arquivo com CRLF. Todos os doze formatos são aceitos, porque um fim de linha é uma propriedade do texto e não do formato de legenda — uma transcrição simples também tem linhas. Nada é enviado, e o arquivo é lido, alterado e gravado no seu navegador.

Exemplos

Converter um arquivo Unix para fins de linha do Windows

Entrada

1
00:00:01,000 --> 00:00:02,000
The room is dark.

2
00:00:03,000 --> 00:00:04,000
A cold night.

Saída

1
00:00:01,000 --> 00:00:02,000
The room is dark.

2
00:00:03,000 --> 00:00:04,000
A cold night.

Todo fim de linha vira dois caracteres, inclusive a linha vazia entre as legendas — essa linha em branco também é um fim de linha, e uma conversão que a pulasse deixaria um arquivo cujo separador de legendas ainda é um LF sozinho. O texto esperado escreve os fins como pares CR LF para a contagem poder ser lida direto nele, e nada mais no arquivo se moveu.

Converter um arquivo do Windows de volta para fins Unix

Entrada

1
00:00:01,000 --> 00:00:02,000
The room is dark.

Saída

1
00:00:01,000 --> 00:00:02,000
The room is dark.

O sentido com consequência visível. Um arquivo que mantém um retorno de carro perdido aparece em alguns editores como tendo uma linha vazia depois de cada linha, e em um pipeline de shell como um retorno de carro grudado no fim do último campo. O vídeo, os tempos e o texto são idênticos nos dois arquivos; a diferença é um caractere no fim de cada linha, e este é o sentido que o remove.

Um arquivo editado em duas máquinas, tornado uniforme

Entrada

1
00:00:01,000 --> 00:00:02,000
Mixed endings.

2
00:00:03,000 --> 00:00:04,000
Second.

Saída

1
00:00:01,000 --> 00:00:02,000
Mixed endings.

2
00:00:03,000 --> 00:00:04,000
Second.

O mesmo arquivo tocado em duas máquinas: algumas linhas terminam em CRLF, outras em LF, e um separador de legendas está escrito de cada jeito. A saída é uniforme, e esse é o ponto — o arquivo não significa mais algo diferente dependendo de qual linha você lê. Um simples localizar e substituir erra este caso nos dois sentidos: deixa as linhas LF em paz indo em um sentido e produz um retorno de carro duplicado indo no outro.

Perguntas frequentes

Como descubro quais fins de linha um arquivo de legenda usa?

Na maioria dos editores, o estilo de fim de linha aparece na barra de status como LF, CRLF ou uma mistura. De um shell, um arquivo cujas linhas terminam em CRLF mostra um retorno de carro ao final de cada linha quando você o examina com uma ferramenta que torna caracteres de controle visíveis. O teste direto é olhar os bytes no fim de uma linha: um único 0A é LF e o par 0D 0A é CRLF.

O que esta página faz com um arquivo de legenda que tem fins de linha mistos?

Torna todos iguais. O arquivo é normalizado para LF primeiro e depois convertido para o estilo que você escolheu, então um arquivo em que algumas linhas terminam de um jeito e outras de outro sai completamente uniforme em vez de parcialmente convertido. Os arquivos chegam a esse estado por serem editados em mais de uma máquina, e a mistura é exatamente o que torna ilegível uma comparação contra outra cópia do arquivo.

Os fins de linha mudam a temporização das legendas ou o texto delas?

Não. As legendas, os números delas, os inícios e fins e as palavras dentro delas são todos idênticos antes e depois; o que muda é o caractere ou os dois caracteres no fim de cada linha. Um tocador lê os dois arquivos do mesmo jeito, e é por isso que esta é uma conversão que você pode fazer por exigência de entrega sem se preocupar com as legendas em si.

Devo converter os fins de linha da legenda para LF ou CRLF?

LF, a menos que algo à sua frente nomeie CRLF. É o que ferramentas Unix, a maioria dos pipelines de build e a especificação WebVTT esperam, e deixa o arquivo um byte mais curto por linha. Escolha CRLF quando uma especificação de entrega ou uma ferramenta exclusiva de Windows pedir, e note que a escolha é por arquivo e não global: um arquivo de legenda entregue sozinho pode diferir do resto do projeto.

Por que converter para CRLF também muda a linha em branco entre as legendas?

Porque essa linha em branco é uma linha, e o fim dela é um fim de linha como qualquer outro. O SRT separa legendas com uma linha vazia, então um arquivo convertido para CRLF cujo separador de legendas permanecesse um LF sozinho teria um fim de linha de tipo diferente no meio de um arquivo uniforme — que é precisamente a mistura que esta página existe para remover. O mesmo vale para a última linha do arquivo.

Retornos de carro de Mac antigos também são convertidos?

Sim. Um arquivo cujas linhas terminam com um retorno de carro sozinho, o estilo usado pelo Mac OS antes do OS X, é normalizado junto com todo o resto, então sai no estilo que você escolheu em vez de ficar como uma legenda longa. Não há opção para CR no painel porque ninguém mais escreve arquivos assim, mas arquivos que já estão assim são lidos e reescritos corretamente.

Ferramentas relacionadas