FFMPEG for Android工具链:arm-linux-armeabi-eabi-pkg-config - 是否存在任何包含pkg-config工具的工具链

时间:2012-08-27 03:59:46

标签: android compilation ffmpeg static-libraries linux-toolchain

有没有人知道 ffmpeg linux arm 平台的任何工具链,其中包含 arm-linux-androideabi-pkg-config 工具?

Android NDK不包含它。还有没有人成功为包含alsa设备的android构建ffmpeg?请注意,libasound存在于我的Ubuntu x86 PC上。

经过非常广泛的研究访问论坛,包括ffmpeg.org,ffmpeg - nabbles,groups.google.com,包括andro和android-ndk gropus,和整个互联网一样,我没有成功找到任何似乎知道它存在的人。充其量,我读过有人说忽略它。考虑到它需要什么,我认为这是一个天真的事情。

仔细检查标准的ffmpeg配置脚本表明,对于某些输入和输出设备,工具链描述为 pkg_config_default = pkg-config 是必需的。此外,HAVE_LIST上的所有项目都是系统相关的。 configure脚本非常清楚地说明了每个indev或outdev项所需的依赖项。显然,此工具用于验证依赖性所需的库


这是当您尝试为机器人配置ffmpeg时发生的事情

  

jasongipsyblues @ android-master:〜/ android-ffmpeg / Project / jni $ ./configure_ffmpeg.sh
...
... ...
.. .. ..许可证:GPL版本3或更高版本   创建config.mak和config.h ...

     

config.h未更改

     

config.asm未更改

     

libavutil / avconfig.h未更改

     

警告:/ home / jasongipsyblues / Desktop / apps / android-ndk-r8b / toolchains / arm-linux-androideabi-   4.4.3 / prebuilt / linux-x86 / bin / arm-linux-androideabi-pkg-config未找到,库检测可能   失败点。

在使用Ubuntu的PC上,pkg-config没有问题。

对于Ubuntu x86的config.log文件,当输入/输出设备alsa的一个greps时,请比较以下输出PC和使用android-ndk-r8工具链的android盒子的那个

  

jasongipsyblues @ android-master:〜/ 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 = '是'
  alsa_indev_deps ='alsa_asoundlib_h snd_pcm_htimestamp'
  alsa_outdev = '是'
  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:错误:alsa / asoundlib.h:没有这样的文件或目录

这是显示错误来源的编译器输出:

  

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:错误:alsa / asoundlib.h:没有这样的文件或目录
  /tmp/ffconf.VCjQQAHQ.c:在函数'check_snd_pcm_htimestamp'中:
  /tmp/ffconf.VCjQQAHQ.c:2:错误:'snd_pcm_htimestamp'未声明(首次使用此功能)
  /tmp/ffconf.VCjQQAHQ.c:2:错误:(每个未声明的标识符仅报告一次
  /tmp/ffconf.VCjQQAHQ.c:2:错误:对于它出现的每个功能。)

  这是针对Ubuntu x86PC的ffmpeg
  jasongipsyblues @ android-master:〜/ ffmpeg $ cat config.log | grep alsa
     alsa_indev
     alsa_outdev
     alsa_asoundlib_h
  INDEV_LIST ='alsa_indev
  OUTDEV_LIST ='alsa_outdev
  alsa_indev = '是'
  alsa_indev_deps ='alsa_asoundlib_h snd_pcm_htimestamp'
  alsa_outdev = '是'
  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
  此处没有错误,alsa已成功包含在ffmpeg构建中

1 个答案:

答案 0 :(得分:2)

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

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

查看链接。他只是做了一个提交,包括'freetype2'子模块,以解决pkg-config问题。