【音视频】ffmpeg android端调试指南

背景:

本文旨在Android端导入和调试ffmpeg使用,作为工具文档简化初次入门使用难度。

下载 FFmpeg源码:

cpp 复制代码
git clone https://github.com/FFmpeg/FFmpeg.git

编译FFmpeg源码:

创建Android端编译脚本:

bash 复制代码
#!/bin/bash
API=21
NDK=/Users/admin/Downloads/android-ndk-r21e
PREBUILT=$NDK/toolchains/llvm/prebuilt/darwin-x86_64
PREFIX= /Users/admin/CoderApp/democode/FFmpeg/build/arm64-v8a

CONFIGURE_FLAGS="
--disable-programs \
--disable-avdevice \
--disable-swresample \
--disable-swscale \
--disable-postproc \
--disable-avfilter \
--disable-network \
--disable-everything \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-decoder=hevc_mediacodec \
--enable-demuxer=h264 \
--enable-demuxer=mov \
--enable-protocol=file"

./configure \
$CONFIGURE_FLAGS \
--target-os=android \
--arch=aarch64 \
--enable-cross-compile \
--cross-prefix=$PREBUILT/bin/aarch64-linux-android- \
--prefix=$PREFIX \
--cc=$PREBUILT/bin/aarch64-linux-android$API-clang \
--cxx=$PREBUILT/bin/aarch64-linux-android$API-clang++

编译产物运行:

bash 复制代码
make -j8 > export.txt

将其中的.o文件替换为.c添加到后续的CmakeList.txt的编译脚本中。

bash 复制代码
CC      libavformat/avio.o
CC      libavformat/allformats.o
CC      libavformat/aviobuf.o
CC      libavformat/dovi_isom.o
CC      libavformat/demux.o
CC      libavformat/dump.o
CC      libavformat/file.o
CC      libavformat/format.o
CC      libavformat/h264dec.o
CC      libavformat/id3v1.o
CC      libavformat/id3v2.o
CC      libavformat/isom.o
CC      libavformat/isom_tags.o
CC      libavformat/metadata.o
CC      libavformat/mov.o
CC      libavformat/mov_chan.o
CC      libavformat/mov_esds.o
CC      libavformat/mux.o
CC      libavformat/options.o
CC      libavformat/os_support.o
CC      libavformat/qtpalette.o
CC      libavformat/protocols.o
CC      libavformat/rawdec.o
CC      libavformat/replaygain.o
CC      libavformat/riff.o
CC      libavformat/riffdec.o
CC      libavformat/sdp.o
CC      libavformat/seek.o
CC      libavformat/url.o
CC      libavformat/utils.o
........

Android Studio导入FFmpeg源码:

创建Android demo过程,选择任意activity;

创建model,nativelib工程:

配置环境和编译过程:

Android平台调试 FFmpeg:

相关推荐
贺biubiu16 小时前
2025 年终总结|总有那么一个人,会让你千里奔赴...
android·程序员·年终总结
xuekai2008090116 小时前
mysql-组复制 -8.4.7 主从搭建
android·adb
nono牛17 小时前
ps -A|grep gate
android
未知名Android用户18 小时前
Android动态变化渐变背景
android
行业探路者18 小时前
二维码标签是什么?主要有线上生成二维码和文件生成二维码功能吗?
学习·音视频·语音识别·二维码·设备巡检
nono牛19 小时前
Gatekeeper 的精确定义
android
stevenzqzq20 小时前
android启动初始化和注入理解3
android
城东米粉儿1 天前
compose 状态提升 笔记
android
粤M温同学1 天前
Android 实现沉浸式状态栏
android
Android系统攻城狮1 天前
Android16音频之获取Record状态AudioRecord.getState:用法实例(一百七十七)
音视频·android16·音频进阶