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

embedded/2025/2/13 5:54:00/

背景:

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

下载 FFmpeg源码:

git clone https://github.com/FFmpeg/FFmpeg.git

编译FFmpeg源码:

创建Android端编译脚本:

#!/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-v8aCONFIGURE_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++

编译产物运行:

make -j8 > export.txt

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

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:


http://www.ppmy.cn/embedded/161794.html

相关文章

tenda路由器WriteFacMac存在远程命令执行漏洞(CVE-2024-10697)

一、漏洞简介 tenda路由器WriteFacMac存在远程命令执行漏洞 二、漏洞影响 tenda路由器三、网络测绘: fofa: title"Tenda | LOGIN"四、复现过程 POC 1 GET /goform/WriteFacMac?macls%20%3E/webroot/1.txt HTTP/1.1 Accept: text/html,application/…

数据治理双证通关经验分享 | CDGA/CDGP备考全指南

历经1个月多的系统准备,本人于2024年顺利通过DAMA China的CDGA(数据治理工程师)和CDGP(数据治理专家)双认证。现将备考经验与资源体系化整理,助力从业者高效通关。 🌟 认证价值与政策背景 根据…

iTunes 不能读取iPhone的内容

一、问题 iPhone 连接Windows电脑,打开iTunes后弹窗:iTunes不能读取iPhone的内容,请前往iPhone“偏好设置”的“摘要”选项卡,然后单击“恢复”以将此iPhone恢复为出厂设置 此时其实可以不必重置iPhone 二、解决方案 1、关闭i…

中英文订货系统在订单管理方面有哪些优势?

中英文订货系统在订单管理方面具有多语言支持、流程优化、数据处理等多方面的优势,以下是详细介绍: 1. 多语言沟通顺畅 消除语言障碍:可以让不同语言背景的客户和企业员工都能以自己熟悉的语言进行订单操作和沟通交流,避免因语言误…

20250210解决WPS固定某一行在单元格在表头

20250210解决WPS固定某一行在单元格在表头 2025/2/10 16:56 缘起:需要处理锂电池的电池曲线【RK3566Android13】,需要固定处于表格中间的一行: 绝对时间 记录序号 相对时间(min) 状态 电流(mA) 电压(V) 容量(mAh) 能量(…

CSS 实现下拉菜单效果实例解析

1. 引言 在 Web 开发过程中,下拉菜单是一种常见且十分实用的交互组件。很多前端教程都提供过简单的下拉菜单示例,本文将以一个简洁的实例为出发点,从 HTML 结构、CSS 样式以及整体交互逻辑三个层面进行详细解析,帮助大家理解纯 C…

小红书八股面经一份(JAVA开发)

1. zmysql索引结构 mysql索引底层采用的是b树的结构,一开始mysql的索引采用的是b树的结构,当数据量达到一定程度的时候,b树存在深度过大的问题,那么磁盘io次数就会飞速上升,导致查询效率慢。b树就很好的解决了这个问题…

梯度投影法GPSR的matlab源代码

梯度投影法GPSR的matlab源代码,可用于压缩感知的matlab仿真,将其中的camera图像替换就可直接运行其他图像 资源文件列表 GPSR_v6.0_matlab/.DS_Store , 6148 GPSR_v6.0_matlab/Camera.tif , 65126 GPSR_v6.0_matlab/demo_continuation.m , 7046 GPSR_v…