Alguns dos ambientes que eu administro precisam utilizar componentes para encode de Video, as agências que desenvolvem as aplicações para empresa que eu trabalho costumam utilizar o ffmpeg para esta função, vou explicar neste post como realizar a instalação e testar o funcionamento do componente.
De acordo com o site oficial do ffmpeg é uma solução cross-platform completa para gravar, converter e fazer streaming de audio video utilizando a biblioteca libavcodec, além de instalar o ffmpeg vamos precisar a biblioteca ffmpeg-php.
Para facilitar nossa vida como sempre, vamos utilizar um repositório que tenha as dependências necessárias para instalação, neste caso vamos usar o DAG.
~# touch /etc/yum.repos.d/dag.repo
Insira o seguinte conteúdo no arquivod dag.repo
[dag] name=DAG RPM Repository baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1
Vamos instalar também as GPGKey do repositório
~# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 ~# wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt ~# rpm --import RPM-GPG-KEY.dag.txt
Agora vamos instalar as bibliotecas do FFMPEG
~# yum install ffmpeg ffmpeg-devel
Obs.: Caso ocorra algum problema na verificação das chave utilize o parâmetro –nogpgcheck (sem que não é o indicado)
Após a instalação ffmpeg pode prosseguir com a instalação da biblioteca PHP
Baixe a biblioteca do sourceforge.net (http://sourceforge.net/projects/ffmpeg-php/files/ffmpeg-php/)
Descompacte o pacote
~# tar -xjf ffmpeg-php-0.6.0.tbz2
Vamos compilar utilizando o phpize
~# cd ffmpeg-php-0.6.0
~# phpize
Agora que vem o pulo do gato, existe um bug nesta versão do ffmpeg-php, para resolver o problema execute o comando abaixo para substituir um valor em uma das linhas do arquivo ffmpeg_frame.c
~# sed -i "s/PIX_FMT_RGBA32/PIX_FMT_RGB32/g" ffmpeg_frame.c
Pronto só compilar agora
~# ./configure && make && make install
Por fim precisamos fazer com que a biblioteca seja carregada, existe duas forma de fazer isso, adicionando o caminho completo da biblioteca no arquivos php.ini ou criar um arquivo .ini dentro do diretório /etc/php.d/ (eu prefiro a segunda), vale lembrar que estou usando o CentOS, acredito que também funcione no Fedora e no Red Hat Enterprise
~# echo extension=ffmpeg.so >> /etc/php.d/ffmpeg.ini
Para testar o módulo pasta copiar o arquivo test_ffmpeg.php que esta na pasta ffmpeg-php-0.6.0 para o diretório de qualquer virtualhost que você tenha configurado no servidor, ou fazendo um teste com função phpinfo().
Bom pessoal é isso, espero que este post ajude !!!
Boa tarde, poderia me ajudar. Estou compilando o ffmpeg e estou recebendo o seguinte erro : configure: error: ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the –enable-shared option.
poderia me ajudar?
Este erro costuma ocorrer quanto o pacote ffmpeg-devel não esta instalado, você fez a instalação deste pacote?