Calcule el tiempo de renderizado de un vídeo
Estime cuánto tardará una codificación antes de reservar un equipo, un nodo de renderizado o un plazo de entrega.
Ejecutar — gratis
Introduzca la duración del programa, la anchura y altura de salida, la frecuencia del vídeo y el rendimiento medido del codificador para esa resolución. La calculadora convierte la duración en fotogramas, los divide por la velocidad de codificación y muestra tanto el tiempo legible como el valor exacto. También indica el factor de tiempo real para saber si el proceso terminará antes o después que la reproducción.
Use mediciones que correspondan al mismo trabajo
Una estimación fiable exige datos coherentes. La duración debe abarcar toda la línea de tiempo que se exportará, incluidos títulos, créditos y relleno. Indique la frecuencia de salida real, no una etiqueta redondeada del proyecto: 29.97 y 30 fotogramas por segundo producen totales distintos en programas largos. La anchura y la altura identifican la resolución de destino. No alteran directamente la operación, pues el rendimiento ya se expresa en fotogramas procesados por segundo, pero permiten comprobar que la medición corresponde al mismo tamaño de imagen. Siempre que sea posible, mida la velocidad con el mismo códec, ajuste, profundidad de color, filtros, equipo y resolución. Si solo dispone de una prueba preliminar, utilice una cifra conservadora en vez del mejor valor instantáneo. El resultado orienta la planificación, pero no garantiza el plazo: las escenas complejas, la temperatura y otras cargas pueden reducir el rendimiento real.
Interprete el cálculo y el factor de tiempo real
La calculadora multiplica primero los segundos de duración por la frecuencia de salida para obtener el número de fotogramas. Después divide ese total por el rendimiento del codificador. Un programa de dos minutos a 30 fps contiene 3,600 fotogramas; si el codificador mantiene 60 fps, necesita aproximadamente un minuto. El factor de tiempo real es la velocidad del codificador dividida por la frecuencia del vídeo. Un valor superior a uno indica que la codificación es más rápida que la reproducción; uno representa aproximadamente tiempo real, y un valor inferior a uno señala un proceso más lento. La resolución aparece en el resultado para que la referencia de rendimiento conserve su contexto. Puede haber totales fraccionarios al combinar una duración decimal con una frecuencia fraccionaria. La herramienta mantiene esa estimación matemática y redondea el tiempo visible al milisegundo, con decimales estables para que la API y el navegador coincidan.
Añada un margen realista al calendario
Considere el resultado como tiempo activo de codificación bajo las condiciones de su medición. Un calendario completo puede requerir además transferencia de archivos, preparación de caché, análisis de audio, configuración de varias pasadas, multiplexado, sumas de comprobación, carga y control de calidad. Esas fases no están representadas por una velocidad en fotogramas por segundo y deben sumarse por separado. Para un lote, calcule trabajos representativos con el rendimiento sostenido más bajo previsto e incluya un margen basado en variaciones anteriores. Si el sistema es inestable, una velocidad conservadora sirve mejor para comprometer un plazo que una media favorecida por escenas sencillas. Repita la medición al cambiar resolución, códec, ajuste, reducción de ruido, escalado, conversión de color o aceleración por hardware. La solicitud de API cuesta $0.002; la versión de navegador de nivel A ejecuta localmente el mismo cálculo determinista. No se carga ningún vídeo: solo se utilizan los valores numéricos introducidos.
Qué puede hacer con ella
Fijar un plazo de exportación
Convierta la duración y una prueba del equipo en una ventana de codificación antes de prometer la entrega.
Comparar ajustes del codificador
Introduzca el rendimiento de distintos ajustes para comparar sus tiempos probables con la misma resolución.
Dimensionar un lote de renderizado
Estime cada trabajo con una velocidad prudente y añada después el tiempo de transferencia y revisión.
Preguntas frecuentes
¿Por qué se necesita la frecuencia además de la duración?
La velocidad se mide en fotogramas por segundo; por ello, la duración debe convertirse en fotogramas mediante la frecuencia de salida.
¿La resolución cambia directamente la fórmula?
No. La resolución determina qué medición de velocidad debe usar. Se supone que esa velocidad corresponde a la anchura, altura, códec y ajustes indicados.
¿Qué ocurre si la velocidad es cero o negativa?
La solicitud devuelve un error de entrada no válida, porque dividir por cero no está definido y una tasa negativa carece de sentido práctico.
¿Incluye la carga de archivos o el control de calidad?
No. Solo estima el procesamiento activo de fotogramas. Añada por separado transferencia, multiplexado, verificación, carga y revisión.
¿Puedo utilizar una velocidad media?
Sí, aunque para los plazos conviene una velocidad sostenida y conservadora obtenida con material representativo.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/video/render-time-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration_seconds":120,"width_px":1920,"height_px":1080,"frame_rate_fps":30,"encoder_speed_fps":60}'const res = await fetch("https://api.kit.forhosting.com/video/render-time-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration_seconds": 120,
"width_px": 1920,
"height_px": 1080,
"frame_rate_fps": 30,
"encoder_speed_fps": 60
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/render-time-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration_seconds": 120,
"width_px": 1920,
"height_px": 1080,
"frame_rate_fps": 30,
"encoder_speed_fps": 60
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/render-time-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration_seconds":120,"width_px":1920,"height_px":1080,"frame_rate_fps":30,"encoder_speed_fps":60}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration_seconds":120,"width_px":1920,"height_px":1080,"frame_rate_fps":30,"encoder_speed_fps":60}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/render-time-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"duration_seconds": 120,
"width_px": 1920,
"height_px": 1080,
"frame_rate_fps": 30,
"encoder_speed_fps": 60
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.render_time_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |