Calcule a duração do vídeo com quadro congelado
Um quadro congelado mantém uma imagem na tela enquanto a linha do tempo continua; por isso, sua inserção aumenta o tempo final sem alterar a duração das imagens originais em movimento.
Executar grátis
Esta calculadora recebe a duração original, o instante em que a pausa começa e o comprimento desejado, tudo em segundos. Ela confirma que o ponto pertence à linha do tempo de origem e devolve a nova duração total. Você pode usá-la para planejar uma edição, conferir uma especificação, estimar uma narração ou preparar metadados confiáveis antes da renderização.
Informe os tempos em segundos
Informe a duração completa do vídeo inalterado em original_duration, o instante que será mantido em freeze_point e o tempo acrescentado em freeze_length. Os três valores são expressos em segundos e aceitam decimais, atendendo tanto decisões abaixo de um segundo quanto vídeos longos. Por exemplo, 2.5 significa dois segundos e meio. A duração original deve ser maior que zero; o congelamento pode ser zero quando você pretende apenas validar o ponto planejado. O ponto pode estar na abertura, em qualquer instante interno ou exatamente no final, mas não pode ser negativo nem posterior ao encerramento original. Mantenha todos os valores na mesma escala. Caso o editor exiba minutos e segundos, converta a leitura para o total de segundos antes do envio. Assim, você não interpreta 1:30 como 1.30 segundos em vez de 90 segundos.
Entenda o que entra no cálculo
O cálculo soma o comprimento do congelamento à duração original. O ponto determina se a inserção proposta é válida, mas não muda o tempo acrescentado: uma pausa de quatro segundos adiciona quatro segundos no começo, no meio ou sobre o quadro final. Portanto, new_total_duration corresponde à duração de origem mais a pausa inserida. Este modelo pressupõe uma inserção real, que empurra todo o conteúdo posterior para a frente. Ele não descreve a substituição de imagens existentes por uma imagem fixa, pois essa troca pode conservar a duração total. Transições, margens, rampas de velocidade, quadros duplicados apenas para atender à taxa e preenchimento extra de áudio também não entram, a menos que você os inclua separadamente no planejamento. A resposta repete os três valores aceitos ao lado do resultado, facilitando auditorias, registros de edição e comparações com o arquivo exportado.
Use o resultado no fluxo de edição
Use a nova duração como uma estimativa de planejamento antes de iniciar a fila de renderização ou atualizar os metadados da entrega. Você pode conferir se um tutorial ainda cabe no limite depois de pausar em um detalhe, reservar narração ou trilha suficiente para uma tomada congelada e validar uma lista de decisões antes de enviá-la ao renderizador. Um ponto além das imagens disponíveis será rejeitado. Como nenhum arquivo de mídia é enviado, o cálculo também é útil quando o vídeo precisa permanecer no armazenamento local: somente dados numéricos de tempo são necessários. Para precisão por quadro, converta antes a posição escolhida e a quantidade de quadros mantidos em segundos, usando a taxa exata do projeto. Tenha cuidado especial com taxas fracionárias como 29.97, nas quais marcas arredondadas podem divergir da posição exata. Esta capacidade calcula duração; ela não inspeciona codecs, faixas de timecode, taxa variável nem o arquivo renderizado.
Casos de uso
Planejar uma pausa didática
Confira o tempo final depois de manter um quadro pelo período necessário para o público ler a informação.
Validar uma decisão de edição
Rejeite uma instrução cujo ponto esteja antes do início ou depois do fim do material de origem.
Atualizar metadados de entrega
Calcule a duração planejada antes que o renderizador ou o fluxo de publicação produza o arquivo final.
Perguntas frequentes
Quanto custa o cálculo?
Você pode executá-lo gratuitamente no navegador desta página. As solicitações por API usam o preço-base atual de US$ 0,002.
Quais unidades devo usar?
Informe a duração original, o ponto e o comprimento do congelamento em segundos. Valores decimais são aceitos.
O ponto pode ser exatamente o final do vídeo?
Sim. O instante final pertence à duração original e representa a manutenção do último quadro.
Por que o ponto não aparece na soma?
Ele valida onde ocorre a inserção. O comprimento adicionado é igual em qualquer posição válida da linha do tempo.
Substituir imagens por um quadro fixo aumenta a duração?
Não necessariamente. A calculadora modela uma pausa inserida que desloca o conteúdo posterior, e não uma substituição dentro do tempo existente.
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/freeze-frame-duration \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"original_duration":90,"freeze_point":32.5,"freeze_length":4.25}'const res = await fetch("https://api.kit.forhosting.com/video/freeze-frame-duration", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"original_duration": 90,
"freeze_point": 32.5,
"freeze_length": 4.25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/freeze-frame-duration",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"original_duration": 90,
"freeze_point": 32.5,
"freeze_length": 4.25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/freeze-frame-duration", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"original_duration":90,"freeze_point":32.5,"freeze_length":4.25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"original_duration":90,"freeze_point":32.5,"freeze_length":4.25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/freeze-frame-duration", 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
{
"original_duration": 90,
"freeze_point": 32.5,
"freeze_length": 4.25
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.freeze_frame_duration",
"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. |