Android NDK中没有包含它。 是否有人成功地为包含ALSA设备的Android构建了ffmpeg? 请注意,我的Ubuntu x86 PC上存在libasound。
在访问了包括ffmpeg.org、ffmpeg--nabbles、groups.google.com和andro和android-ndk组在内的论坛以及互联网的大量研究后,我没有找到任何似乎知道其存在的人。 最好的情况是,我读到人们说要忽略它。 考虑到需要使用它的原因,我认为这是一件幼稚的事情。
标准ffmpeg配置脚本的仔细审查显示,对于某些输入和输出设备,需要一个描述为pkg_config_default=pkg-config的工具链。 同时HAVE_LIST中的所有项目都是系统相关的。 配置脚本非常清楚地说明了每个indev或outdev项所需的依赖关系。 然后,显然使用此工具来验证所需的依赖库
当您尝试为Android配置ffmpeg时会发生什么情况
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.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 PC和使用android-ndk-r8工具链的android box的config.log文件中为in/out设备alsa grep时的以下输出。
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: 没有那个文件或目录
这是编译器输出,显示出错的源:
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