Archivo para agosto, 2008

Convertir videos a FLV con PHP usando ffmpeg en CentOS con CPanel

Miércoles, agosto 27th, 2008

Desde hace relativamente poco tiempo y sobre todo a raíz del “efecto Youtube”, cada vez es más común encontrarnos con proyectos web 2.0 que permiten a los usuarios subir sus propios vídeos. Y por lo tanto también encontrarnos con el problema de la variedad de formatos. Hace ya tiempo que el formato FLV de flash se convirtió en el lider indiscutible en Internet y por lo tanto es siempre la primera opción a la hora de abordar uno de estos proyectos. Pero… ¿cómo convierto los videos que han subido mis usuarios a FLV?

Esa es una buena pregunta, que afortunadamente tiene respuesta. Las herramientas necesarias:

- PHP 5
- ffmpeg
- Extensión ffmpeg-php
- FLVTool2

Convertir video a FLV usando PHP

Voy a empezar relatando mi experiencia en la instalación de estas herramientas. En mi caso, en un servidor con Linux CentOS  y CPanel.

añadir repositorio Dag y Rpmforge:

vi /etc/yum.repos.d/dag.repo
Pegar lo siguiente:
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1

Añadir

/usr/local/lib

a

/etc/ld.so.conf

y ejecutar

ldconfig -v

Y luego:


rpm -Uhv http://apt.sw.be/redhat/el4/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el4.rf.i386.rpm
yum install ffmpeg ffmpeg-devel

Instalar ffmpeg-php

- descargarlo y seguir las instrucciones de http://ffmpeg-php.sourceforge.net/

Una vez instalado, deberemos añadir la línea:extension="ffmpeg.so"

al php.ini (en mi servidor está en /usr/local/lib/php.ini, puedes ver dónde está en el tuyo con un phpinfo() ).
Luego reiniciamos Apache y con un phpinfo() podremos comprobar que lo tenemos correctamente cargado.

ffmpeg php

Instalar FLVTool2

– Descargar de http://inlet-media.de/flvtool2 .
- Seguir las instrucciones del README (necesitarás tener instalado ruby. yum install ruby ).

Llegados este punto, tendríamos todas las herramientas necesarias instaladas en nuestro servidor. El siguiente paso, será crear el código PHP necesario para hacer funcionar la maquinaria. Pero eso lo dejo para un siguiente artículo ;)

Zend_Mail y Servidores Microsoft Exchange

Miércoles, agosto 20th, 2008

Durante el día de ayer y casi toda esta mañana, he estado dándole vueltas a un problema con los archivos adjuntos que enviaba usando el Zend_Mail.

El script PHP genera una imagen que luego es enviada como adjunto usando las funciones de la clase Zend_Mail. Hasta aquí todo bien. Lo pruebo y funciona correctamente. Lo prueba el cliente… y no le funciona. El adjunto llega corrupto y no puede ver la imagen. Mi primera suposición es que sería algún problema de Windows (no iba muy mal encaminado), pero dificil discernir cuando el cliente tiene instalado un filtro antivirus, otro filtro antispam y la gestión del correo en un servidor Microsoft Exchange…

Bueno, pues para los que os encontreis con el mismo problema, aquí va la solución:

Cambiar el valor de la constante LINELENGTH en el archivo Zend/Mime.php (sobre la línea 41) y poner 72 en vez de 74.

Al parecer al servidor Microsoft Exchange no le gusta que las lineas sean muy largas en los adjuntos codificados…

Gracias, gracias y mil gracias a David Brännlund .