2012-08-27 30 views
13

¿Alguien sabe cualquier cadena de herramientas para ffmpeg brazo plataforma linux que contiene el brazo- linux-androideabi-pkg-config herramienta?

El NDK de Android no lo contiene. ¿Alguien ha tenido éxito en la construcción de ffmpeg para Android que contiene el dispositivo alsa? Tenga en cuenta que libasound está presente en mi PC Ubuntu x86.

Después de una extensa investigación visitando foros incluyendo ffmpeg.org, ffmpeg - nabbles, groups.google.com incluyendo andro y android-ndk gropus, e Internet en general, no he tenido éxito en encontrar a alguien que parezca saber de su existencia. En el mejor de los casos, he leído personas que dicen ignorarlo. Considerando lo que se necesita para, lo considero una cosa ingenua que decir.

Una revisión cuidadosa del script de configuración de ffmpeg estándar muestra que para ciertos dispositivos de entrada y salida se necesita una cadena de herramientas descrita como pkg_config_default = pkg-config. Además, todos los elementos en HAVE_LIST son DEPENDIENTES DEL SISTEMA. El script de configuración indica muy claramente qué dependencias se requieren para cada elemento indev o outdev. Al parecer, esta herramienta se utiliza para verificar las bibliotecas que son necesarios para las dependencias

Esto es lo que sucede cuando se intenta configurar ffmpeg para android

FFMPEG para cadenas de herramientas de Android: Brazo-linux-armeabi-EABI-pkg-config - ¿hay alguna cadena de herramientas en la existencia que contiene la herramienta pkg-config

[email protected]:~/android-ffmpeg/Project/jni$ ./configure_ffmpeg.sh
...
...
..
....
License: GPL version 3 or later Creating config.mak and config.h...

config.h is unchanged

config.asm is unchanged

libavutil/avconfig.h is unchanged

WARNING: /home/jasongipsyblues/Desktop/apps/android-ndk-r8b/toolchains/arm-linux-androideabi- 4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.

En un PC con Ubuntu no hay ningún problema con pkg-config.

favor compare los siguientes resultados cuando uno GREPS para la entrada/salida alsa dispositivo desde los archivos config.log para un PC x86 de Ubuntu y que para la caja androide usando la cadena de herramientas android-NDK-r8

[email protected]:~/android-ffmpeg/Project/jni/ffmpeg$ cat config.log|grep >alsa
alsa_indev
alsa_outdev
alsa_asoundlib_h
INDEV_LIST='alsa_indev
OUTDEV_LIST='alsa_outdev
alsa_indev='yes'
alsa_indev_deps='alsa_asoundlib_h snd_pcm_htimestamp'
alsa_outdev='yes'
alsa_outdev_deps='alsa_asoundlib_h'
indevs_if_any='alsa_indev
outdevs_if_any='alsa_outdev
check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_func_headers alsa/asoundlib.h snd_pcm_htimestamp -lasound
1 #include
/tmp/ffconf.VCjQQAHQ.c:1:28: error: alsa/asoundlib.h: No such file or directory

Este es la salida del compilador mostrando la fuente del error:

check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_func_headers alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_ld cc -lasound
check_cc
BEGIN /tmp/ffconf.VCjQQAHQ.c
1 #include
2 long check_snd_pcm_htimestamp(void) { return (long) snd_pcm_htimestamp; }
3 int main(void) { return 0; }
END /tmp/ffconf.VCjQQAHQ.c
/home/jasongipsyblues/Desktop/apps/android-ndk-r8b/toolchains/arm-linux-androideabi->4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/jasongipsyblues/Desktop/apps/android-ndk-r8b/platforms/android-14/arch-arm -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -I../x264 -mcpu=cortex-a9 -std=c99 -fomit-frame-pointer -fPIC -marm -c -o /tmp/ffconf.I2B2AXfH.o
/tmp/ffconf.VCjQQAHQ.c
/tmp/ffconf.VCjQQAHQ.c:1:28: error: alsa/asoundlib.h: No such file or directory
/tmp/ffconf.VCjQQAHQ.c: In function 'check_snd_pcm_htimestamp':
/tmp/ffconf.VCjQQAHQ.c:2: error: 'snd_pcm_htimestamp' undeclared (first use in this function)
/tmp/ffconf.VCjQQAHQ.c:2: error: (Each undeclared identifier is reported only once
/tmp/ffconf.VCjQQAHQ.c:2: error: for each function it appears in.)

This is for the Ubuntu x86PC ffmpeg
[email protected]:~/ffmpeg$ cat config.log|grep alsa
alsa_indev
alsa_outdev
alsa_asoundlib_h
INDEV_LIST='alsa_indev
OUTDEV_LIST='alsa_outdev
alsa_indev='yes'
alsa_indev_deps='alsa_asoundlib_h snd_pcm_htimestamp'
alsa_outdev='yes'
alsa_outdev_deps='alsa_asoundlib_h'
indevs_if_any='alsa_indev
outdevs_if_any='alsa_outdev
check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_func_headers alsa/asoundlib.h snd_pcm_htimestamp -lasound
1 #include
There is no error here and alsa is successfully included in the ffmpeg build

+0

¿Encontró alguna solución para resolver realmente esta advertencia? –

Respuesta

2

https://github.com/guardianproject/android-ffmpeg

https://github.com/guardianproject/android-ffmpeg/commit/f08db49e613a7ea4423effb22973e3f1afefb819

mira los enlaces. acaba de hacer una confirmación, incluido el submódulo 'freetype2', para sortear el problema pkg-config.

+1

@rowntreerob, gracias por este enlace. Tomé un ollok y he tratado de entender qué está haciendo aquí. Todavía tengo una serie de preguntas. ¿Cuál es el resultado final de ejecutar el fake-pkg-config? ¿Intenta construir la biblioteca o proporcionar los archivos faltantes o necesarios necesarios directamente al compilador y al enlazador? – user1545779

+0

ni idea ... nunca presto atención a las advertencias del compilador en 'pkg-config'. –

Cuestiones relacionadas