FFMPEG e FFMPEG-PHP na Dreamhost ou Hospedagem Compartilhada
Publicado em 7 de agosto de 2008 as 01h e 09min.
Já pensou em ter um site como o YouTube? Pois é, com esse recurso é possível!!! O FFMPEG é um conversor de áudio e vídeo de alta velocidade e compatibilidade com qualquer típo de arquivo. Além de converter “qualquer um” em “qualquer outro” também é possível personalizar as conversões de acordo como você quiser.
Demorei bastante para encontrar algo “consistente” na internet sobre FFMPEG e FFMPEG-PHP bem como Arquivo PHP.INI em hospedagens compartilhadas portando resolvi compartilhar o pouco que sei aqui. Gostaria de receber comentários aqui na página, agradecimentos, sujestões, críticas e observações são sempre bem vindas!!!!
Esta poderosa aplicação permite sua instalação em ambientes Linux, o que inclui também hospedagens compartilhadas de sites. O barato desse programa é a possibilidade de converter qualquer arquivo de áudio e vídeo no tipo de arquivos FLV.
Arquivos .flv são arquivos que o flash player utiliza para reproduzir vídeos. Sendo assim um desenvolvedor criativo com um pouco de programação e utilizando essa aplicação pode tranquilamente e sem muitas lamúrias implementar em seu projeto a possibilidade dos usuários enviarem seus vídeos para depois serem visualizados no site atravéz de um Flash Player. Em sites mais conhecidos que fazem isso podem ser citados: youtube, metacafe, liveleak, etc…
O que é preciso para desenvolver um site tipo onde os visitantes possam enviar os vídeos e vê-los depois através da página?
Primeiramente é preciso estar dentro de alguns requisitos. Vou abordar aqui os requisitos mínimos, visto que a grande maioria dos pequenos desenvolvedores buscam um meio onde não há necessidade de servidores dedicados por logo envolverem grandes valores e dificuldades de se realizar.
Podemos dizer essencial para um projeto desses:
- Razoável conhecimento em PHP, MYSQL, Action Script, Flash, etc.
- Grande espaço de disco em uma hospedagem.
- Acesso à execução do SSH na hospedagem.
- Personalização do PHP.INI da compilação do PHP.
- Instalação do FFMPEG.
- Compilar PHP com a extensão FFMPEG-PHP.
Sobre Espaço em Disco na Hospedagem:
Quanto a espaço em disco, recomendo a Dreamhost, que é uma empresa que merece à visita à sua página. Eles disponibilizam acesso ao SSH, o que não é comum em servidores compartilhados, por outro lado, permite que façamos a instalação de pacotes, inclusive instalar uma compilação própria do PHP com as opções que você quiser. Ah, e também a personalização do PHP.INI sem ter que pedir favor ao suporte técnico. Visitem e se esbaldem: www.DREAMHOST.com
Sobre Execução de SSH
Uma vez que sua hospedagem permita acesso ao SSH nós vamos utilizar um programa para a execução das linhas de comando no nosso servidor. Para isso eu recomendo o programa PuTTy. É um programa cliente GRATUITO que executa comandos em computadores remotos, no nosso caso, o nosso servidor na Dreamhost. Ele é leve para rodar e descomplicado de usar. Baixe ele agora e aproveite-o.
Personalização do PHP.INI na nossa Compilação do PHP
No nosso caso, utilizamos uma hospedagem compartilhada nos servidores da Dreamhost, isso significa que a mesma Compilação do PHP que usamos é usada por outros usuários que também tem conta na Dreamhost.
Para que possamos utilizar as facilidades do FFMPEG e o FFMPEG-PHP no nosso site, precisamos alterar algumas coisas em nosso arquivo PHP.INI. Mas ele não está acessível para isso.
É preciso então criarmos uma versão desse arquivo e que ele seja carregado toda vez que executamos um arquivo PHP, e não mais o arquivo compartilhado.
Sobre o FFMPEG
A biblioteca FFMPEG é a responsável por converter os vídeos que foram enviados ao site no formato para ser visualizado no player de vídeo. Ele é uma extensão que deve ser carregada diretamente no nosso arquivo PHP.INI. Para maiores informações sobre ela, visitem a documentação no site oficial da biblioteca.
A extensão FFMPEG-PHP
Essa extensão do PHP permite diversas operações diretamente atravéz de execução de scripts que facilitam o uso da biblioteca FFMPEG. Veja a documentação no site oficial para maiores detalhes.
Como instalar o FFMPEG e o FFMPEG-PHP em Hospedagem Compartilhada?
A grande benção é que neste site (www.SHERIN.in) existe uma rotina de execução de scripts SSH que vão simplesmente fazer alguns favores. Veja só que barbada:
- Instala o FFMPEG
- Instala o FFMPEG-PHP
- Instala o PHP
Isso mesmo! Ele instala uma compilação própria e única do PHP para rodar com os pacotes que você desejar mesmo em uma hospedagem compartilhada.
Os scripts SSH que são executados fazem toda a instalação automaticamente, desde o download dos arquivos até a limpesa das pastas temporárias que são criadas durante a instalação.
Vamos lá!
Conecte ao seu servidor utilizando o cliente PuTTy: Utilize o nome do servidor, o usuário e a senha da sua conta.


Observem que a senha não aparece ao ser digitada, mas cada tecla é considerada, mesmo que não apareça nada na tela do terminal.

Agora estamos conectados:

