Preparación del servidor de video streaming
Requerimientos
Hardware:
Lista de requerimientos óptimos para la correcta utilización y optimización del servidor de video streaming.
Disco duro de al menos 200GB.
Procesador dual de 2.6GHz como mínimo.
Memoria RAM de 1GB
Sistema operativo Linux o MacOS.
Dependencias de software
Lista de dependencias de software en sistemas GNU/LINUX y MacOS.
gcc
Perl
ncurses
zlib
glibc-devel
autoconf
automake
lame
lame-devel
Instalación
Instalación del software base para la posterior implementación del sistema de video streaming bajo demanda (VoD). Recordar que la instalación se centrara básicamente para el sistema operativo MacOS y se debe ejecutar como root.
macports
Descargar desde http://www.macports.org/ el paquete (.pkg) macports e instalarlo, acto seguido ejecutar lo siguiente:
$ sudo port –d selfupdate
twolame – libtool-devel
$ sudo port install twolame
$ sudo port install libtool-devel
lame
Descargamos lame desde http://lame.sourceforge.net/download.php
$ tar –xvzf lame***.tar.gz
$ ./configure
$ make
$ sudo make install
nasm – yasm – perl-dbi
$ sudo port install nasm
$ sudo port install yasm
$ sudo port install perl-dbi
ffmpeg
$ cd /usr/local/src
$ sudo svn export svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
$ cd ffmpeg
$ ./configure --enable-libmp3lame --disable-mmx
$make; sudo make install
flvtool2
Descargar flvtool2 desde http://www.inlet-media.de/flvtool2/
$ tar-xvzf flvtool***.tgz
$ cd flvtool***
$ ruby setup.rb config
$ruby setup.rb setup
$ sudo ruby setup.rb install
p5-* (paquetes perl)
$ sudo port –v install p5-class-data-inheritable
$ sudo port -v install p5-exception-class
$ sudo port -v install p5-readonly
AMF-Perl
Descargar AMP-perl desde http://search.cpan.org/~simonf/AMF-Perl-0.15/lib/AMF/Perl.pm
$ tar -xvzf AMP-Perl***.tar.gz
$ cd AMP-Perl***
$ perl Makefile.PL
$ make;make test;sudo make install
Data-TemporaryBag
Descargar Data-TemporaryBag-0.09.tar.gz desde http://search.cpan.org/~ysas/Data-TemporaryBag-0.09/TemporaryBag.pm
$ tar -xvzf Data-TemporaryBag***.tar.gz
$ cd Data-TemporaryBag***
$ perl Makefile.PL
$ make;make test;sudo make install
flv2swf
flv2swf se encuentra incluido en FLV-Info-0.17. Descargar FLV-Info-0.17 desde http://search.cpan.org/~clotho/FLV-Info-0.17/bin/flv2swf
$ tar -xvzf FLV-Info-***.tgz
$ cd FLV-Info***
$ perl Makefile.PL
$ make;make test;sudo make install
SWF-File
Descargar SWF-File-0.42 desde http://search.cpan.org/~ysas/SWF-File-0.42/lib/SWF/File.pm
$ tar -xvzf SWF-File***.tar.gz
$ cd SWF-File***
$ perl Makefile.PL
$ make;make test;sudo make install
Funciones básicas para la tarea de transcodificacion
Para importar un video de cualquier formato al formato de video flash "flv" con las herramientas anteriormente instaladas procedemos de la siguiente manera:
Importando al formato flash de video: FLV
Hacemos uso del programa "ffmpeg" de la siguiente manera:
$ ffmpeg -i video_in.avi -ar 22050 -r 30 -ab 32k -b 1024k -f flv -s 320x240 video_out.flv
donde:
i : Nombre del video a codificar
ar : Audio sampling rate (Hz)
ab : Audio bit rate
f : Formato
s : Tamaño de salida del video (XxY)
r : Fotogramas de video por segundo
b : Video bit rate
Las opciones mencionados con anterioridad son totalmente variables y dependen en su totalidad a parámetros deseados que el video resultante pudiera tener, tales como: mayor tamaño, mejor calidad, peso del video, etc.
Como resultado de diversas pruebas y análisis en relación al formato de encapsulamiento y transcodificacion a formato flash, análisis del tamaño del video resultante, ancho de banda disponible, reproductores para video de formato flash y programas de código abierto como el ffmpeg, se ha llegado a las siguientes conclusiones:
El formato flash de video puede ser reproducido con gran facilidad por casi un 100% de navegadores web existentes en la actualidad, por lo que la difusión de video se hará haciendo uso de del formato flash "FLV".
Las opciones recomendadas para la codificación de videos a formato flash haciendo uso del ffmpeg son:
ar : 22050
ab : 32k
b : 1024k
s : 640x480
r : 30
Manipulación de metadatos en el formato flash de video "FLV"
Para introducir datos como el tiempo de duración del video en flash utilizamos el programa flvtools de la siguiente manera:
$ flvtool2 –U video_in.flv
La sentencia mostrada arriba permitirá introducir metadatos al video codificado a formato flash, tales como tiempo de duración del video, subtítulos, etc.
Conversión del formato de video flash streaming "FLV" al formato de video flash archivo "SWF"
Si bien es cierto que ambos formatos FLV y SWF son formatos flash de video, dichos formatos son usados para propósitos diferentes. Tenemos que el FLV es para emisión de video (video streaming) mientras que el formato SWF es para guardar archivos de video completos.
Para convertir del formato FLV al formato SWF de flash procedemos a ejecutar lo siguiente:
$ flv2swf video_in.flv video_out.swf
