Ir para o conteúdo principal
SubtitleMatrix

Converter non-drop em drop-frame

Código de tempoCódigo de tempo drop-frame
Ou cole o texto da legenda

Opções

30 fps non-drop e 29,97 drop-frame escrevem o mesmo relógio de formas diferentes, e esta caixa escolhe em que direção o arquivo é lido e em que direção é gravado de volta. Um bloco a uma hora se lê 01:00:00,000 em um e 01:00:03,600 no outro — os dois estão a 3,6 segundos de distância por hora, não é erro de arredondamento. O título da página nomeia uma direção, e esta caixa oferece só essa, então o arquivo que você recebe é o da página. Nada do texto muda: nenhum bloco é retemporizado em relação ao vídeo, nenhuma taxa de quadros é convertida, e um bloco dentro do primeiro minuto de uma hora volta exatamente como entrou, porque ali nenhum rótulo de quadro é descartado.

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.

Esta página recodifica cada timecode de um arquivo de legendas de 30 fps non-drop-frame para 29,97 fps drop-frame. Solte o arquivo, execute, e o início e o fim de cada bloco voltam escritos do outro jeito. As palavras, a numeração dos blocos, a ordem e as quebras de linha são do arquivo e ficam exatamente como estavam.

As duas convenções escrevem o mesmo relógio de formas diferentes, e um arquivo precisa estar na convenção em que o resto do fluxo está. O drop-frame conta 30 rótulos por segundo mas pula dois deles a cada minuto, exceto a cada dez minutos, e é assim que acompanha o relógio de parede enquanto o non-drop vai ficando para trás. Em uma hora, os dois estão a 3,6 segundos de distância: 01:00:00,000 em non-drop é 01:00:03,600 em drop-frame. Essa diferença não é erro de arredondamento e não é arredondada para longe — ela cresce com o programa, chegando a 36 segundos em dez horas.

Nada se move no primeiro minuto de cada hora, porque nenhum rótulo é descartado ali e as duas convenções escrevem esse trecho de forma idêntica. Isso vale para relógios que já caem em um tique de quadro de 30 fps — 00:00:02,000 é um —, e um relógio entre dois tiques é movido para o mais próximo, em até 17 milissegundos. Ler um relógio como timecode sempre o encaixa na grade de quadros, em qualquer ponto do arquivo; dentro do primeiro minuto o encaixe é a única coisa que se move. Os tempos de um arquivo de legendas costumam vir de uma ferramenta com precisão de quadro e já estão na grade, e é por isso que esse trecho muitas vezes volta byte a byte.

Nenhum formato de legenda lido aqui tem um campo que registre em que convenção um relógio está — SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON e CSV só gravam um horário. Então esta página muda os números, e qual convenção eles significam continua sendo propriedade do seu fluxo, exatamente como era antes de o arquivo chegar. O que não está no arquivo não pode ser escrito nele, e fingir o contrário seria pior do que dizer isso.

Isto não é uma conversão de taxa de quadros. Um arquivo cronometrado para vídeo de 25 fps não é recronometrado aqui, e nada é esticado ou comprimido contra um vídeo: os tempos mantêm o espaçamento e só a forma de escrevê-los muda. Se o que você precisa é o outro trabalho — um arquivo de legendas cujo espaçamento siga outra taxa de quadros —, ele tem página própria. Nada é enviado também: o arquivo é lido e escrito dentro da aba do navegador, então material que não pode sair da máquina fica nela.

Exemplos

Um arquivo com cinco minutos

Entrada

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

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

Saída

1
00:05:00,333 --> 00:05:02,333
The room is dark.

2
00:10:00,600 --> 00:10:03,600
A cold night.

Os dois blocos não se deslocam pelo mesmo valor, e é isso que a operação faz: aos cinco minutos o drop-frame já pulou dez rótulos, então o relógio lê 333 ms mais tarde; aos dez minutos pulou dezoito, então lê 600 ms mais tarde. O texto e a numeração são do arquivo — só os dois valores de relógio de cada bloco são reescritos.

O mesmo arquivo em uma hora

Entrada

1
01:00:00,000 --> 01:00:03,000
An hour into the programme.

Saída

1
01:00:03,600 --> 01:00:06,600
An hour into the programme.

Em uma hora as duas convenções estão a 3,6 segundos de distância, o que dá 108 rótulos pulados. É este o número para comparar se você estiver conferindo a página: leia a primeira linha da saída e ela deve estar exatamente 3600 ms depois da primeira linha da entrada. As duas bordas do bloco se movem, então o bloco mantém a duração.

Um bloco dentro do primeiro minuto

Entrada

1
00:00:02,000 --> 00:00:04,000
Nothing to re-label yet.

