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

相关推荐
百锦再6 小时前
React编程高级主题:测试代码
android·前端·javascript·react.js·前端框架·reactjs
2501_916008897 小时前
全面介绍Fiddler、Wireshark、HttpWatch、SmartSniff和firebug抓包工具功能与使用
android·ios·小程序·https·uni-app·iphone·webview
玉梅小洋8 小时前
Windows 10 Android 构建配置指南
android·windows
Libraeking9 小时前
视觉篇:Canvas 自定义绘图与高级动画的华丽圆舞曲
android·经验分享·android jetpack
Fushize10 小时前
多模块架构下的依赖治理:如何避免 Gradle 依赖地狱
android·架构·kotlin
Jomurphys11 小时前
Kotlin - 类型别名 typealias
android·kotlin
Haha_bj11 小时前
Flutter ——flutter_screenutil 屏幕适配
android·ios
Haha_bj11 小时前
Flutter ——device_info_plus详解
android·flutter·ios
前端小伙计11 小时前
Android/Flutter 项目统一构建配置最佳实践
android·flutter
Mr_sun.13 小时前
Day09——入退管理-入住-2
android·java·开发语言