ffmpeg 执行命令 android,手把手教你搭建ffmpeg命令行运行环境
时间: 2023-06-29 20:09:32 浏览: 224
在Android平台上使用FFmpeg需要进行交叉编译,生成适用于Android的FFmpeg库,并将其打包到apk中。以下是手把手教你搭建ffmpeg命令行运行环境的步骤:
1.下载NDK
首先需要下载NDK(Native Development Kit),NDK是一个工具包,用于开发C/C++应用程序的原生库。Android Studio自带NDK,也可以从官网下载。
2.下载FFmpeg源代码
从FFmpeg的官网下载源代码,然后解压到本地。
3.配置交叉编译环境
在FFmpeg源代码根目录下创建一个build_android.sh文件,输入以下内容:
```bash
#!/bin/bash
NDK=$HOME/Android/Sdk/ndk-bundle # NDK路径
SYSROOT=$NDK/platforms/android-21/arch-arm/ # Android SDK路径
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/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-debug \
--disable-network \
--disable-avdevice \
--disable-postproc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
ADDI_LDFLAGS=""
build_one
```
其中,NDK是NDK的路径,SYSROOT是Android SDK的路径,TOOLCHAIN是工具链的路径。
4.执行交叉编译命令
在终端中输入以下命令:
```bash
chmod +x build_android.sh
./build_android.sh
```
等待编译完成。编译完成后,在FFmpeg源代码根目录下会生成一个android目录,其中包含了交叉编译生成的FFmpeg库。
5.创建Android Studio项目
打开Android Studio,创建一个新项目。在app/build.gradle文件中添加以下代码:
```groovy
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.ffmpegdemo"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
cppFlags ""
abiFilters "armeabi-v7a"
arguments "-DANDROID_ARM_NEON=TRUE"
}
}
sourceSets.main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
ndk {
abiFilters "armeabi-v7a"
}
}
```
其中,externalNativeBuild和ndk是用于指定使用交叉编译生成的库的配置。
6.将FFmpeg库打包到apk中
将交叉编译生成的库复制到项目的app/src/main/jniLibs/armeabi-v7a/目录下。在app/build.gradle文件中添加以下代码:
```groovy
android {
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
}
```
然后在终端中输入以下命令:
```bash
./gradlew assembleDebug
```
等待打包完成。打包完成后,在项目的build/outputs/apk/debug/目录下会生成一个apk文件,其中包含了FFmpeg库。
至此,就完成了搭建ffmpeg命令行运行环境的所有步骤。可以通过在MainActivity中执行FFmpeg命令来测试FFmpeg是否正常工作。
阅读全文