
FFmpeg
Estrutura de Processamento Multimídia de Código Aberto
Codifique, Decodifique, Transcodifique, Faça Streaming e Converta Arquivos de Áudio e Vídeo via API do FFmpeg.
O que é FFmpeg?
FFmpeg é uma estrutura multimídia de código aberto líder que permite aos desenvolvedores gravar, converter e transmitir conteúdo de áudio e vídeo. Ela inclui um conjunto abrangente de bibliotecas — como libavcodec, libavformat, libavutil, libavfilter, libswscale e libswresample — fornecendo ferramentas robustas para lidar com diversas tarefas multimídia. Com suporte a centenas de codecs e formatos, o FFmpeg alimenta inúmeras aplicações, desde softwares de edição de vídeo até servidores de streaming e reprodutores de mídia.
O FFmpeg é amplamente adotado em diversos setores devido à sua flexibilidade, desempenho e suporte ativo da comunidade. Ele lida com tudo, desde conversão simples de formatos até filtragem complexa de vídeo e streaming em tempo real. Seja construindo um servidor de mídia, um reprodutor de desktop ou um pipeline de transcodificação baseado na nuvem, o FFmpeg oferece capacidades de processamento confiáveis e de alta qualidade. Suas ferramentas de linha de comando, como ffmpeg, ffplay e ffprobe, facilitam a integração em scripts e fluxos de trabalho automatizados, enquanto sua API em C e bindings (por exemplo, para Python) permitem controle programático aprofundado.
Começando com FFmpeg
Para começar a usar o FFmpeg, instale‑o via o gerenciador de pacotes do seu sistema (por exemplo, `apt install ffmpeg` no Ubuntu, `brew install ffmpeg` no macOS) ou baixe binários pré‑compilados no site oficial. Para uso programático, instale o wrapper Python via `pip install ffmpeg-python` ou use os cabeçalhos da biblioteca C oficial. O FFmpeg também está disponível no GitHub em [FFmpeg GitHub](https://github.com/FFmpeg/FFmpeg), onde você pode compilar a partir do código‑fonte para configurações personalizadas. Sua pegada leve e suporte multiplataforma o tornam ideal para implantações em desktop, servidor e embarcados.
Instalar FFmpeg via gerenciadores de pacotes
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# macOS (Homebrew)
brew install ffmpeg
# Python wrapper
pip install ffmpeg-python
Converter mídia entre formatos
FFmpeg se destaca na conversão de arquivos de mídia entre centenas de formatos e codecs. Você pode transcodificar vídeo de MP4 para WebM, extrair áudio de arquivos de vídeo ou mudar formatos de contêiner sem reencodificação (cópia de fluxo). Suas configurações padrão inteligentes garantem alta qualidade, enquanto opções avançadas permitem ajustar finamente a taxa de bits, resolução, taxa de quadros e parâmetros de codec. Seja preparando conteúdo para streaming na web, arquivamento ou reprodução em dispositivos específicos, o FFmpeg oferece controle preciso sobre a qualidade e compatibilidade da saída. A interface de linha de comando suporta cadeias de filtros complexas para redimensionamento, recorte e aplicação de efeitos durante a conversão.
Como converter MP4 para WebM com FFmpeg?
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm
Transmissão em tempo real e broadcast ao vivo
FFmpeg suporta ingestão, transcodificação e transmissão de mídia ao vivo por meio de protocolos como RTMP, HLS e SRT. Ele pode capturar de webcams, microfones ou fontes de rede e enviar streams para plataformas como YouTube, Twitch ou servidores RTMP personalizados. Com opções de baixa latência e streaming adaptativo de taxa de bits, o FFmpeg alimenta pipelines de transmissão ao vivo para eventos, jogos e vigilância. Sua capacidade de lidar com múltiplas entradas, sobrepor gráficos e aplicar filtros em tempo real o torna ideal para configurações de streaming de nível profissional. Você também pode segmentar a saída para DASH/HLS para reprodução adaptativa em clientes móveis e web.
Como transmitir um arquivo de vídeo ao vivo no YouTube?
ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -g 50 -c:a aac -b:a 160k -f flv "rtmp://a.rtmp.youtube.com/live2/your_stream_key"
Filtragem de vídeo e pós-processamento
O framework libavfilter do FFmpeg permite filtragem de vídeo em tempo real poderosa por meio de um grafo acíclico direcionado de filtros. Você pode cortar, redimensionar, girar, desentrelaçar, remover ruído, sobrepor marcas d'água, adicionar texto, ajustar cores e aplicar efeitos complexos como câmera lenta ou lapso de tempo — tudo sem reencodar todo o fluxo. Os filtros podem ser encadeados para processamento em múltiplas etapas, e a aceleração por hardware (por exemplo, NVENC, VAAPI, VideoToolbox) garante desempenho em GPUs modernas. Isso torna o FFmpeg indispensável para editores de vídeo, criadores de conteúdo e desenvolvedores que constroem pipelines de processamento de mídia que exigem aprimoramentos visuais ou normalização de formatos.
Como cortar, redimensionar e adicionar uma marca d'água a um vídeo?
ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]crop=1280:720:0:0[scaled];[scaled][1:v]overlay=10:10" -c:a copy output.mp4
Extrair e manipular metadados e legendas
O FFmpeg oferece controle total sobre metadados (tags) e legendas incorporadas em arquivos de mídia. Você pode extrair, editar ou remover metadados (por exemplo, título, artista, álbum, dados de GPS) usando comandos simples, ou converter legendas entre formatos como SRT, ASS e VTT. Ele suporta a queima de legendas no vídeo ou a incorporação delas como faixas separadas. Para fluxos de trabalho de acessibilidade e localização, o FFmpeg permite o processamento em lote de arquivos de legenda, ajustes de sincronização e gerenciamento de faixas de idioma. Isso o torna ideal para localização de legendas, gerenciamento de ativos de mídia e conformidade com padrões de transmissão que exigem metadados incorporados.
Como extrair legendas de um arquivo de vídeo?
ffmpeg -i input.mkv -map 0:s:0 -c:s srt output.srt
