Cree una escalera de bitrate adaptativo desde una resolución
Una escalera de streaming adaptativo ofrece al reproductor varias versiones del mismo vídeo para responder a los cambios de ancho de banda y de pantalla.
Ejecutar — gratis
Esta capacidad convierte la anchura y la altura de origen en un conjunto determinista de representaciones de 1080p, 720p, 480p y 360p compatibles con la fuente. Conserva la relación de aspecto y la orientación, produce dimensiones pares adecuadas para el codificador y ajusta los bitrates estándar al número real de píxeles de cada salida. El resultado sirve como punto de partida para planes de codificación HLS o DASH.
Parta de las dimensiones reales de la fuente
Introduzca la anchura y la altura en píxeles del vídeo almacenado, antes de cualquier rotación de visualización o escalado del reproductor. La calculadora compara los lados corto y largo de la fuente con los límites habituales de las representaciones de 1080p, 720p, 480p y 360p. Nunca inventa píxeles: solo incluye un nivel cuando la fuente tiene tamaño suficiente en ambas direcciones para ese perfil estándar. Por ello, una fuente de 1920 por 1080 recibe los cuatro niveles, mientras que una de 1280 por 720 comienza en 720p. El material vertical conserva la misma lógica y su orientación, de modo que genera salidas verticales en vez de forzarlas a fotogramas horizontales. Ambas dimensiones deben ser enteros positivos dentro del límite declarado. Una fuente inferior al marco horizontal de 640 por 360, o a su equivalente vertical de 360 por 640, no puede producir el nivel mínimo sin ampliación y se rechaza. Revise con cuidado los vídeos de teléfono rotados y facilite las dimensiones efectivas si los metadatos alteran el eje horizontal.
Comprenda el cálculo de dimensiones y bitrates
Para cada perfil válido, el lado corto de la fuente se ajusta al valor del nivel y el lado largo se calcula a partir de la relación de aspecto original. Ese lado calculado se redondea hacia abajo a un entero par, porque los flujos habituales con H.264 y H.265 esperan dimensiones compatibles con los bloques de crominancia. El cambio en la relación exacta es mínimo, pero evita reglas inesperadas de recorte o relleno dentro del codificador. Cada perfil parte de un objetivo convencional para vídeo AVC: 5,000 kbps en 1080p, 2,800 kbps en 720p, 1,400 kbps en 480p y 800 kbps en 360p. Después, el algoritmo ajusta el objetivo según el número de píxeles de salida frente al fotograma 16:9 de referencia y redondea al múltiplo de 50 kbps más cercano. También devuelve una tasa máxima del 107 por ciento del objetivo y un búfer equivalente al doble. Son valores de planificación, no garantías de calidad visual.
Utilice la escalera como base de codificación
Asigne cada nivel devuelto a una salida del codificador y empaquete los flujos resultantes en la misma lista maestra HLS o presentación DASH. Mantenga coherentes la frecuencia de fotogramas, la cadencia de fotogramas clave, el tratamiento del color, la disposición del audio y los límites de segmento para que el reproductor pueda cambiar sin interrupciones. Los bitrates son predecibles y resultan útiles para estimaciones, plantillas y configuraciones iniciales, pero la complejidad del contenido sigue siendo decisiva. La animación, el grano cinematográfico, los deportes, las capturas de pantalla y el ruido con poca luz pueden requerir tasas muy distintas para una resolución idéntica. Valide escenas representativas con una métrica objetiva y pruebas de reproducción; luego ajuste cada objetivo según el códec, la frecuencia o la calidad requerida. La salida solo contiene tasas de vídeo: presupueste el audio por separado y deje margen de entrega sobre el total. En producción, supervise el rebuffering, el inicio, la selección de niveles y la calidad, porque el comportamiento real de la red determina si la escalera está equilibrada.
Qué puede hacer con ella
Preparar un plan de codificación HLS
Convierta las dimensiones de origen en tamaños de representación y objetivos de bitrate de vídeo coherentes antes de generar una lista maestra.
Estimar las salidas de transcodificación
Compruebe cuántas representaciones estándar admite una fuente y el ancho de banda aproximado de cada salida.
Normalizar formatos verticales y poco comunes
Conserve la orientación original mientras adapta perfiles de streaming conocidos al número real de píxeles de un vídeo que no sea 16:9.
Preguntas frecuentes
¿Cuánto cuesta el cálculo?
Cada solicitud a la API cuesta $0.002.
¿La escalera amplía fuentes pequeñas?
No. Se omiten los niveles que superan cualquiera de las dimensiones normalizadas y una fuente inferior al marco de 360p devuelve un error.
¿Los bitrates devueltos corresponden al vídeo o al ancho de banda total?
Son objetivos de bitrate de vídeo. Añada la tasa de audio elegida y la sobrecarga de entrega al estimar el ancho de banda total.
¿Admite vídeo vertical?
Sí. Conserva la orientación vertical y adapta cada nivel estándar a la relación de aspecto original con dimensiones de salida pares.
¿Por qué la anchura puede diferir de valores habituales como 1920 o 1280?
Esas anchuras habituales presuponen vídeo 16:9. Otras relaciones de aspecto necesitan una anchura distinta para conservar la imagen sin recortarla.
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/video2/streaming-bitrate-ladder \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_width":1920,"source_height":1080}'const res = await fetch("https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_width": 1920,
"source_height": 1080
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video2/streaming-bitrate-ladder",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_width": 1920,
"source_height": 1080
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_width":1920,"source_height":1080}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_width":1920,"source_height":1080}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video2/streaming-bitrate-ladder", 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
{
"source_width": 1920,
"source_height": 1080
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.streaming_bitrate_ladder",
"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. |