适用于 Android 工具链的 FFMPEG:arm-linux-armeabi-eabi-pkg-config - 是否存在包含 pkg-config 工具的任何工具链 [英] FFMPEG for Android toolchains: arm-linux-armeabi-eabi-pkg-config - is there any toolchain in existence containing the pkg-config tool

查看:26
本文介绍了适用于 Android 工具链的 FFMPEG:arm-linux-armeabi-eabi-pkg-config - 是否存在包含 pkg-config 工具的任何工具链的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道 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-配置是必需的.此外,HAVE_LIST 上的所有项目都是系统相关的.configure 脚本非常清楚地说明了每个 indev 或 outdev 项所需的依赖项.显然,此工具随后用于验证依赖项所需的库

当您尝试为 android 配置 ffmpeg 时会发生这种情况

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
...
...
..
....
许可证:GPL 版本 3 或更高版本正在创建 config.mak 和 config.h...

jasongipsyblues@android-master:~/android-ffmpeg/Project/jni$ ./configure_ffmpeg.sh
...
...
..
....
License: GPL version 3 or later Creating config.mak and config.h...

config.h 不变

config.h is unchanged

config.asm 不变

config.asm is unchanged

libavutil/avconfig.h 不变

libavutil/avconfig.h is unchanged

警告:/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,库检测可能失败.

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.

在装有 Ubuntu 的 PC 上,pkg-config 没有问题.

当从 Ubuntu x86 PC 的 config.log 文件中 grep 输入/输出设备 alsa 时,请比较以下输出和对于使用 android-ndk-r8 工具链的 android box

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='是'
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: 没有那个文件或目录

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
开始/tmp/ffconf.VCjQQAHQ.c
1 #include
2 long check_snd_pcm_htimestamp(void) { return (long) snd_pcm_htimestamp;}
3 int main(void) { return 0;}
结束/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_POSIX_C_SOURCE=200112 -D_ISOC99_SOURCE -D_FILE_OFFSET_BITSa9 -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构建中

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/f08db49e421f08db47e429f08db49e4213e3a7e43e3f1affb819/a>

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

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

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

这篇关于适用于 Android 工具链的 FFMPEG:arm-linux-armeabi-eabi-pkg-config - 是否存在包含 pkg-config 工具的任何工具链的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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