Crie uma escada de bitrate adaptativo pela resolução
Uma escada de streaming adaptativo oferece ao player várias versões do mesmo vídeo para acompanhar mudanças na largura de banda e na tela.
Executar grátis
Esta capacidade transforma a largura e a altura da fonte em um conjunto determinístico de representações 1080p, 720p, 480p e 360p compatíveis com o arquivo original. Ela preserva a proporção e a orientação, mantém dimensões pares adequadas ao codificador e ajusta os bitrates padrão à quantidade real de pixels de cada saída. O resultado pode ser usado como ponto de partida para planos de codificação HLS ou DASH.
Comece pelas dimensões reais da fonte
Informe a largura e a altura em pixels do vídeo armazenado, antes de qualquer rotação de exibição ou escala aplicada pelo player. A calculadora compara os lados menor e maior da fonte com os limites usados nas representações comuns de 1080p, 720p, 480p e 360p. Ela não inventa pixels: um nível só é incluído quando a fonte é grande o bastante nas duas direções para o perfil padrão. Assim, uma fonte de 1920 por 1080 recebe os quatro níveis, enquanto uma de 1280 por 720 começa em 720p. O material em modo retrato segue a mesma regra e mantém sua orientação, produzindo saídas verticais em vez de ser forçado a quadros horizontais. As duas dimensões precisam ser números inteiros positivos dentro do limite declarado. Uma fonte menor que o quadro horizontal de 640 por 360, ou que o equivalente vertical de 360 por 640, não consegue gerar o nível mínimo sem ampliação e é rejeitada. Verifique vídeos de celular rotacionados e use as dimensões efetivas quando os metadados alterarem o lado horizontal.
Entenda o cálculo das dimensões e dos bitrates
Para cada perfil elegível, o lado menor da fonte é redimensionado até o valor do nível, e o lado maior é calculado pela proporção original. O resultado do lado maior é arredondado para baixo até um número par, pois fluxos comuns em H.264 e H.265 esperam dimensões compatíveis com blocos de crominância. Isso altera a proporção exata por uma fração mínima, mas evita regras ocultas de corte ou preenchimento no codificador. Cada perfil começa com um alvo convencional de vídeo AVC: 5,000 kbps para 1080p, 2,800 kbps para 720p, 1,400 kbps para 480p e 800 kbps para 360p. O algoritmo ajusta o alvo pela quantidade de pixels da saída em relação ao quadro 16:9 de referência e arredonda para os 50 kbps mais próximos. Ele também informa uma taxa máxima de 107 por cento do alvo e um buffer igual ao dobro do alvo. Esses números servem ao planejamento e não garantem qualidade visual.
Use a escada como base da codificação
Associe cada nível retornado a uma saída do codificador e empacote os fluxos na mesma playlist mestre HLS ou apresentação DASH. Mantenha consistentes a taxa de quadros, o intervalo de quadros-chave, o tratamento de cores, o layout de áudio e os limites dos segmentos para que o player troque de representação sem falhas. Os bitrates são previsíveis e úteis em estimativas, modelos e configurações iniciais, mas a complexidade do conteúdo continua importante. Animação, granulação de filme, esportes, gravações de tela e ruído em baixa luz podem exigir taxas muito diferentes na mesma resolução. Valide cenas representativas com uma métrica objetiva e testes de reprodução; depois aumente ou reduza cada alvo conforme o codec, a taxa de quadros ou a qualidade necessária. A saída contém apenas taxas de vídeo, portanto calcule o áudio separadamente e reserve margem acima do total. Em produção, acompanhe interrupções, tempo de início, seleção de níveis e qualidade, pois o comportamento real da rede mostra se a escada está equilibrada.
Casos de uso
Criar um plano de codificação HLS
Transforme as dimensões da fonte em tamanhos de representação e alvos coerentes de bitrate antes de gerar uma playlist mestre.
Estimar saídas de transcodificação
Veja quantas representações padrão a fonte comporta e qual é a largura de banda aproximada de cada saída.
Padronizar formatos verticais e incomuns
Preserve a orientação original enquanto adapta perfis conhecidos à quantidade real de pixels de vídeos fora de 16:9.
Perguntas frequentes
Quanto custa o cálculo?
Cada solicitação à API custa US$ 0,002.
A escada amplia fontes pequenas?
Não. Níveis acima de qualquer dimensão normalizada são omitidos, e uma fonte menor que o quadro de 360p retorna um erro.
Os bitrates informados são do vídeo ou da largura de banda total?
Eles são alvos de bitrate de vídeo. Some o bitrate de áudio escolhido e a sobrecarga de entrega ao estimar a largura de banda total.
Vídeos em modo retrato são aceitos?
Sim. A orientação vertical é preservada, e cada nível padrão se adapta à proporção da fonte com dimensões pares.
Por que a largura pode ser diferente de valores como 1920 ou 1280?
Essas larguras pressupõem vídeo em 16:9. Outras proporções precisam de uma largura diferente para preservar a imagem sem cortes.
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/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)Exemplo de requisição
{
"source_width": 1920,
"source_height": 1080
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.streaming_bitrate_ladder",
"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. |