FFmpeg: Solução ideal para Áudio e Vídeo

FFmpeg
FFmpeg: http://www.ffmpeg.org/

FFmpeg é uma solução completa para gravar, converter e transmitir áudio e vídeo. Desenvolvido para linux, também pode ser compilado para Windows.

O projeto está sempre sendo considerado muito experimental, apesar de funcionar muito bem, pois muitos componentes multimedia e recursos estão constantemente sendo adicionados. Pequenas atualizações são feitas e um espaço muito curto de tempo, por isso não é lançado ainda uma versão formal do projeto.

O projeto é formado por diversos componentes:

ffmpeg: Linha de comando para converter arquivos multimedia entre vários formatos diferentes.
ffserver: É um “multimedia streaming server” para transmissões ao vivo via HTTP. ( RTSP em desenvolvimento )
ffplay: É um simples “media player” com biblioteca FFmpeg
libavcodec: É uma biblioteca que contém “decoders” e “encoders” para codec de áudio e vídeo
libavformat: É uma biblioteca que contém demultiplexador e multiplexador para formatos de “container” multimedia.
libavutil: É uma biblioteca de ajuda que contém rotinas comuns para diferentes partes do FFmpeg.
libpostpro: É uma biblioteca que contém rotina de processamento pós video.
libswscale: É uma biblioteca que contém rotina de escala de imagem.
libavfilter: É o substituto do “vhook”, que permite o video ser modificado ou examinado entre o “decoder” e o “encoder”

Codecs Suportados:

* Snow
* FFV1
* ATRAC3
* H.261, H.263 and H.264/MPEG-4 AVC
* Indeo 2 and 3
* QDesign Music Codec 2, used by many QuickTime movies prior to QuickTime 7.
* Smacker video
* Sorenson 3 Codec used by many QuickTime movies
* Theora (together with Vorbis makes a base for the .ogg format)
* Truespeech
* TXD
* VP5 and VP6
* Vorbis
* Windows Media Audio
* Some Windows Media Video codecs, including WMV1, WMV2 and WMV3

The default MPEG-4 codec used by FFmpeg for encoding has the FourCC of FMP4.

Formatos

* ASF
* AVI
* BFI
* IFF
* RL2
* FLV
* Material Exchange Format
* Matroska
* Maxis XA
* MSN Webcam stream
* MPEG transport stream
* TXD
* OMA

Protocolos

* HTTP
* RTP
* RTSP
* TCP
* UDP

——————————————————————-

ubuntuInstalando em LINUX ( No exemplo, Utilizei o UBUNTU )

sudo aptitude install ffmpeg

Depois disso, basta utilizar o ffmpeg com os parametros necessário, que será apresentado em um novo POST !

——————————————————————-

logo_windowsInstalando em Windows ( No exemplo, Windows XP )

O Objetivo deste POST foi além de apresentar o FFmpeg, foi disponibilizar o executável para download, já que é complicado de encontrar e de compilar em Windows.

O download pode ser feito em: https://rafaelbiriba.com/ffmpeg-r16537-gpl-static-win32.zip
Fonte Original: http://ffmpeg.arrozcru.com/builds/
O arquivo .zip ( 6.5 MB ) possui a documentação do FFmpeg, a documentação da versão, uma dll (pthreadGC2) e os executáveis ffmpeg.exe e ffplay.exe.

Antes de utilizar-los, precisamos mover a dll (pthreadGC2) para dentro da pasta system32 do windows. Para isso copie o arquivo pthreadGC2.dll e cole em C:\WINDOWS\system32\ de forma que seja acessivel por:
C:\WINDOWS\system32\pthreadGC2.dll

Depois disso, os executáveis estão disponíveis para uso !
Sua utilização será exemplificada e explicada num próximo post. =)

Share
  • Ta quase lá! Mais um desses e ta promovido a tecnologia!

  • Pingback: Windows XP vs FFmpeg e Mplayer | Rafael Biriba Blog's()

  • Pingback: FFmpeg / Mplayer: Reproduzindo Vídeos | Rafael Biriba Blog's()

  • Pingback: FFmpeg: Conversão de mp4 para wmv | Rafael Biriba Blog()

  • Pingback: FFmpeg: Conversão de mp4 para wmv | Planeta Globo.com()

  • israel

    HUM!!!!MUITO INTERESSANTE…PARABENS..

  • Obrigado pelos elogios e volte sempre ! 😉

  • eh eu tentei neh, mas naum resolveste o meu problema, o computer continuas insistindo no demultiplexador quicktime, mas vlw ai!

    • Qual sistema operacional está usando ?

      Já tentou executar o vídeo pelo proprio FFPlay ?

      Abraços,

      • linux ubuntu! ei kra me ajudas com esse ffplay pq eu naum o axei para meu sistema operacional naum, abraços!

  • Ótimo artigo.

    É possível converter um .avi, por exemplo, em tempo de execução, para ser entregue via streaming tanto para um cliente que solicitar e for compatível com .flv, quanto para um que for compatível com .mp4?

    A intenção é manter apenas o .avi no servidor, e fazer a entrega em diversos formatos quando houver uma requisição.

    Obrigado.

    • Pesquisa por “media server” e vai achar soluções pagas como o Flash Media Server, Wowza e algumas soluções boas e gratuitas que fazem exatamente o que você precisa 😉

  • Mauricio

    Olá Rafael boa noite, você sabe em quais arquivos(funções etc..) são utilizado na conversão de imagens para video. Eu preciso apenas desta função e me é desnecessário executar o programa inteiro, quero agregar esta parte de conversão ao meu código porém ta dificil de intender qual comportamento da função ffmpeg que vária de acordo com os parametros.
    Se souber me manda um email para trocarmos informações.

  • Matheus Moretto

    Cara, ta aparecendo “failed to load ffm.peg.dll” quando eu tento abrir alguma musica no meu ares, o que faço ?

    • Já tentou procurar por essa dll no google ? Creio que você tenha que baixar e colocar no seu /Windows/System32 ou algo assim.