本文的示例将实现:读取安卓手机摄像头数据并使用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验证是否安装成功。
本文详述如何在Android设备上使用ffmpeg读取摄像头数据并以H.264编码保存为FLV文件。包括ffmpeg库的交叉编译、JNI接口使用、Java层获取摄像头数据及后台编码流程。通过JNI调用ffmpeg进行视频处理,实现摄像头预览数据的高效编码。
订阅专栏 解锁全文
——安卓手机摄像头编码&spm=1001.2101.3001.5002&articleId=48601317&d=1&t=3&u=a5f9af273eee499b992e6f04eb4146f5)
2276





