Frames para timecode
A 30 frames por segundo, o frame 1800 é exatamente um minuto, escrito 00:01:00:00, e o frame zero é sempre 00:00:00:00. Cole o rótulo direto na folha de marcações ou na revisão de legendas. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Frames
- 1.800
- Fps
- 30
- Horas
- 0
- Minutos
- 1
- Segundos
- 0
- Quadros
- 0
O índice de frame é o relógio nativo de todo editor não linear, fazenda de render e ferramenta de legendas, mas as pessoas leem horas, minutos, segundos e frames restantes. Este conversor de frames para timecode aceita uma contagem inteira não negativa e uma taxa positiva em frames por segundo, e devolve esses quatro componentes mais um rótulo HH:MM:SS:FF preenchido com zeros. A contagem é de base zero: o frame zero é 00:00:00:00 e, a trinta frames por segundo, mil e oitocentos frames equivalem exatamente a um minuto.
Como uma contagem de frames vira HH:MM:SS:FF
O timecode non-drop rotula cada imagem com horas, minutos, segundos e um dígito de frame dentro do segundo atual. A uma taxa positiva constante fps, cada segundo completo contém exatamente essa quantidade de frames, cada minuto contém sessenta segundos e cada hora contém três mil e seiscentos segundos. Partindo de uma contagem total N, o dígito de frame restante é o resto de N dividido por fps, e o relógio de segundos inteiros é o quociente inteiro piso de N por fps.
Esses segundos inteiros se partem em seguida com a aritmética usual de relógio: os segundos são o quociente módulo sessenta, os minutos são o quociente seguinte módulo sessenta e as horas são o que sobra. O frame zero é sempre 00:00:00:00. A vinte e quatro frames por segundo, o frame vinte e quatro é 00:00:01:00, e mil e oitocentos frames a trinta frames por segundo são 00:01:00:00.
Ele não aplica tabelas de salto drop-frame do NTSC para vinte e nove ponto nove sete, porque essas regras mudam o rótulo escrito sem usar a mesma fórmula de resto. Escolha o fps positivo que coincida com o projeto (vinte e quatro, vinte e cinco, trinta, quarenta e oito, cinquenta, sessenta e taxas inteiras semelhantes, ou uma taxa fracionária quando você realmente precisar dela) e deixe essa taxa explícita em cada solicitação para que duas ferramentas nunca assumam um padrão pelas suas costas.
Que dados informar e que resultado você recebe
Cadeias numéricas são aceitas nos dois. A regra rígida de produto é a taxa: fps deve ser estritamente maior que zero. Zero, números negativos e valores não finitos são rejeitados com uma mensagem de que a taxa de frames deve ser positiva, e essas falhas não são faturadas.
Exemplo: frames mil e oitocentos e fps trinta produz hours zero, minutes um, seconds zero, frames zero e timecode 00:01:00:00. Um segundo exemplo, frames mil e um a vinte e quatro fps, produz 00:00:41:17 porque mil e um dividido por vinte e quatro são quarenta e um segundos com resto dezessete. As horas preenchem pelo menos dois dígitos e podem crescer além de noventa e nove; minutos, segundos e o dígito de frame preenchem a dois.
Onde uma calculadora de frames para timecode rende o investimento
Assistentes de edição costumam receber um intervalo de render ou uma lista de marcadores como números de frame brutos de uma fazenda, um conform ou um despejo de estatísticas, e precisam de um rótulo humano que possam ler numa folha de cues ou colar num comentário. Pipelines de legendas e cartelas convertem pontos de entrada e saída inteiros em HH:MM:SS:FF para que a revisão fale no mesmo relógio que o departamento de imagem usa.
Scripts de QC podem afirmar que um rótulo calculado coincide com o fps do projeto antes de um pacote sair da instalação, capturando uma hipótese de taxa errada que de outro modo deslocaria cada cue por uma fração de segundo. Laboratórios de escolas de cinema e plugins de LMS usam o caminho gratuito do navegador para que estudantes pratiquem aritmética de resto de base zero sem instalar calculadoras de desktop que discordam sobre se o frame zero é a primeira imagem.
Deixe o fps explícito, trate o frame zero como 00:00:00:00 e você obtém um rótulo reproduzível para notas, DAILIES e workers de borda sem levantar um NLE completo só para dividir uma contagem por uma taxa.
Casos de uso
Intervalos da fazenda em rótulos legíveis
Transforme pontos inteiros de entrada e saída de render de uma fazenda ou conform em HH:MM:SS:FF preenchido com zeros que assistentes possam colar numa folha de cues.
Entrada e saída de legendas no tempo da imagem
Converta índices de frame de legendas em horas, minutos, segundos e frames restantes no fps de entrega, para que a revisão fale no relógio da imagem.
Exercícios de resto em sala e âncoras de CI
Ofereça a estudantes e suítes de teste um oráculo non-drop determinístico que associe o frame zero a 00:00:00:00 e rejeite uma taxa não positiva.
Perguntas frequentes
Como converto uma contagem de frames em timecode?
Envie um inteiro frames não negativo e um fps positivo.
O que acontece se a taxa de frames não for positiva?
Taxas zero e negativas são rejeitadas e não são faturadas.
O frame zero é igual a 00:00:00:00?
Sim. A contagem é de base zero. O frame zero em qualquer fps positivo é 00:00:00:00; o dígito restante percorre de 0 até fps menos um em taxas inteiras.
Este conversor usa timecode drop-frame?
Não. A aritmética é somente non-drop. Taxas fracionárias são convertidas por meio dos segundos totais, mas tabelas de salto drop-frame do NTSC não são aplicadas.
Qual timecode corresponde ao frame 24 a 24 fps?
Corresponde a 00:00:01:00. A contagem começa em zero, então os primeiros 24 frames, numerados a partir de zero, preenchem o primeiro segundo e o frame 24 abre o seguinte.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/video/frames-to-timecode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"frames":1800,"fps":30}'const res = await fetch("https://api.kit.forhosting.com/video/frames-to-timecode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"frames": 1800,
"fps": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/frames-to-timecode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"frames": 1800,
"fps": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/frames-to-timecode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"frames":1800,"fps":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"frames":1800,"fps":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/frames-to-timecode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"frames": 1800,
"fps": 30
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.frames_to_timecode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Se a taxa for zero, negativa ou de outro modo não positiva, a tarefa falha com invalid_input em vez de dividir por zero ou inventar um relógio.
Como uma contagem de frames vira HH:MM:SS:FF
Este endpoint implementa somente essa identidade non-drop.
Campos de entrada, validação e o JSON que você recebe de volta
Envie por POST um corpo JSON com dois campos obrigatórios: frames, uma contagem total inteira não negativa, e fps, uma taxa finita positiva em frames por segundo. Os aliases frames, frame_count, total_frames e n alimentam a contagem; os aliases fps, frame_rate, framerate e rate alimentam a taxa. Campos ausentes, cadeias vazias, valores não numéricos e uma contagem negativa falham com invalid_input e nomeiam o campo. Em caso de sucesso o corpo devolve hours, minutes, seconds e frames (o dígito restante FF), uma cadeia de timecode normalizada preenchida com zeros, o fps repetido, o total_frames original e uma cadeia curta de fórmula que reafirma a identidade de resto non-drop. Aliases opcionais permitem que scripts conservem nomes conhecidos sem uma camada de mapeamento.
Onde uma calculadora de frames para timecode rende o investimento
Como a implementação é parse puro de nível A, cada chamada bem-sucedida custa o preço-base publicado US$ 0,002 sem tokens de modelo e sem rede de saída, e a validação falha não consome saldo.
Perguntas técnicas
Quanto custa o conversor de frames para timecode?
A ferramenta do navegador é gratuita. Solicitações API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; a entrada inválida não é faturada.