FFMPEG为Android工具链ARM-Linux的armeabi-EABI-pkg配置 - 是有存在包含pkg配置工具的任何工具链 [英] FFMPEG for Android toolchains: arm-linux-armeabi-eabi-pkg-config - is there any toolchain in existence containing the pkg-config tool

查看:923
本文介绍了FFMPEG为Android工具链ARM-Linux的armeabi-EABI-pkg配置 - 是有存在包含pkg配置工具的任何工具链的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有人知道的任何工具链的 ffmpeg的Linux的手臂的平台,其中包含在 ARM-Linux的androideabi-pkg配置工具?登录到到网的Andr​​oid NDK不包含它。也有人成功地建立了ffmpeg的为Android包含ALSA设备?请注意,libasound是present我的Ubuntu的x86 PC上

经过非常广泛的研究访问论坛,包括ffmpeg.org,ffmpeg的 - nabbles,groups.google.com包括雄激素和Android的NDK gropus ,和一般的上网,我还没有成功地找到任何人谁似乎知道它的存在。在最好的,我看过的人说忽略它。考虑到它是什么需要,我认为这是一个幼稚的事说了。

仔细审查标准ffmpeg的配置脚本显示,对某些输入和输出设备工具链描述为 pkg_config_default =皆系配置的是必需的。同样在HAVE_LIST所有项目都取决于系统。配置脚本非常明确地什么都需要每个indev或outdev项目的依赖。显然,使用这个工具,然后验证时需要的依赖登录到到网库 这是当你尝试配置的ffmpeg为Android

会发生什么
  

jasongipsyblues @安卓主:〜/ Android系统的ffmpeg /项目/ JNI $ ./configure_ffmpeg.sh
...
...
..
....
许可证:GPL版本3或更高版本   创建config.mak和config.h中...

     

config.h中是不变的

     

config.asm是不变的

     

libavutil / avconfig.h不变

     

警告:/家庭/ jasongipsyblues /桌面/应用程序/ Android的NDK-R8B /工具链/ ARM-Linux的androideabi-   4.4.3 / prebuilt / Linux的-86 /斌/ ARM-Linux的androideabi-pkg配置没有找到,库检测可   失败。

在Ubuntu的电脑没有与pkg配置没有问题。
请比较下面的输出,当一个为里grep从config.log的文件输入/输出设备ALSA的一个Ubuntu的x86 PC和对于使用Android的NDK-R8工具链android的框

  

jasongipsyblues @安卓主:〜/ Android系统的ffmpeg /项目/ JNI / ffmpeg的$猫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#包括
  /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#包括
     2长check_snd_pcm_htimestamp(无效){回报(长)snd_pcm_htimestamp; }
     3 INT主要(无效){返回0; }
  END /tmp/ffconf.VCjQQAHQ.c
  /home/jasongipsyblues/Desktop/apps/android-ndk-r8b/toolchains/arm-linux-androideabi->4.4.3/$p$pbuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot = /家庭/ jasongipsyblues /桌面/应用程序/ Android的NDK-R8B /平台/ Android为14 /弓臂-D_ISOC99_SOURCE -D_FILE_OFFSET_BITS = 64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE = 200112 -D_XOPEN_SOURCE = 600 -DPIC -I .. / X264 -mcpu =皮质-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 @安卓主:〜/ ffmpeg的$猫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#包括
  这里没有错误,ALSA被成功列入ffmpeg的构建

解决方案

https://github.com/ guardianproject / Android的ffmpeg的

<一个href="https://github.com/guardianproject/android-ffmpeg/commit/f08db49e613a7ea4423effb22973e3f1afefb819" rel="nofollow">https://github.com/guardianproject/android-ffmpeg/commit/f08db49e613a7ea4423effb22973e3f1afefb819

看的链接。他只是做了一个承诺,其中包括对FreeType2子模块,以避开pkg配置问题。

Does anybody know any toolchain for ffmpeg linux arm platform which contains the arm-linux-androideabi-pkg-config tool?

The Android NDK does not contain it. Also has anybody succeeded in building ffmpeg for android that contains the alsa device? Please note that libasound is present on my Ubuntu x86 PC.

After very extensive research visiting forums including ffmpeg.org, ffmpeg--nabbles, groups.google.com including the andro and android-ndk gropus, and the Internet in general, I have not succeeded in finding anyone who seems to know of its existence. At best, I have read people saying ignore it. Considering what it is needed for, I consider that a naive thing to say.

A careful review of the standard ffmpeg configure script shows that for certain input and output devices a toolchain described as pkg_config_default=pkg-config is required. Also all items on the HAVE_LIST are SYSTEM DEPENDENT. The configure script states very clearly what dependencies are required for each indev or outdev item. Apparently this tool is used then to verify the libraries which are needed for the dependencies

This is what happens when you attempt to configure ffmpeg for android

jasongipsyblues@android-master:~/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.

On a PC with Ubuntu there is no issue with pkg-config.

Please compare the following outputs when one greps for the in/out device alsa from the config.log files for an Ubuntu x86 PC and that for the android box using the android-ndk-r8 toolchain

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='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

This is the compiler output showing the source of the 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
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='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

解决方案

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

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

look at the links. he just did a commit , including 'freetype2' submodule, in order to get around the pkg-config issue.

这篇关于FFMPEG为Android工具链ARM-Linux的armeabi-EABI-pkg配置 - 是有存在包含pkg配置工具的任何工具链的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