本文的示例将实现:读取安卓手机摄像头数据并使用H.264编码格式实时编码保存为flv文件。示例包含了
1、编译适用于安卓平台的ffmpeg库
2、在java中通过JNI使用ffmpeg
3、读取安卓摄像头数据并在后台线程中使用ffmpeg进行编码的基本流程
具有较强的综合性。
编译适用于安卓平台的ffmpeg库
平时我们编译ffmpeg类库都是在x86平台下,而安卓手机属于arm平台,所以要先通过交叉编译的方法在x86平台下编译出可以在arm平台下使用的ffmpeg类库。Google就为我们提供了一套可以再Linux下完成该任务的交叉编译工具链——NDK,下载时可以看到google同时提供了ndk的windows版和linux版,前者可以在windows下通过cygwin(可以理解为一个在windows下模拟linux的工具)使用。我这里使用的是Android-ndk-r10e,在cygwin下使用。ndk的下载安装基本是傻瓜式的,但要注意linux系统对x86和x64是分的很清楚的,不像windows那么随性,此外还需要提醒的是,在下载安装cygwin时,只需要选择binutils , gcc , gcc-mingw , gdb , make这几个组件。安装完成后,在cygwin安装目录下点击cygwin.bat打开命令窗口,输入make -version验证是否安装成功。
做好以上的准备工作之后就可以正