第一次尝试使用Android 移植FFmpeg算法,一路坎坷,最终做如下总结,适用于Android手机、Android开发板。亲测可用。
一、下载组件
在Android Studio中下载所需组件:CMake、LLDB、NDK(NDK如果版本太高>r16,则选择后期单独下载)。其中,CMake为构建工具,LLDB为调试工具。
二、创建支持C++的AS工程
新建工程,勾选"Include C++ support":
当新建工程后,就默认新建了最简单的C++算法实现工程。点击运行即可显示如下图:
三、配置环境
接下来进行环境配置,工程需修改文件如下图:
在libs文件夹中,放置FFmpeg库和头文件,另外将opencv库和头文件也一并放入。
在AndroidManifest.xml文件中,添加相关权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jcet.susan.ffmpegdemo">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />