Conversão de FPS de vídeo: quadros e duração
Esta calculadora de conversão de taxa de quadros mostra o que acontece quando uma gravação passa de uma velocidade de reprodução para outra.
Executar grátis
Informe as taxas de origem e destino e a contagem inicial para saber se uma conversão com duração preservada precisa duplicar ou remover quadros, qual é a contagem inteira de destino mais próxima e qual duração exata resulta ao manter todos os quadros originais. Ela ajuda você a planejar conformação, retiming, animação, arquivamento e entrega antes de abrir um editor ou transcodificador.
Escolha entre manter a duração e preservar os quadros
A conversão de taxa de quadros pode representar duas operações diferentes, e confundi-las costuma causar erros de tempo. Uma conversão que preserva a duração mantém o tempo de execução próximo ao original. Para isso, a calculadora multiplica a contagem de origem pela razão entre as taxas de destino e origem. Uma taxa maior exige mais imagens exibidas, portanto elas precisam ser duplicadas ou sintetizadas; uma taxa menor exige menos imagens, que devem ser removidas ou mescladas. Como um vídeo real não contém frações de quadro, a quantidade ideal é arredondada para o inteiro mais próximo e os dois valores são apresentados. A alternativa é uma conformação que preserva os quadros. Nesse caso, nenhuma imagem é criada ou removida: cada quadro é reproduzido na taxa de destino, alterando a duração. Converter um clipe de 24 fps para entrega em 30 fps não equivale a interpretar os mesmos 240 quadros em 30 fps. A primeira operação procura manter dez segundos; a segunda dura oito segundos.
Entenda as contagens e os resultados de tempo
Comece pelo campo de ação. Ele indica duplicar quando a taxa de destino é maior, remover quando é menor e nenhuma ação quando as taxas são iguais. A razão de conversão é a taxa de destino dividida pela taxa de origem. A contagem ideal aplica essa razão ao número inicial e representa a quantidade matemática necessária para preservar exatamente a duração. A contagem de destino é o inteiro utilizável mais próximo. Os campos de quadros a duplicar ou remover comparam esse valor arredondado com o original, portanto somente um fica acima de zero. A duração original divide a contagem pela taxa de origem; a duração com contagem preservada divide o mesmo número pela taxa de destino. A mudança de duração subtrai o tempo original: um resultado negativo encurta o clipe e um positivo o alonga. Os tempos são arredondados para nove casas decimais para garantir uma saída estável, mas o cálculo usa os valores completos.
Use o cálculo em fluxos reais de produção
Use o resultado como planejamento, não como descrição de um algoritmo específico de interpolação. A ferramenta informa quantas posições de imagem a relação entre taxas exige, mas não escolhe se o aplicativo deve repetir quadros, mesclar imagens vizinhas, estimar fluxo óptico ou mudar a velocidade. Essas decisões afetam movimento, cadência, áudio e custo de renderização. Para entrega editorial, compare a contagem arredondada que preserva a duração com o tamanho esperado da linha do tempo antes da transcodificação. Em animação, o total de duplicações ajuda a estimar a repetição de desenhos mantidos ou quadros renderizados. Em arquivamento e restauração, a duração com contagem preservada revela a mudança exata de velocidade ao interpretar material histórico em uma taxa moderna. Taxas decimais como 23.976 e 29.97 são aceitas, assim como taxas inteiras. As duas taxas devem ser números finitos positivos, e a contagem deve ser um inteiro positivo seguro. A API cobra US$ 0,002 por cálculo, e o navegador usa a mesma lógica determinística.
Casos de uso
Planejar uma conversão para entrega
Estime a contagem inteira de destino e os quadros duplicados ou removidos antes de exportar um master em outra taxa.
Calcular a duração da conformação
Descubra quanto tempo dura um clipe quando todos os quadros são mantidos, mas reproduzidos em outra taxa.
Conferir tempos de animação e arquivo
Compare razões, ajustes de quadros e mudanças de duração em animação, restauração ou material histórico.
Perguntas frequentes
Quanto custa o cálculo?
O preço da API é US$ 0,002 por cálculo. Você também pode executar o cálculo desta página no navegador.
Por que a contagem ideal pode ter casas decimais?
A razão entre taxas pode produzir uma quantidade matemática fracionária. Como o vídeo contém quadros inteiros, o valor utilizável é arredondado para o inteiro mais próximo.
Duplicar significa que todo quadro adicionado é uma cópia idêntica?
Não. Significa que são necessárias posições adicionais. Um programa pode preenchê-las por repetição, mesclagem, interpolação ou outro método.
Como preservar os quadros afeta a duração?
Todos os quadros são mantidos e interpretados na taxa de destino. Uma taxa maior encurta a reprodução; uma taxa menor a prolonga.
Posso informar taxas como 23.976 ou 29.97?
Sim. Taxas decimais finitas e positivas são aceitas. Use os valores exatos exigidos pelo seu fluxo de trabalho.
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/framerate-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_framerate":24,"target_framerate":30,"frame_count":240}'const res = await fetch("https://api.kit.forhosting.com/video/framerate-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_framerate": 24,
"target_framerate": 30,
"frame_count": 240
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/framerate-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_framerate": 24,
"target_framerate": 30,
"frame_count": 240
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/framerate-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_framerate":24,"target_framerate":30,"frame_count":240}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_framerate":24,"target_framerate":30,"frame_count":240}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/framerate-convert", 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
{
"source_framerate": 24,
"target_framerate": 30,
"frame_count": 240
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.framerate_convert",
"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. |