- Compilando ffmpeg.
- Como trabajar con libavcodec,libavformat
- Es posible compilar libavcodec,libavformat para iphone?.
- Qué entornos de desarollo son los mas recomendados.
- Creando nuestro primer programa basico
1. Compilando ffmpeg.
Para empezar comenzaremos compilando nuestras librerias de la siguiente forma.
Podemos conseguir el codigo fuente desde subversion ( la ultima version en desarollo ), o,directamente conseguir otras versiones qué estan en revision o en fase final en formato tar,lo aconsejable es utilizar la ultima version desde subversion.Para eso simplemente nos desplazamos asta nuestra terminal en GNU/Linux, o en windows con un cliente grafico o en Mac con la terminal, y descargamos los ficheros de la siguiente direccion:
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
Una vez tenemos los ficheros descargados nos desplazamos asta el directorio:
cd ffmpeg
Una vez nos hemos desplazado asta el directorio, existira un bonito fichero configure qué nos permitira ejecutar el comando tan tipico ( configure ) qué nos permitira especificar una serie de parametros para compilar nuestras queridas librerias y programas acompañados.
Especifico claramente:
./configure --help: nos muestra los flags con los qué podemos compilar nuestro software.
--enable-shared: genera las dependencias necesarias para utilizar con los programas acompañados por el software.
./enable-static: genera las librerias de desarollo qué son utilizables en Code::Blocks, en xcode, y en otros entornos.
Flags adicionales:
--enable-libx264 = Por defecto ffmpeg solo puede decodificar con h264, con x264 podemos utilizar el codec x264 con otros formatos ( flv ) etc.
--enable-libvorbis= Añade soporte con libvorbis
Tambien se pueden especificar otros flags para añadir compatibilidad con otros codecs, a gusto del usuario.
Una vez estemos dentro del directorio, teclearemos el siguiente comando:
./configure --disable-shared --enable-static
Se configura el codigo fuente para ser compilado sin generar las shared libraries, unicamente generaremos las dependencias necesarias para trabajar con el entorno de desarollo qué trabajaremos qué por defecto se instalara en /usr/local/lib, cabe destacar qué podemos especificar la ruta de instalacion de ffmpeg de la siguiente manera:
./configure --disable-shared --enable-static --prefix="directorio"
Compilado y generadas las dependencias, tendremos qué tener varios ficheros libavcodec.a, libavformat.a estas librerias son necesarias para trabajar con ffmpeg.
2. Como trabajar con libavcodec,libavformat.
Primero tendremos qué añadir los siguientes archivos a nuestro entorno de desarollo:
libavcodec.a
libavformat.a
Una vez añadidas las dependencias a nuestro entorno de desarollo, comenzaremos por escribir un programa muy simple:
#include
#include
int main(int argc,char ** argv)
{
avcodec_register_all();
av_register_all();
}
avcodec_register_all() = Simple funcion qué se encarga de registrar los codecs disponibles en nuestro software, si no escribimos esta instruccion en nuestro programa, estamos expuestos a qué al intentar codificar los datos qué nosotros recivamos desde internet, o decodificarlos, no sea posible debido a qué libavcodec no se ha inicializado.
av_register_all() = inicializa los codecs y formatos disponibles en el software imprescindible ejecutarlo antes de escribir cualquier instruccion.
Si no da ningun error significa qué las librerias estan linkadas correctamente.
3.Es posible compilar libavcodec,libavformat para iphone?.
los iPhone 3gs y los iPad deben de disponer de las librerias compiladas para armv7 (arquitectura nativa del procesador del iphone 3gs + 1, y ipad ) si quéremos qué funcione en los 3G necesitaremos compilarlo para la arquitectura armv6 ya qué poseen un procesador inferior a los modelos superiores de su hermano mayor para un mayor rendimiento.
https://github.com/gabriel/ffmpeg-iphone-build/blob/master/build-xvid-armv7
4.Qué entornos de desarollo son los mas recomendados.
Windows:
NetBeans
Razones:Intuitivo, muestra sugerencias de codigo ( code completion ), coloreado de sintaxis, subrayado de errores, facil de usar.
Code::Blocks
Razones:Intuitivo, facil de usar
Mac OS X:
Xcode
Razones:Code completion integrado, intuitivo y facil de usar.
GNU/Linux:
NetBeans:Intuitivo, facil de usar, code completion integrado.
5.Creando nuestro primer programa basico:
int main(int argc,char ** argv)
{
avcodec_register_all();
av_register_all();
AVFormatContext * c =avformat_alloc_context();
if ( av_open_input_file(&c,"url del archivo",NULL,0,NULL) != -1 )
printf("%s","\nAbierto correctamente");
}
av_open_input_file = se abre el fichero de entrada en modo lectura.
Codigo de respuesta != -1 OK de lo contrario AVERROR ( error no se ha podido abrir el archivo o no se llamo a avcodec_register_all() y o av_register_all() ) .
Y aquí se termina esta pequeña introduccion seguiremos viendo mas cosas sobre ffmpeg y sus librerias.
Saludos.
No hay comentarios:
Publicar un comentario