Calcule barras letterbox em pixels para vídeo
Esta calculadora de barras letterbox transforma duas proporções e a altura da tela em medidas práticas para composições de vídeo.
Executar grátis
Informe a proporção da fonte, a proporção da tela de destino e a altura. O resultado mostra se as barras ficam acima e abaixo da imagem ou nos lados esquerdo e direito, além de indicar o tamanho de cada barra igual. Quando as proporções coincidem, o valor retornado é zero, pois a fonte já ocupa a tela sem corte nem preenchimento.
Comece pelas proporções da fonte e da tela
Uma proporção descreve a largura em relação à altura; portanto, 16:9 e 1.777777 representam o mesmo formato. Informe a proporção da imagem que você deseja preservar e a da tela final. A altura da tela define a escala real em pixels, enquanto a largura é derivada da proporção de destino. A calculadora aceita W:H, W/H ou um decimal positivo e atende formatos comuns como 4:3, 16:9, 21:9 e 2.39:1. Se você conhecer a abertura real de exibição, prefira esse valor a uma denominação comercial aproximada. Alguns formatos chamados de 21:9, por exemplo, têm valores numéricos um pouco diferentes, e pequenas diferenças podem gerar barras visíveis em alta resolução. Todas as dimensões precisam ser positivas e finitas, e a altura deve ser um número inteiro de pixels. Se as proporções forem iguais, não há preenchimento: todas as dimensões das barras retornam zero, sem erro.
Entenda as barras horizontais e laterais
A fonte é encaixada inteira na tela, sem deformação e sem remoção de conteúdo. Quando ela é mais larga que a tela de destino, sua largura encosta primeiro nas bordas. A altura ajustada fica menor que a altura da tela, e o espaço restante é dividido igualmente acima e abaixo da imagem. O resultado chama essa orientação de top_bottom e informa a altura de cada barra. Se a fonte for mais estreita, a altura encosta primeiro e sobra espaço horizontal. Esse espaço é repartido entre os lados esquerdo e direito, gerando a orientação left_right e uma largura para cada barra lateral. Esse caso costuma ser chamado de pillarbox, embora os dois usem o mesmo cálculo de encaixe. O campo bar_size_pixels sempre contém o tamanho de uma única barra, e não a soma do preenchimento. Os campos de cada borda deixam a saída inequívoca para o código de layout.
Use o resultado na edição e na renderização
Aplique as dimensões retornadas ao preparar sobreposições, quadros de prévia, masters codificados, projeções ou composições em CSS e canvas. Quando a geometria não resulta em pixels inteiros, a calculadora mantém a fração e faz um arredondamento determinístico para seis casas decimais. Uma ferramenta que exija coordenadas inteiras deve adotar sua própria regra, pois arredondar as duas barras separadamente pode alterar a dimensão final em um pixel. Em um fluxo raster, você pode arredondar uma borda para baixo e atribuir o pixel restante à borda oposta; layouts vetoriais ou de navegador geralmente aceitam a fração. O cálculo presume um encaixe contain centralizado: preserva toda a fonte, não corta e distribui o preenchimento igualmente. Ele não considera pixels anamórficos, metadados de rotação, overscan ou áreas seguras; converta esses fatores em uma proporção efetiva antes. A automação pela API custa US$ 0,002 por solicitação.
Casos de uso
Prepare vídeo cinematográfico para um quadro padrão
Calcule preenchimentos iguais acima e abaixo antes de inserir uma fonte ampla em uma tela de entrega 16:9.
Crie um master de arquivo com barras laterais
Descubra a largura das barras esquerda e direita para preservar material antigo 4:3 em um quadro widescreen moderno.
Posicione elementos fora da imagem ativa
Reserve dimensões conhecidas para legendas, rótulos ou controles sem cobrir a fonte encaixada.
Perguntas frequentes
O que acontece quando as duas proporções são iguais?
O resultado usa a orientação none e retorna zero para todas as dimensões, porque nenhuma barra é necessária.
bar_size_pixels representa uma barra ou as duas somadas?
Representa uma única barra. As barras opostas são iguais, e os campos de borda mostram cada uma separadamente.
Por que o resultado pode ter uma fração de pixel?
A geometria das proporções nem sempre produz pixels inteiros. O valor preciso é mantido para que seu renderizador escolha o arredondamento adequado.
O cálculo corta ou estica a fonte?
Não. Ele usa um encaixe contain centralizado que preserva toda a fonte e suas proporções originais.
Quanto custa um cálculo pela API?
Cada solicitação à API custa US$ 0,002. O cálculo é determinístico e não envia nem examina arquivos de vídeo.
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/aspect-ratio-letterbox-bars-size \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_aspect_ratio":"21:9","target_aspect_ratio":"16:9","canvas_height":1080}'const res = await fetch("https://api.kit.forhosting.com/video2/aspect-ratio-letterbox-bars-size", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_aspect_ratio": "21:9",
"target_aspect_ratio": "16:9",
"canvas_height": 1080
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video2/aspect-ratio-letterbox-bars-size",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_aspect_ratio": "21:9",
"target_aspect_ratio": "16:9",
"canvas_height": 1080
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video2/aspect-ratio-letterbox-bars-size", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_aspect_ratio":"21:9","target_aspect_ratio":"16:9","canvas_height":1080}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_aspect_ratio":"21:9","target_aspect_ratio":"16:9","canvas_height":1080}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video2/aspect-ratio-letterbox-bars-size", 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_aspect_ratio": "21:9",
"target_aspect_ratio": "16:9",
"canvas_height": 1080
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.aspect_ratio_letterbox_bars_size",
"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. |