【音视频】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:

相关推荐
论迹复利4 小时前
Sniff 省电模式参数调优——续航与音频稳定性平衡实操
音视频·sniff·bt·功耗、
星核0penstarry6 小时前
从 Dialog-RSN-1 看语音 Agent 走向:企业如何评估音频原生模型与 API 服务
人工智能·音视频·音频·api
2501_915909067 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
明如正午7 小时前
【python】Python + OpenCV 实现视频关键帧提取与智能去重
python·opencv·音视频
Lvan的前端笔记7 小时前
AndroidX 完全入门指南
android·androidx
呆呆敲代码的小Y7 小时前
5 分钟上手 OpenMontage:把 AI 编程助手变成视频工作室
人工智能·aigc·音视频·ai视频生成·claude code·openmontage
帅次8 小时前
Android 应用高级面试:Window 近1年高频追问 18 题
android·面试·职场和发展
奈斯先生Vector8 小时前
大模型 Agentic Workflow 架构解构:异构 API 调度与 Token 路由的多模态系统设计
开发语言·前端·架构·prompt·aigc·音视频
海带紫菜菠萝汤8 小时前
FFmpeg.wasm 实践:在浏览器中运行 FFmpeg 的能力边界与性能瓶颈
前端·javascript·ffmpeg·音视频·wasm
甜甜小酒窝8 小时前
通过Canvas在网页中将后端发来的一帧帧图片渲染成“视频”的实现过程
音视频