Coleção de bibliotecas em C e ferramentas de linha de comando para decodificar, codificar, converter, filtrar e transmitir áudio, vídeo e legendas.
leandromoreira/digital_video_introduction
Uma introdução prática e acessível a conceitos de vídeo digital, com cores, tipos de quadro, codecs como H.264, H.265, VP9 e AV1, streaming e exemplos com FFmpeg.
- Estrelas
- 16,380
- Forks
- 1,381
- Issues abertas
- 19
- Último commit
- ontem
O que é?
Este guia prático e introdutório explica como o vídeo digital funciona. Ele é voltado a desenvolvedores de software, mas escrito para que qualquer pessoa consiga acompanhar. O conteúdo apresenta termos básicos, como pixels, resolução, proporção de tela e taxa de bits, e depois explica como o vídeo é comprimido pela remoção de redundâncias em cores, no tempo e no espaço.
O guia aborda subamostragem de croma, quadros I, P e B, estimativa de movimento, predição intra, transformadas, quantização e codificação entrópica. Ele mostra como funciona um codec genérico e quais são as diferenças entre H.264, H.265, VP9 e AV1. Uma seção posterior trata de streaming online, incluindo download progressivo, streaming adaptativo e proteção de conteúdo.
Muitas seções incluem exemplos executáveis. Eles usam comandos de FFmpeg e mediainfo em contêineres, além de notebooks Jupyter que visualizam matrizes de imagens, coeficientes DCT e vetores de movimento. O projeto está traduzido para vários idiomas.
Recursos principais
- 01Explica conceitos fundamentais, como modelos de cor, YCbCr, subamostragem de croma e taxa de bits.
- 02Descreve os tipos de quadro I, P e B e como a predição inter e intra remove redundâncias.
- 03Apresenta as principais etapas de um codec genérico, do particionamento ao formato do bitstream.
- 04Compara H.264, H.265, VP9 e AV1 e conta a história por trás deles.
- 05Inclui exemplos práticos com FFmpeg e Jupyter para inspecionar arquivos de vídeo.
Casos de uso
- Integrar engenheiros que trabalham com players de vídeo, streaming ou pipelines de mídia.
- Aprender como configurações de codec, como o intervalo entre keyframes e os quadros B, afetam o tamanho do arquivo.
- Ensinar os fundamentos da compressão de vídeo em um workshop ou curso.
Início rápido
- 1
Clone o repositório
git clone https://github.com/leandromoreira/digital_video_introduction.git - 2
Acesse a pasta do projeto
cd digital_video_introduction - 3
Execute o script de configuração (requer Docker)
./setup.sh
Antes de usar
- As seções práticas exigem que o Docker esteja instalado.
- É um guia de aprendizado, não uma biblioteca de software nem uma ferramenta.
Em coleções
Tópicos
Perguntas frequentes
- O que é digital_video_introduction?
- Uma introdução prática e acessível a conceitos de vídeo digital, com cores, tipos de quadro, codecs como H.264, H.265, VP9 e AV1, streaming e exemplos com FFmpeg. Este guia prático e introdutório explica como o vídeo digital funciona. Ele é voltado a desenvolvedores de software, mas escrito para que qualquer pessoa consiga acompanhar. O conteúdo apresenta termos básicos, como pixels, resolução, proporção de tela e taxa de bits, e depois explica como o vídeo é comprimido pela remoção de redundâncias em cores, no tempo e no espaço.
- digital_video_introduction é gratuito? Qual é a licença?
- digital_video_introduction é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- digital_video_introduction ainda é mantido?
- Manutenção ativa. O último commit de digital_video_introduction foi em 5 de nov. de 2026.
- Para que posso usar digital_video_introduction?
- Integrar engenheiros que trabalham com players de vídeo, streaming ou pipelines de mídia. Aprender como configurações de codec, como o intervalo entre keyframes e os quadros B, afetam o tamanho do arquivo. Ensinar os fundamentos da compressão de vídeo em um workshop ou curso.
- Como instalar digital_video_introduction?
- Clone o repositório: git clone https://github.com/leandromoreira/digital_video_introduction.git Acesse a pasta do projeto: cd digital_video_introduction Execute o script de configuração (requer Docker): ./setup.sh
- Onde consigo digital_video_introduction?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/leandromoreira/digital_video_introduction
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Transcodificador de vídeo de código aberto para Linux, Mac e Windows que converte vídeos existentes para MP4, MKV ou WebM, compatíveis com celulares, TVs, consoles e navegadores.
Interface gráfica multiplataforma para FFmpeg que corta, recorta e remuxa arquivos de vídeo e áudio sem recodificação.
Software de código aberto para CFTV e videovigilância no Linux, que captura, analisa, grava e monitora câmeras IP, USB e analógicas.
Brotli é um formato de compressão sem perdas de uso geral e uma biblioteca de referência, especificados na RFC 7932, com taxas de compressão comparáveis às dos melhores métodos de uso geral.
Streaming de desktop remoto pela web com baixa latência em Rust, enviando H.264 por WebSocket para um navegador que decodifica com WebCodecs.