Converter drop-frame em non-drop
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 reescreve cada timecode de um arquivo de legendas de 29,97 fps drop-frame de volta para 30 fps non-drop-frame. O relógio recua por um valor fixo que cresce junto com o programa: nada dentro do primeiro minuto de cada hora, 3,6 segundos depois de uma hora, 36 segundos depois de dez horas. As palavras, a numeração dos blocos, a ordem e as quebras de linha são do arquivo e saem intactas.
O arquivo desta página foi marcado contra um monitor ou um deck que contava em drop-frame — o normal em material 29,97, porque o drop-frame é a convenção que acompanha o relógio de parede — e tudo o que vem depois lê relógios como non-drop. Lido assim, cada timecode do arquivo está grande demais por um valor que não para de crescer, então as legendas entram cedo, e cada vez mais cedo conforme o programa avança. Meia hora depois o erro é de 1,8 segundo e não para de crescer em ponto nenhum do arquivo. Por isso a correção não é um empurrãozinho: é a mesma recodificação aplicada a cada marca de tempo, com o tamanho do ajuste definido pela posição do bloco.
Ler um relógio como timecode significa encaixá-lo no tique de quadro mais próximo de 30 fps, e no drop-frame dois desses tiques não existem. O drop-frame pula os rótulos ;00 e ;01 no início de cada minuto, exceto a cada dez minutos — conta 00:00:59;28, 00:00:59;29 e então salta para 00:01:00;02 —, então um 00:01:00,000 que chega nomeia um instante que a convenção não tem como escrever. Ele é puxado para o último rótulo que ela consegue escrever, 00:00:59,933, 67 milissegundos antes. Isso é um limite real da aritmética, não uma tolerância, e é declarado na página em vez de escondido: em duas horas há 216 desses valores.
Um bloco que fica com menos de um quadro depois do encaixe não pode ser escrito, porque suas duas bordas caem no mesmo tique e um bloco cujo fim é igual ao início não é um bloco. Esses são descartados e contados no relatório de perdas acima, em vez de esticados silenciosamente até um quadro. Na prática isso só alcança material cortado quadro a quadro, mas a página não aposta que seja raro — ela informa a contagem, e um arquivo sem nenhum não reporta nada.
Nada é enviado. O arquivo é lido e reescrito dentro da aba do navegador e nunca sai da máquina, o que importa pelo mesmo motivo que importa em todas as outras páginas daqui: material sob obrigação de confidencialidade não pode ser entregue a um serviço de conversão, e esta página não pede.
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:04:59,667 --> 00:05:01,667
The room is dark.
2
00:09:59,400 --> 00:10:02,400
A cold night.
A correção não é um único número aplicado ao arquivo: aos cinco minutos o relógio recua 333 ms e aos dez minutos recua 600 ms, porque o drop-frame já descartou dez rótulos no primeiro bloco e dezoito no segundo. Cada bloco mantém a duração ao milissegundo, já que as duas bordas se deslocam pelo mesmo valor — isto é uma recodificação, não um deslocamento.
A mesma correção em uma hora
Entrada
1
01:00:03,600 --> 01:00:06,600
An hour into the programme.
Saída
1
01:00:00,000 --> 01:00:03,000
An hour into the programme.
Em uma hora, o 01:00:03,600 do drop-frame é o que o non-drop chama de 01:00:00,000 — 108 rótulos pulados, 3600 ms. É este o número para conferir a página: a primeira linha da saída deve ficar exatamente 3600 ms antes da primeira linha da entrada, e um arquivo que saiu de um deck drop-frame deve cair na hora redonda.
Um bloco dentro do primeiro minuto
Entrada
1
00:00:04,000 --> 00:00:06,000
Still early in the file.
2
00:05:00,000 --> 00:05:02,000
This one does move.
Saída
1
00:00:04,000 --> 00:00:06,000
Still early in the file.
2
00:04:59,667 --> 00:05:01,667
This one does move.
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 o primeiro bloco fica como estava. O segundo bloco, aos cinco minutos, se desloca. Um bloco intacto ao lado de um bloco deslocado é a saída correta deste arquivo, e não uma execução travada — a correção é zero no topo da hora e cresce a partir da primeira virada de minuto.
Perguntas frequentes
Por que as legendas saem mais cedo depois que o drop-frame vira non-drop?
Porque os relógios do arquivo eram maiores que os instantes que nomeiam. O non-drop conta 30 rótulos por segundo como se 29,97 fps entregasse 30 quadros por segundo, então vai aos poucos ficando à frente do tempo real; o drop-frame pula dois rótulos por minuto para acompanhá-lo. Um relógio lido num deck drop-frame e interpretado como non-drop aponta além de onde deveria, e a correção subtrai esse excesso: 333 ms aos cinco minutos, 3600 ms em uma hora, 36000 ms em dez horas. O valor é zero para todo relógio dentro do primeiro minuto de cada hora, então a menor correção que a página aplica é a da primeira virada de minuto, e nenhum relógio é empurrado para antes de 00:00:00.
O que acontece com um timecode drop-frame que não pode ser escrito?
Ele é puxado para o último rótulo possível. Todo minuto de descarte do drop-frame não tem ;00 nem ;01, então 00:01:00,000 e 00:01:00,010 não são relógios que a convenção consegue exibir: caem em 00:00:59,933, 67 milissegundos antes. Este é o único ponto da página em que a saída não é uma recodificação exata, e ele é limitado — dois rótulos por minuto de descarte, 216 valores em duas horas —, por isso a página o nomeia aqui em vez de deixar você encontrar a diferença.
Um bloco pode desaparecer ao converter drop-frame para non-drop?
Só um bloco menor que um quadro, 33,37 ms. Duas coisas podem empurrar um bloco para um único quadro: o encaixe descrito acima, em que um bloco de dez milissegundos como 00:01:00,000 a 00:01:00,010 tem as duas bordas puxadas para 00:00:59,933, e um bloco que já chegou menor que um quadro. Um bloco cujo início e fim são o mesmo instante não pode ser escrito, então ele é descartado e a contagem aparece no relatório de perdas acima da área de trabalho. Um arquivo sem nenhum não reporta nada, que é o caso normal.
Além dos relógios, a conversão de drop-frame para non-drop muda algo no arquivo?
Não. A numeração dos blocos, a ordem, o texto de cada linha, as quebras de linha duras dentro de um bloco e a contagem total de blocos são do arquivo e ficam como estavam. A página escreve os mesmos dois números por bloco, recodificados. Ela também não registra em lugar nenhum que os relógios agora são non-drop, porque nenhum dos formatos lidos aqui — SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON, CSV — tem um campo onde guardar isso, e o arquivo que você soltou também não dizia.
Que taxa de quadros a conversão de timecode aceita na caixa?
Qualquer taxa que a filmagem realmente tenha; ela não afeta esta conversão. Os 30 e os 29,97 do nome da página são as convenções de contagem escritas na string de timecode, não a taxa de quadros do vídeo, então nada aqui é escalado pelo número digitado. A caixa só é obrigatória porque o MicroDVD guarda os tempos como números de quadro em vez de relógios, e ler um arquivo MicroDVD é impossível sem saber a taxa.
Se eu rodar a conversão oposta sobre esta saída, recupero o arquivo original?
Sim, byte a byte, desde que nenhum timecode tenha caído na classe que o drop-frame não consegue escrever. As duas páginas são a mesma aritmética lida em sentidos opostos: esta subtrai um valor crescente, a outra devolve, e os valores são definidos pela posição de cada bloco, não por um deslocamento fixo. A exceção é o caso do encaixe — 00:01:00,000 que saiu como 00:00:59,933 volta como 00:00:59,933 —, e é a única classe de marca de tempo para a qual o par não é uma ida e volta.