#ffmpeg 编译android so库文件
ffmpeg是现在主流播放器和直播软件中常用的库,主要用于视频的编解码,下面主要介绍一下,ffmpeg如何在android平台上使用。ffmpeg想在android上使用,一般都是在官网下载源码,然后编译成相应的so库。
参考了好几篇网上的博客,利用其提供的shell脚本编译,总是报 文件找不到或者编译参数错误:
Unknown option "--disable-ffserver".
See ./configure --help for available options.
Makefile:2: ffbuild/config.mak: No such file or directory
Makefile:40: /tools/Makefile: No such file or directory
...
最后老老实实下载老的版本的ffmpeg(3.0和3.3都编译通过)和ndk才解决。
运行环境
、ubuntu 16.04
、ffmpeg-3.3.tar.gz
、android-ndk-r13b-linux-x86_64.zip
ffmpeg 下载:
wget http://ffmpeg.org/releases/ffmpeg-3.3.tar.gz
通过改变版本号下载不同版本
android-ndk-r13b 下载:
https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip
Node:注意下载对应版本和系统的ndk,之前直接把windows系统的ndk拷贝到ubantu下,导致后面编译找不到文件
##编译
1、下载ffmpeg后解压后,将configure文件中
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
替换为:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNA