O que são perfis H.264?
O padrão H.264 (também chamado AVC ou MPEG-4 Part 10) define um amplo conjunto de ferramentas de codificação — algoritmos para comprimir quadros de vídeo em dados menores. Os perfis são subconjuntos desse conjunto de ferramentas. Cada perfil habilita uma combinação específica de recursos, e perfis superiores incluem tudo dos inferiores mais técnicas adicionais.
Pense nos perfis como níveis de dificuldade para o decodificador. O perfil Baseline usa apenas as ferramentas mais simples, de modo que qualquer hardware — até um celular de 2008 — consegue decodificá-lo. O perfil High usa todas as ferramentas disponíveis, alcançando a melhor compressão, mas exigindo mais poder de processamento do dispositivo de reprodução.
Os três perfis mais comuns são Baseline, Main e High. Existem outros (Extended, High 10, High 4:2:2, High 4:4:4 Predictive), mas eles atendem a casos de uso específicos como cor de 10 bits ou subamostragem de croma profissional. Para vídeo padrão de 8 bits destinado à reprodução em dispositivos de consumo, Baseline, Main e High são os únicos perfis relevantes.
Cada codificador H.264 — FFmpeg, HandBrake, Adobe Media Encoder, Apple Compressor — permite escolher um perfil. A escolha afeta três coisas: eficiência de compressão (tamanho do arquivo em uma dada qualidade), velocidade de codificação (quanto tempo a codificação leva) e compatibilidade do decodificador (quais dispositivos podem reproduzir o arquivo).
Perfil Baseline
O perfil Baseline é o subconjunto mais simples e restrito do H.264. Foi projetado para dispositivos de baixo consumo e aplicações em tempo real onde a latência de decodificação deve ser mínima.
Características principais do Baseline:
- Apenas slices I e P — o codificador pode usar quadros intracodificados (I-frames, que são independentes) e quadros preditivos (P-frames, que referenciam um quadro anterior). Não há B-frames.
- Codificação entrópica CAVLC — Context-Adaptive Variable-Length Coding é um codificador entrópico mais simples e rápido. Ele comprime os coeficientes de transformação quantizados em um fluxo de bits, mas é menos eficiente que a alternativa (CABAC).
- Sem predição ponderada — o codificador não pode usar referências ponderadas para fade-ins, fade-outs ou cross-dissolves, resultando em arquivos maiores durante transições.
- Apenas transformadas 4x4 — a transformada espacial que converte blocos de pixels em coeficientes de frequência é limitada a blocos 4x4.
Devido à falta de B-frames e CABAC, o Baseline produz os maiores arquivos dos três perfis para qualquer meta de qualidade. Uma codificação Baseline típica é 10–20% maior que o mesmo conteúdo codificado com o perfil High no mesmo valor CRF.
Quando usar Baseline: videoconferência em tempo real (onde a latência de B-frames é inaceitável), câmeras IP antigas, dispositivos Android muito antigos (antes de 2011) e sistemas embarcados com poder de processamento limitado. Em 2026, esses casos de uso são cada vez mais raros.
ffmpeg -i input.mov -c:v libx264 -profile:v baseline -level 3.0 -crf 23 -c:a aac -b:a 192k -movflags +faststart output.mp4
Perfil Main
O perfil Main adiciona dois recursos críticos sobre o Baseline: B-frames e codificação entrópica CABAC. Essas duas adições sozinhas representam a maior parte da vantagem de compressão do Main.
Os B-frames (quadros preditivos bidirecionais) podem referenciar simultaneamente quadros passados e futuros. Isso é particularmente eficaz para cenas em câmera lenta, fundos estáticos e qualquer conteúdo onde quadros futuros contêm dados de predição úteis. Uma codificação típica usa 2–3 B-frames entre cada par de quadros de referência. A contrapartida é um leve aumento na complexidade de codificação e uma latência de decodificação de alguns quadros — imperceptível para a reprodução de arquivos, mas problemática para chamadas de vídeo em tempo real.
O CABAC (Context-Adaptive Binary Arithmetic Coding) substitui o CAVLC como codificador entrópico. O CABAC usa codificação aritmética com modelos de contexto para comprimir o fluxo de bits de forma mais eficiente. Na prática, o CABAC economiza 10–15% de taxa de bits em comparação ao CAVLC na mesma qualidade visual. O custo é maior uso de CPU durante codificação e decodificação, mas todo dispositivo fabricado desde aproximadamente 2010 lida com o CABAC sem dificuldade.
O perfil Main também habilita a predição ponderada para P-frames, o que melhora a compressão durante fades e transições de cena. A combinação de B-frames, CABAC e predição ponderada torna o Main aproximadamente 10–12% mais eficiente que o Baseline.
Quando usar Main: televisão terrestre (DVB-T usa o perfil Main), configurações de streaming mais antigas e cenários onde você deseja um meio-termo entre compatibilidade e compressão. No entanto, como o perfil High é suportado por praticamente todos os dispositivos que suportam Main, há poucas razões práticas para escolher Main em vez de High em 2026.
ffmpeg -i input.mov -c:v libx264 -profile:v main -level 4.0 -crf 23 -c:a aac -b:a 192k -movflags +faststart output.mp4
Perfil High
O perfil High é o perfil mais completo usado para vídeo padrão de 8 bits. Ele adiciona várias ferramentas sobre o Main que melhoram ainda mais a eficiência de compressão.
As transformadas inteiras 8x8 são a adição mais importante. Enquanto Baseline e Main são limitados a blocos de transformação 4x4, o perfil High pode usar blocos 8x8 para áreas com menos detalhes espaciais. Blocos de transformação maiores são mais eficientes para gradientes suaves, céu e áreas de baixa textura porque capturam informações de baixa frequência em menos coeficientes. Para áreas detalhadas, o codificador recorre às transformadas 4x4. Essa seleção adaptativa de tamanho de bloco economiza 5–10% de taxa de bits sobre o perfil Main.
As matrizes de escala de quantização permitem que o codificador pondere diferentes componentes de frequência durante a quantização. Isso significa que o codificador pode preservar detalhes em frequências perceptualmente importantes enquanto comprime mais agressivamente as frequências menos importantes. É semelhante a como o JPEG usa diferentes tabelas de quantização para luminância e crominância.
O controle separado de quantização Cb e Cr permite que o codificador trate os dois canais de crominância de forma independente, proporcionando um controle mais fino sobre a compressão de cores.
O perfil High é o perfil padrão do codificador libx264 do FFmpeg. Também é o perfil exigido para Blu-ray Disc, o perfil recomendado para uploads no YouTube e Vimeo, e o padrão de todos os principais serviços de streaming. Quando alguém diz “H.264” sem especificar um perfil, quase certamente se refere ao perfil High.
ffmpeg -i input.mov -c:v libx264 -profile:v high -level 4.1 -crf 23 -c:a aac -b:a 192k -movflags +faststart output.mp4
O FFmpeg usa o perfil High por padrão. Se você não especificar -profile:v, o libx264 usa automaticamente o perfil High. Em 2026, o perfil High é suportado por praticamente todos os dispositivos fabricados desde 2012. Quase nunca há razão para usar Baseline ou Main.
Comparação de eficiência de compressão
A tabela a seguir compara os três perfis na mesma qualidade visual (CRF 23). Os tamanhos de arquivo são relativos ao perfil High, que serve como referência de 100%. Porcentagens mais altas significam arquivos maiores para a mesma qualidade.
| Perfil | Tamanho relativo | Recursos principais | B-Frames | CABAC | Transformada 8x8 |
|---|---|---|---|---|---|
| Baseline | ~115% | Apenas slices I + P, CAVLC | Não | Não | Não |
| Main | ~105% | + B-frames, CABAC, predição ponderada | Sim | Sim | Não |
| High | 100% (referência) | + Transformadas 8x8, matrizes de quantização | Sim | Sim | Sim |
Os números acima são médias típicas para diversos tipos de conteúdo (face para câmera, cenas de ação, gravações de tela). A diferença real varia conforme o conteúdo: material muito detalhado se beneficia mais das transformadas 8x8 (maior diferença entre Main e High), enquanto conteúdo de ação rápida se beneficia mais dos B-frames (maior diferença entre Baseline e Main).
Matriz de compatibilidade
Em 2026, a questão de compatibilidade está amplamente resolvida. Todos os dispositivos modernos suportam o perfil High. A tabela abaixo mostra exatamente quais dispositivos suportam cada perfil.
| Dispositivo / Plataforma | Baseline | Main | High |
|---|---|---|---|
| iPhone 3GS+ (2009–presente) | Sim | Sim | Sim |
| Android 3.0+ (2011–presente) | Sim | Sim | Sim |
| Todos os navegadores modernos (Chrome, Firefox, Safari, Edge) | Sim | Sim | Sim |
| YouTube, Vimeo, Twitch | Sim | Sim | Recomendado |
| Smart TVs (2012–presente) | Sim | Sim | Sim |
| Reprodutores Blu-ray | Sim | Sim | Obrigatório |
| Webcams antigas, câmeras IP (antes de 2010) | Sim | Varia | Não |
| Celulares básicos (era pré-smartphone) | Sim | Não | Não |
Os únicos dispositivos que não conseguem reproduzir o perfil High são hardware antigo de antes de 2010 — câmeras IP antigas, celulares básicos e sticks de streaming de primeira geração. Se seu público-alvo usa qualquer dispositivo comprado nos últimos 14 anos, o perfil High é seguro.
Qual perfil você deve usar?
A resposta para 2026 é direta: use o perfil High. É o padrão do FFmpeg, o padrão Blu-ray e a configuração recomendada para todas as principais plataformas de streaming. Você obtém a melhor eficiência de compressão e os menores arquivos em qualquer nível de qualidade.
As únicas exceções são extremamente específicas:
- Videoconferência em tempo real em sistemas legados — o Baseline elimina a latência dos B-frames, que importa para comunicação de ida e volta abaixo de 100 ms. Implementações modernas de WebRTC lidam com isso na camada de aplicação, mas alguns sistemas SIP mais antigos exigem Baseline.
- Câmeras de segurança e dispositivos IoT — algumas câmeras IP de baixo custo de antes de 2010 decodificam apenas Baseline. Se você está alimentando vídeo para tal dispositivo, não tem escolha.
- Conformidade regulatória — certos padrões de transmissão (por ex. algumas configurações DVB-T) exigem o perfil Main. Verifique sua especificação de transmissão específica.
Para todo o resto — vídeo web, redes sociais, compartilhamento de arquivos, arquivamento, apresentações, anexos de e-mail — o perfil High é a escolha correta. Nosso conversor usa automaticamente o perfil High ao codificar MOV para MP4, garantindo o melhor equilíbrio entre qualidade, tamanho de arquivo e compatibilidade universal.
Nota sobre os níveis
Os perfis definem quais ferramentas de codificação estão disponíveis. Os níveis definem os limites dessas ferramentas — resolução máxima, taxa de quadros, taxa de bits e quadros de referência. Os níveis mais comumente usados são:
| Nível | Resolução máx. | Taxa de quadros máx. | Taxa de bits máx. (High) |
|---|---|---|---|
| 3.0 | 720x576 | 25 fps | 12,5 Mbps |
| 3.1 | 1280x720 | 30 fps | 17,5 Mbps |
| 4.0 | 1920x1080 | 30 fps | 25 Mbps |
| 4.1 | 1920x1080 | 30 fps | 62,5 Mbps |
| 4.2 | 1920x1080 | 60 fps | 62,5 Mbps |
| 5.1 | 3840x2160 | 30 fps | 300 Mbps |
Para conteúdo 1080p, o nível 4.1 é a escolha padrão e o que a maioria dos codificadores seleciona automaticamente. Para conteúdo 4K, o nível 5.1 é necessário. Na maioria dos casos, você não precisa definir o nível manualmente — o libx264 do FFmpeg detecta automaticamente o nível apropriado com base na resolução e taxa de quadros do seu vídeo.
Comandos FFmpeg para cada perfil
Aqui estão os comandos FFmpeg completos para codificar com cada perfil. Os três produzem a mesma qualidade visual (CRF 23), mas diferem no tamanho do arquivo devido à eficiência de compressão do perfil:
# Baseline — largest file, widest legacy compatibility
ffmpeg -i input.mov -c:v libx264 -profile:v baseline -level 3.0 -crf 23 -c:a aac -b:a 192k -movflags +faststart output_baseline.mp4
# Main — ~10% smaller, adds B-frames and CABAC
ffmpeg -i input.mov -c:v libx264 -profile:v main -level 4.0 -crf 23 -c:a aac -b:a 192k -movflags +faststart output_main.mp4
# High — smallest file, best compression (FFmpeg default)
ffmpeg -i input.mov -c:v libx264 -profile:v high -level 4.1 -crf 23 -c:a aac -b:a 192k -movflags +faststart output_high.mp4
Para verificar qual perfil um MP4 existente usa, execute:
ffprobe -v error -select_streams v:0 -show_entries stream=profile input.mp4
Isso exibe o nome do perfil (Baseline, Main ou High) para que você possa verificar suas configurações de codificação ou checar um arquivo recebido de outra pessoa.