Red de conocimiento informático - Material del sitio web - Cómo usar ndk para compilar bibliotecas estáticas para ffmpeg

Cómo usar ndk para compilar bibliotecas estáticas para ffmpeg

¿Cómo compilar la biblioteca estática rtmp polarssl para ffmpeg usando ndk? Este problema me llevó todo el día. Me encontré con muchos pequeños problemas y los documenté para mi propia conveniencia y la de los demás.

1. Compile polarssl y vea su archivo Léame. No se requiere configuración. Solo necesita realizar make con los parámetros necesarios, pero recuerde traer el parámetro CC cada vez que ejecute el comando make. a tu brazo gcc), porque intenté realizar la instalación sin parámetros CC, aunque puede compilar la biblioteca estática polarssl. Porque intenté realizar la instalación sin el argumento CC y compiló polarssl pero rtmp no hizo referencia a él correctamente.

2, debido a que polarssl que usé antes es la última versión (1.3.7), y librtmp parece usar polarssl 1.0.0 o una versión inferior de la API, por lo que necesito usar librtmp.

2, debido a que el polarssl que usé antes es la última versión (1.3.7), y librtmp parece estar usando polarssl 1.0.0 o una versión inferior de la API, por lo que necesito modificar el rtmp en la parte del código fuente para permitirle llamar a la API de la nueva versión de polarssl. Para realizar modificaciones, consulte "Migración de PolarSSL-1.2 a la rama PolarSSL 1.3" y "[rtmpdump] rama maestra actualizada.

3. Referencia indefinida a `havege_random 'Error, esto se debe a que POLARSSL ha cerrado el módulo havege de forma predeterminada y debe abrirse manualmente, principalmente modificando include/polarssl/config.h y eliminando el módulo havege en POLARSSL.

h, elimine el comentario delante de POLARSSL_HAVEGE_C, es decir, defina POLARSSL_HAVEGE_C, de la siguiente manera:

#define POLARSSL_HAVEGE_C

4. Una vez compiladas las dos bibliotecas anteriores, puede comenzar a compilar ffmpeg (2.1.1), si encuentra los siguientes problemas check_pkg_config librtmp librtmp/rtmp.h RTMP_Socket

ERROR: librtmp no encontrado

Aquí hay tres formas de resolver el problema:

El primer método, debido a que es el método más extendido en Internet y relativamente simple, consiste en modificar ffmpeg configure y modificar las siguientes líneas:

enabled librtmp amp; ; require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket

Cambiar a:

Librtmp amp;amp habilitado; require_pkg_config librtmp librtmp/rtmp. h RTMP_Socket -lrtmp -lpolarssl -lz

O comente la parte amp;amp; ****** directamente y luego agregue la ruta de la biblioteca librtmp usted mismo.

Segundo método (recomendado ya que arreglar esto solucionará la mayoría de los errores de biblioteca no encontrada):