Agora vamos baixar o pacote de instalação de www.SHERIN.in: Esse link pode ser encontrado no site atravéz daqui. Recomendo pegarem o link lá, pois se sair alguma atualização, vocês pegarão o link atualizado: Para colar o link, o tradicional ctrl + c não funciona, então, utilizem o Clique Direito do Mouse!
wget http://downloads.sherin.in/scripts/sharedhostffmpeg/sharedhostffmpeg.1.0.2.tar.gz


Agora vamos descompactar nosso pacote em uma pasta:
tar -vzxf sharedhostffmpeg.1.0.2.tar.gz

Arquivo Descompactado, agora vamos entrar na pasta que foi criada pela descompressão do arquivo:
cd sharedhostffmpeg.1.0.2

Agora, dentro da nossa pasta, vamos executar os arquivos SH que farão toda a instalação do sistema para nós:
sh install

Haverá uma tela com informações adicionais, e basta pressionar ENTER para iniciar a instalação:
<enter>

Pronto, instalação em andamento!
Agora é a hora de relaxar, este processo vai demorar bastante para ficar pronto. Durante as instalações que eu fiz, não verifiquei, mas logo precisamos ter uma conta com bastante espaço em disco para baixar todos os pacotes, descompactá-los e compilá-los. Acredito que isto não seja problema na Dreamhost, não é mesmo? No site Sherin diz ser necessário pelo menos 200 Mbytes de espaço livre, eu deixem bem mais que isso.
Ao finalizar a Instalação, será solicitado que você faça algumas mudanças:
Criar uma pasta “cgi-bin” na raiz do seu site:
mkdir $HOME/seudominio.com.br/cgi-bin
Agora vamos copiar o arquivo “php-cgi” que está na pasta bin para a pasta “cgi-bin” que você acabou de criar, porém com o nome modificado para “php.cgi”:
cp $HOME/bin/php-cgi $HOME/seudominio.com.br/cgi-bin/php.cgi
Vamos copiar também o arquivo “htaccess.conf” da pasta “etc” para a pasta raiz do seu site com o nome de “.htaccess”. Este é o arquivo responsável por carregar a sua compilação de PHP juntamente com o ffmpeg e ffmpeg.php no seu site.
cp $HOME/etc/htaccess.conf $HOME/seudominio.com.br/.htaccess
Atenção!
Em algumas instalações que fiz, aconteceu de ao término da instalação, não se encontravam parte dos arquivos no diretório BIN, inclusive o arquivo “php-cgi”, este problema foi relatado também por Alison Oliveira que tomou por base este artigo.
Não sei relatar qual solução tomar, pois o que fiz foi simplesmente reiniciar a instalação e na segunda ou terceira tentativa a instalação era concluída com sucesso. Pesquisando encontrei mais pessoas que relataram o mesmo problema, uns dizendo que basta aumentar o espaço em disco para aquele usuário, outros dizendo que o problema se dá por a execução não conseguir baixar algum pacote.
Se serve como base, notei que somente as instalações que chegavam até a mensagem final de 100% concluído é que continham todos os arquivos instalados.
Quase prontos!
Bom, agora só é preciso fazer uma alteração ainda:
Vocês devem ter notado que eu renomeei o arquivo “$HOME/bin/php-cgi” na hora da cópia para “php.cgi”.
No arquivo “.htaccess” que vocês acabaram de copiar para a raiz do site, ainda consta dentro dele um caminho para o arquivo “php-cgi”. Logo isso não vai funcionar! Portando, vocês por gentileza utilizando um editor de textos comum como o bloco de notas, atravéz do FTP ou até mesmo aos menos leigos algum editor via SSH façam o favor de alterar o nome do arquivo dentro do arquivo “.htaccess” para o nome de arquivo correto: php-cgi para php.cgi.
Uma vez que vocês fizeram todos esses passos com sucesso, criem um arquivo no seu servidor com o seguinte conteúdo:

Chamem este arquivo do seu site no navegador e verifiquem se foi carregado com sucesso a nova compilação do php com os pacotes ffmpeg e a extensão ffmpeg-php:

Observem também que o arquivo “php.ini” que é carregado não é mais o arquivo compartilhado do servidor o qual não temos acesso e sim um arquivo que agora está acessível por FTP ou SSH para alterar como quisermos:

Nosso arquivo PHP.INI agora está disponível para edição atravéz do nosso FTP:

Voalá!!! Espero que esta dica seja útil à alguém.
Se foi, deixem seu recado, mesmo que para agradecer, revisar, reclamar, criticar, sugerir, seja o que for. Agradeço muito.
Um abraço à todos.
3 Respostas em "FFMPEG e FFMPEG-PHP na Dreamhost ou Hospedagem Compartilhada"
Luiz em 15 de setembro de 2008
o Alison Acima teve esse problema que ele descreveu, e eu por coincidência também passei por ele algumas vezes, sendo assim fiz um update no post com a solução para este problema.
Pablo em 6 de dezembro de 2008
Ola
Este seu tutorial ainda vale para DEZ 2008 ?
Pergunto isto porque o Dreamhost a partir de SET 2008 nao permite mais custom php.ini. Eu tinha varias contas rodando customizado e a partir de SET todos nao funcionaram mais.


Alison Oliveira em 12 de agosto de 2008
Olá, não deu certo não cara… o arquivo php-cgi que deveria estar na pasta bin não se encontra!!!