FFMPEG为Android工具链ARM-Linux的armeabi-EABI-pkg配置 - 是有存在包含pkg配置工具的任何工具链工具、是有、存在、ARM

2023-09-06 13:35:06 作者:卑微的等待苍老了谁

是否有人知道的任何工具链的 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:没有这样的文件或目录

Windows10 WSL NDK 编译 Android 版 ffmpeg 4.2.2

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

  

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的

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.