Cómo compilar la biblioteca estática rtmp polarssl para ffmpeg usando ndk
1. Compile polarssl y verifique su archivo Léame. No se requiere configuración. Solo necesitas traer los parámetros necesarios al realizarlo. Pero recuerde traer el parámetro cc (apuntando a su brazo gcc) cada vez que ejecute el comando make, porque trato de no traer el parámetro CC al realizar la instalación. Aunque puedo compilar polarssl, rtmp no hace referencia a él correctamente.
2. Debido a que polarssl que usé antes es la última versión (1.3.7), y librtmp parece usar la API debajo de polarssl1.0.0, necesito modificar parte del código fuente de rtmp para llamar al nuevo. API polarssl. Puede consultar "Migración de polar SSL-1.2 a la rama polar SSL 1.3" y "[rtmp dump] actualización principal de la rama. Una corrección 312 AC 7 compatible con polar SSL >:= 1.1.0".
3. Hay un error de referencia no definida a 'havege_random'. Esto se debe a que polarssl tiene el módulo havege desactivado de forma predeterminada y debe activarse manualmente. Lo principal es modificar include/polarssl/config.h, eliminar el comentario antes de POLARSSL_HAVEGE_C, es decir, definir POLARSSL_HAVEGE_C, de la siguiente manera:
#define POLARSSL_HAVEGE_C
4. Las dos bibliotecas anteriores, puede comenzar a compilar FFMPEG (versión 2.1.1). Si encuentra los siguientes problemas, verifique _pkg_configlibrtmp librtmp/rtmp.HR tmp_socket.
Error: librtmp no encontrado
Hay tres soluciones:
Primero, dado que es la más difundida en la web, esta es relativamente simple El método consiste en modificar la configuración de ffmpeg e ingresar la siguiente línea de código:
Enable librtmp amp amprequire _ pkg _ config librtmp librtmp/rtmp h RTMP _ Socket
Reemplazar con. :
p>
Habilitar librtmp amp requiere librtmp librtmp/rtmp . h RTMP _socket-lrtmp -lpolarssl -lz
O comentar directamente amp* * * parte, y luego agregue librtmp usted mismo Ruta de la biblioteca.
El segundo (recomendado, porque resolver esto resolverá la mayoría de los errores de no poder encontrar la biblioteca). Porque la herramienta pkg-config se usa para encontrar la biblioteca aquí, y esta herramienta ndk no lo proporciona, por lo que si ocurre un error relacionado con check_pkg_config, siempre que preste un poco de atención, encontrará que cuando usa configure para configurar la compilación cruzada de ffmpeg, el pkg-config correspondiente no existe.
No estoy muy familiarizado con esta herramienta, así que simplemente agregué un enlace suave pkg-config al sistema, de la siguiente manera:
ln-s/usr/bin/pkg-config/home/cidy 0106/ Android- ndk-r9d/tool chains/arm-Linux-androidea bi-4.8/pre-built/Linux-x86_64/bin/arm-Linux-androidea bi-pkg-config
Si configurada en este momento, es posible que reciba un mensaje de error que indique que no se puede encontrar la biblioteca polarssl. Debe modificar librtmp.pc en el directorio de instalación de librtmp y colocar el siguiente contenido:
Biblioteca: -L${libdir} -lrtmp -lz
Reemplazar con:
Biblioteca: -L${libdir} -lrtmp -lz -lpolarssl
En este punto, ffmpeg se puede compilar correctamente.