2
00:05:00,000 --> 00:05:02,000
This one does move.

Saída

1
00:00:02,000 --> 00:00:04,000
Nothing to re-label yet.

2
00:05:00,333 --> 00:05:02,333
This one does move.

O primeiro bloco volta byte a byte e o segundo se desloca, na mesma execução. Durante o primeiro minuto de cada hora nenhum rótulo é descartado, então as duas convenções escrevem esses sessenta segundos de forma idêntica — e 00:00:02,000 já está em um tique de quadro de 30 fps, então nada nele muda. Um relógio entre dois tiques seria empurrado para o mais próximo, em até 17 ms, que é o mesmo encaixe que a página aplica em todo o arquivo. Ver um bloco intacto ao lado de um que se moveu é o resultado esperado aqui, não uma execução pela metade.

Perguntas frequentes

Qual é a diferença entre timecode drop-frame e non-drop-frame?

Os dois contam 30 rótulos por segundo, mas 29,97 fps não entrega 30 quadros por segundo — entrega cerca de 29,97, então um relógio que conta 30 rótulos por segundo perde terreno aos poucos contra o tempo real. O drop-frame corrige isso pulando dois rótulos no início de cada minuto, exceto a cada dez minutos: os rótulos são descartados mesmo sem os quadros serem. O non-drop mantém todos os rótulos e deriva. Escritos, os dois parecem o mesmo tipo de número; lidos contra o mesmo quadro, estão a 3,6 segundos de distância depois de uma hora e se afastam mais quanto mais o programa dura.

Por que um bloco de uma hora sai 3,6 segundos mais tarde na conversão para drop-frame?

Porque 3,6 segundos é a soma de uma hora de rótulos pulados: 2 rótulos por minuto em 54 dos 60 minutos, a 33,37 ms por rótulo, o que dá 108 rótulos ou 3600 ms por hora. A página não está acrescentando atraso — está escrevendo os mesmos quadros sob a outra convenção, e a outra convenção lê mais tarde naquele ponto do programa. Um bloco em 01:00:00,000 entra e sai como 01:00:03,600; as duas bordas se movem, então o bloco mantém a duração ao milissegundo.

Por que o primeiro minuto não muda na conversão para drop-frame?

Porque nenhum rótulo é descartado durante o primeiro minuto de cada hora, então drop-frame e non-drop-frame escrevem esse trecho de forma idêntica — 00:00:02,000 significa 60 quadros nas duas, e 60 quadros se escrevem do mesmo jeito em ambas. A deriva começa na primeira virada de minuto e então cresce. Há uma outra coisa que pode mover um tempo nesse trecho: ler um relógio como timecode o encaixa no tique de quadro mais próximo de 30 fps, então um valor entre dois tiques, como 00:00:02,010, volta como 00:00:02,000. Tempos copiados de uma ferramenta com precisão de quadro já estão na grade e não se movem.

Qual sentido eu preciso: non-drop para drop-frame ou o contrário?

Depende de onde os timecodes do seu arquivo foram lidos. Se você tirou os tempos de um player ou editor configurado em non-drop e o fluxo para o qual está entregando trabalha em drop-frame, esta é a página. Se o seu arquivo foi marcado contra um monitor drop-frame e a ferramenta seguinte espera non-drop, você quer a outra página, que move os relógios no sentido oposto pelos mesmos 3,6 segundos por hora. Um jeito rápido de distinguir: rode o arquivo aqui e compare um bloco — se o relógio da saída lê mais tarde que o da entrada, este era o sentido que ele precisava.

A conversão non-drop para drop-frame muda a taxa de quadros das minhas legendas?

Não. Nada é escalado e nada é esticado: um bloco de dois segundos continua com dois segundos, e o espaçamento entre blocos não muda, porque cada bloco se desloca por um valor que depende de onde está, não por uma razão. Um arquivo cronometrado para vídeo de 25 fps também não é convertido para 29,97 aqui — a caixa que recebe uma taxa de quadros existe porque o MicroDVD guarda os tempos como números de quadro e não pode ser lido sem uma. Converter o espaçamento de um arquivo de uma taxa para outra é outra operação, com página própria.

O arquivo diz em algum lugar que seus timecodes agora são drop-frame?

Não, e nenhum formato lido aqui conseguiria: SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON e CSV guardam um horário e nada sobre como ele foi contado. Isso já era verdade no arquivo que você soltou. Então a página muda os números e qual convenção eles significam continua sendo o que o seu fluxo diz que é — o mesmo arranjo de antes, agora com os números de acordo. Se uma ferramenta adiante tiver a própria configuração de drop-frame, é essa configuração que lê estes valores.

Ferramentas relacionadas