Youtube, dailyMotion, MetaCafe… cada día hay más páginas que se dedican a alojar nuestros vídeos para mostrarlos al mundo o para utilizar su reproductor dentro de nuestro blog o página personal.
Para montar una página de vídeos existen dos posibilidades, la página que aloja sus propios vídeos o la página que aloja los vídeos de otra página más grande (casi siempre, y como no, Youtube).
Nosotros nos hemos decidido por montar nuestra propia página de vídeos, un clon de Youtube, y para ello hemos estado instalando un script llamado clipshare (de pago).
Clipshare es un script desarrollado en PHP que nos permite montar de una manera muy sencilla un clon de Youtube o similar. Con todas sus características:
- Gestión de vídeos (subir / borrar / administrar)
- Gestión de usuarios.
- Tags
- Buscador
- Categorías
- Su propio reproductor flash
- Conversión automática a formato FLV
- Comentarios
- Últimos vídeos, vídeos más vistos, etc.
- Y mucho más.
Es un software muy versátil que dispone de gran cantidad de opciones para montar nuestra propia página web de vídeos.
El único problema es que dispongamos de los codecs y herramientas necesarias en nuestro servidor para poder realizar la conversión de estos vídeos, ya que se necesitan bastantes herramientas para poder convertir todo tipo de formatos (avi, wmv, mpeg, flv) al formato final que vamos a utilizar en nuestro reproductor flash de vídeos: FLV.
Tenemos dos opciones: O bien preguntamos a nuestros proveedor de hosting si disponemos de esas características o bien lo instalamos por nuestra cuenta, para lo cual necesitaremos tener acceso vía shell a nuestra cuenta.
En alojamientos como Dreamhost o BlueHost (entre otros cientos) tenemos ese acceso (aunque no por defecto y debemos activar su casilla correspondiente.
Podemos tener alguno de los servicios instalados (seguramente FFMPEG) pero puede que nos falte alguno por instalar. Pues bien vamos a instalar todos ellos.
Lo primero ¿qué necesitamos?
Los requerimientos de Clipshare los podemos encontrar en su página web (php, mysql, apache…) pero nos centraremos en que necesitamos:
- GD Library 2 or higher
- Mplayer + Mencoder
- Flv2tool
- Libogg + Libvorbis
- LAME MP3 Encoder
Estas librerías son las que se necesitan, aunque instalaremos algunas más para asegurarnos una total compatibilidad.
1.- Preparamos la estructura de directorio
mkdir bin
mkdir lib
mkdir tmp
chmod 777 tmp
chmod 775 bin
chmod 775 lib
2.- Creamos algunas variables (si es necesario las incluiremos en nuestro fichero .bash_profile) aunque si lo instalamos todo en la misma sesión no es necesario.
export TMPDIR=$HOME/tmp
export PATH=$HOME/bin:$PATH
export LD_LIBRARY_PATH=$HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH
export CPATH=$HOME/include:/usr/local/include:$CPATH
export LIBRARY_PATH=$HOME/lib:/usr/local/lib:$LIBRARY_PATH
mkdir src
cd src
3.- Instalamos AUTOCONF
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz
tar -zxf autoconf-2.60.tar.gz
cd autoconf-2.60
./configure "--prefix=$HOME"
make
make install
4.- Instalamos LAME
wget http://nchc.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
tar -zxvf lame-3.97.tar.gz
cd lame-3.97
./configure "--prefix=$HOME" "--enable-shared"
make
make install
5.- Instalamos LIBOGG
wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
tar -zxf
libogg-1.1.3.tar.gz
cd libogg-1.1.3
./configure --prefix=$HOME
make
make install
6.- Instalamos LIBVORBIS
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz
tar -zxf libvorbis-1.1.2.tar.gz
cd libvorbis-1.1.2
./configure --prefix=$HOME
make
make install
7.- Instalamos FFMPEG. Recomiendo instalarlo bajo nuestro usuario aún cuando el sistema tenga su propio ffmpeg instalado, ya que puede que el ffmpeg del sistema no este compilado con las opciones que necesitamos.
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg/
./configure "--prefix=$HOME" "--cross-compile" "--enable-shared" "--enable-mp3lame" "--extra-cflags=-I$HOME/include" "--extra-ldflags=-L$HOME/lib"
make
make install
8.- Instalamos DG2 (opcional)
wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
tar -zxf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=$HOME
make
make install
9.- Instalamos MPLAYER + MENCONDER
Hemos instalado los codecs básicos, pero podemos elegir la versión full de todos ellos “all-20071007.tar.bz2″ lo que nos asegura que tendremos todos los codecs necesarios y podremos convertir desde más ficheros origen. En el caso de que tuviésemos muchos errores con el pack básico podemos instalar este después.
wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
bunzip2 essential-20071007.tar.bz2
tar -xf essential-20071007.tar
mv essential-20071007 $HOME/lib
wget http://www3.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc1.tar.bz2
bunzip2 MPlayer-1.0rc1.tar.bz2
tar -xf MPlayer-1.0rc1.tar
cd MPlayer-1.0rc1
./configure --prefix=$HOME --with-codecsdir=$HOME/lib/essential-20071007
make
make install
10.- Instalamos RUBY (opcional)
Ya casi todos los servidores traen instalado Ruby por defecto, lo comprobaremos antes de instalarlo.
cd $HOME/src
wget ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz
tar -zxf stable-snapshot.tar.gz
cd ruby
make distclean
./configure --prefix=$HOME
make
make install
11.- Instalamos FLVTOOL
wget http://rubyforge.org/frs/download.php/9225/flvtool2_1.0.5_rc6.tgz
tar -zxvf flvtool2_1.0.5_rc6.tgz
cd flvtool2_1.0.5_rc6
ruby setup.rb config --prefix=$HOME
ruby setup.rb setup
ruby setup.rb install
12.- Instalamos FFMPEG-PHP
wget http://superb-east.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.5.0.tbz2
bunzip2 ffmpeg-php-0.5.0.tbz2
tar -xf ffmpeg-php-0.5.0.tar
cd ffmpeg-php-0.5.0
phpize
./configure "--prefix=$HOME" "--libdir=$HOME/lib" "--bindir=$HOME/bin" "--with-ffmpeg=$HOME"
make clean
make install
Si todo ha ido correcto lo único que nos quedaría por hacer sería incluir las rutas de estos programas para nuestro PHP y que desde los propios ficheros de clipshare se pueda acceder a las herramientas de conversión.
Un datos MUY IMPORTANTE es modificar el código para la conversión que utiliza clipshare. Algunos vídeos MOV, wmv, asf… requieren que al utilizar MENCODER se le pase el parámetro “-ofps” que indica los frames por segundo.
Podemos definir dentro de convert.php o dentro de upload.php este parámetro a un valor entre 25 y 35, válido para la gran mayoría de vídeos aunque podemos ajustarlo según nuestras necesidades o utilizando la consulta con FFMPEG que se realiza en el fichero upload.php para sacar la duración de nuestro vídeo.