Android FFmpeg 编译(2016,亲测)
2016-04-12 09:37
591 查看
Android FFmpeg的编译是通过jni调用ffmpeg库的前提。如果你要在android上使用ffmpeg,需要通ndk编译ffmpeg。然后才能在android项目中用jni来使用ffmpeg。
本文参考 http://blog.yikuyiku.com/?p=4533。
本文讲解的是在Ubuntu上通过NDK-r9 编译ffmpeg库;
ndk请去android官网下载。
ffmpeg请去ffmpeg的官网去下载:http://ffmpeg.org/。我用的是2.6.3
1、把下载好的ndk和ffmpeg压缩包解压到指定目录(我都是解压到home下了),解压可以通过命令,或通过软甲打开解压。
2、修改FFmepg编译配置
把ffmpeg目录下的configure文件中的这几行:
改为:
目的是去掉默认生成的so包,例如libavcode.so.55中最后的那个“55”版本号.
3、编译FFmpeg,创建build_android.sh 执行文件
configure的配置有很多,有兴趣的可以自己研究下。由于本人不懂c,就用网上的流传的配置。
注意前三行要按照自己的路径正确配置。(我就是在这一步出的问题,ndk的路径没有写对,找了好久才找到)
保存后执行:
我就是ndk的路径没写对,出现了下面的问题,出现问题了可以代开config.log查看。
给大家做个参考。
4、查看编译结果。
编译成功后,会多出一个android文件夹,里面就是我们编译好东西了。
编译就到这里了,下期会写,在android项目中使用编译好的ffmpeg库。
补充:
编译后生成的android文件夹是带锁的。
用命令:sudo chmod +x android 解锁。
本文参考 http://blog.yikuyiku.com/?p=4533。
本文讲解的是在Ubuntu上通过NDK-r9 编译ffmpeg库;
ndk请去android官网下载。
ffmpeg请去ffmpeg的官网去下载:http://ffmpeg.org/。我用的是2.6.3
1、把下载好的ndk和ffmpeg压缩包解压到指定目录(我都是解压到home下了),解压可以通过命令,或通过软甲打开解压。
2、修改FFmepg编译配置
把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='$(SLIBNAME)'
目的是去掉默认生成的so包,例如libavcode.so.55中最后的那个“55”版本号.
3、编译FFmpeg,创建build_android.sh 执行文件
configure的配置有很多,有兴趣的可以自己研究下。由于本人不懂c,就用网上的流传的配置。
注意前三行要按照自己的路径正确配置。(我就是在这一步出的问题,ndk的路径没有写对,找了好久才找到)
#!/bin/bash NDK=/home/double/android-ndk-r9d SYSROOT=$NDK/platforms/android-9/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64 function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG make clean make make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one
保存后执行:
sudo chmod +x build_android.sh ./build_android.sh
我就是ndk的路径没写对,出现了下面的问题,出现问题了可以代开config.log查看。
给大家做个参考。
4、查看编译结果。
编译成功后,会多出一个android文件夹,里面就是我们编译好东西了。
编译就到这里了,下期会写,在android项目中使用编译好的ffmpeg库。
补充:
编译后生成的android文件夹是带锁的。
用命令:sudo chmod +x android 解锁。
相关文章推荐
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- Managed Media Aggregation using Rtsp and Rtp
- [总结]FFMPEG视音频编解码零基础学习方法
- 利用Ffmpeg获得flv视频缩略图和视频时间的代码
- codeigniter教程之上传视频并使用ffmpeg转flv示例
- PHP使用ffmpeg给视频增加字幕显示的方法
- PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
- 快速解决Android平台移植ffmpeg的一些问题
- java调用ffmpeg实现视频转换的方法
- python+ffmpeg视频并发直播压力测试
- [总结]FFMPEG视音频编解码零基础学习方法
- ffmpeg的headers设置
- ffmpeg从rtsp抓流存flv[c# NReco.VideoConverter flv]
- CentOs 下安装 ffmpeg 以及添加 ogg 音频支持
- Linux 下ffmpeg视频转码实战一安装
- FFmpeg音视频编解码实践总结
- ffmpeg 视频压缩 转换
- linux ffmpeg编译配置安装详解
- 解密FFmpeg播放track mode控制
- [学习与生活]视频开发网