Calcule o tempo da fila de renderização e conclusão
Planejar uma fila de renderização fica mais simples quando as estimativas de todos os clipes resultam em um horário claro de término.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Insira os clipes na ordem de processamento, informe a duração estimada de cada renderização em segundos e defina o início em UTC. A calculadora soma os trabalhos sem sobreposição e retorna o total em segundos, uma duração legível e o horário estimado de conclusão em UTC. Ela ajuda profissionais de edição, motion design, produção e operação de render farms que já possuem estimativas confiáveis e precisam de um cronograma determinístico, sem enviar mídias nem depender de um sistema de renderização ativo.
Monte a fila com estimativas realistas
Comece relacionando todos os clipes que serão processados sequencialmente pelo mesmo worker de renderização. Dê a cada linha um nome fácil de reconhecer e uma duração estimada em segundos inteiros. O nome facilita a conferência; a duração é o valor usado no cálculo. Inclua aberturas que exigem preparação, transições curtas, revisões e versões de entrega quando cada item ocupar o worker separadamente. Não use a duração de reprodução da mídia original, a menos que ela também corresponda ao tempo previsto de renderização: efeitos, resolução, codecs e hardware podem produzir diferenças consideráveis. Estimativas obtidas em um teste recente costumam ser mais úteis do que palpites baseados apenas na duração da timeline. A calculadora trata as linhas como uma única fila contínua e soma todas as durações, inclusive marcadores de zero segundo. Ela não examina a mídia nem corrige os números. Assim, o resultado permanece transparente: se a estimativa de um clipe mudar, atualize a linha e recalcule para ver imediatamente o novo término. Uma lista vazia é recusada porque não representa uma carga real de renderização.
Escolha um horário inicial UTC sem ambiguidade
Informe o momento previsto para o primeiro clipe começar no formato UTC YYYY-MM-DDTHH:mm:ssZ. Por exemplo, uma marca temporal terminada em Z identifica explicitamente UTC e não depende do computador, navegador, editor ou nó que executa o cálculo. Isso é importante quando a produção e a operação remota trabalham em fusos diferentes ou quando a fila atravessa uma mudança de horário de verão. Converta um horário local para UTC antes de inseri-lo e mantenha a referência ao fuso local no cronograma se a equipe precisar dela. A capacidade valida o calendário, incluindo a quantidade de dias em cada mês e os anos bissextos, antes de adicionar a duração da fila. Em seguida, aplica aritmética gregoriana exata, permitindo atravessar meia-noite, fim do mês, Ano-Novo ou 29 de fevereiro sem qualquer ajuste manual. Os segundos são preservados exatamente. O início e a conclusão estimada são retornados na mesma notação UTC, adequada para logs, automações e comparações futuras.
Interprete a previsão de conclusão com responsabilidade
O resultado traz a quantidade de clipes, o total da fila em segundos, uma duração legível em dias e relógio, a marca temporal inicial e o horário estimado de conclusão. Esse horário pressupõe que um único worker processe todos os clipes em sequência, sem pausas nem sobreposição. Portanto, ele é uma referência de planejamento, não uma promessa de que uma render farm terminará naquele instante exato. Acrescente separadamente o tempo previsto para upload, download, validação, novas tentativas, aquecimento de máquinas e revisão quando essas atividades consumirem parte do cronograma. Se vários workers renderizarem em paralelo, distribua os trabalhos nas filas reais, calcule cada fila individualmente e considere a conclusão mais tardia como estimativa do lote. Sua equipe também pode comparar cenários otimista, esperado e conservador repetindo o cálculo com outras durações. Como nenhum dado de sistema ativo é consultado, o cálculo é reproduzível: entradas idênticas sempre geram a mesma saída. Isso o torna adequado para planejamento, passagem de produção, discussão de orçamento e resumos automáticos nos quais as premissas precisam ficar visíveis e auditáveis.
Casos de uso
Planejar uma renderização noturna
Some os planos da fila e confira se a conclusão estimada ocorre antes da revisão da manhã.
Coordenar uma passagem remota
Compartilhe uma única previsão em UTC com profissionais de edição e renderização em diferentes fusos horários.
Comparar cenários da fila
Teste durações otimistas e conservadoras para revelar riscos antes de assumir um prazo.
Perguntas frequentes
Quanto custa o cálculo?
O cálculo no navegador é gratuito nesta página. Uma solicitação pela API custa US$ 0,002.
A calculadora renderiza ou examina meus clipes?
Não. Ela usa somente nomes, segundos estimados e o horário UTC que você informa; nenhuma mídia é enviada ou examinada.
Os tempos podem incluir frações de segundo?
Não. Cada estimativa deve ser um número inteiro de segundos igual ou superior a zero para manter a exatidão do resultado.
Há suporte para workers em paralelo?
O cálculo representa uma fila sequencial. Para vários workers, calcule cada fila separadamente e use a conclusão mais tardia.
Por que o horário inicial precisa estar em UTC?
UTC elimina ambiguidades de fuso e horário de verão, garantindo a mesma marca temporal de conclusão para toda a equipe.
O que acontece se a lista de clipes estiver vazia?
A solicitação retorna um erro de entrada inválida, pois uma fila precisa conter pelo menos um clipe.
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/video2/render-queue-time-total \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"clips":[{"name":"Opening titles","estimated_render_seconds":95},{"name":"Main sequence","estimated_render_seconds":430},{"name":"End card","estimated_render_seconds":35}],"start_time":"2026-08-03T14:20:00Z"}'const res = await fetch("https://api.kit.forhosting.com/video2/render-queue-time-total", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"clips": [
{
"name": "Opening titles",
"estimated_render_seconds": 95
},
{
"name": "Main sequence",
"estimated_render_seconds": 430
},
{
"name": "End card",
"estimated_render_seconds": 35
}
],
"start_time": "2026-08-03T14:20:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video2/render-queue-time-total",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"clips": [
{
"name": "Opening titles",
"estimated_render_seconds": 95
},
{
"name": "Main sequence",
"estimated_render_seconds": 430
},
{
"name": "End card",
"estimated_render_seconds": 35
}
],
"start_time": "2026-08-03T14:20:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video2/render-queue-time-total", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"clips":[{"name":"Opening titles","estimated_render_seconds":95},{"name":"Main sequence","estimated_render_seconds":430},{"name":"End card","estimated_render_seconds":35}],"start_time":"2026-08-03T14:20:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"clips":[{"name":"Opening titles","estimated_render_seconds":95},{"name":"Main sequence","estimated_render_seconds":430},{"name":"End card","estimated_render_seconds":35}],"start_time":"2026-08-03T14:20:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video2/render-queue-time-total", 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
{
"clips": [
{
"name": "Opening titles",
"estimated_render_seconds": 95
},
{
"name": "Main sequence",
"estimated_render_seconds": 430
},
{
"name": "End card",
"estimated_render_seconds": 35
}
],
"start_time": "2026-08-03T14:20:00Z"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.render_queue_time_total",
"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_items | 1000 |
max_total_seconds | 3155760000 |
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. |