
Android FFMPEG 开发
文章平均质量分 84
Android FFMPEG 开发
韩曙亮
中国人民大学硕士 , 专注于 移动开发 领域 , 博客专家 , 2023 年博客之星 TOP1 , 2021 年博客之星 TOP9 , 华为云 云享专家 , 阿里云社区 专家博主 , 51CTO 专家博主 ;
展开
-
【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 mobile-ffmpeg 框架 | 完整代码示例 )
一、配置远程 Maven 仓库二、配置依赖三、Kotlin 中执行 FFmpeg 命令四、FFmpeg 命令执行结果查看五、源码下载原创 2022-03-25 11:25:45 · 4370 阅读 · 1 评论 -
【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( mobile-ffmpeg 开源项目介绍 | 集成 mobile-ffmpeg 框架 )
一、mobile-ffmpeg 开源项目、二、集成 mobile-ffmpeg 框架原创 2022-03-25 11:03:47 · 6001 阅读 · 3 评论 -
【错误记录】Android 可执行权限报错 ( Cannot run program “/data/user/0/cn.e/ffmpeg“: error=13,Permission denied )
java.io.IOException: Cannot run program "/data/user/0/cn.example/files/ffmpeg": error=13, Permission denied原创 2021-11-11 16:14:57 · 14805 阅读 · 3 评论 -
【FFmpeg】FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 | 复用 | 解复用 )
一、FFmpeg 简介、二、FFmpeg 相关术语、1、容器、2、媒体流、3、数据帧、4、数据包、5、编解码器、6、复用、7、解复用、博客资源、原创 2021-06-10 22:48:27 · 2530 阅读 · 0 评论 -
【FFmpeg】Windows 搭建 FFmpeg 命令行运行环境
一、下载 FFMPEG、二、拷贝可执行文件、三、拷贝动态库文件、四、运行 ffmpeg 命令、原创 2021-06-09 20:55:33 · 6279 阅读 · 9 评论 -
【Android FFMPEG 开发】Android 中使用 FFMPEG 将 PCM 音频采样转为 MP3 格式
一、前置操作 ( 移植 FFMPEG )、二、FFMPEG 将 PCM 采样转为 MP3 格式的命令、三、Android FFMPEG 混音源代码完整示例、四、博客源码、原创 2021-06-03 21:18:36 · 3247 阅读 · 14 评论 -
【Android FFMPEG 开发】Android 中使用 FFMPEG 对 MP3 文件进行混音操作
一、前置操作 ( 移植 FFMPEG )、二、FFMPEG 混音命令、三、Android FFMPEG 混音源代码完整示例、四、博客源码、原创 2021-06-03 20:36:48 · 2454 阅读 · 7 评论 -
【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 FFmpegAndroid 框架 )
一、推荐开源项目、二、Android 中执行 FFMPEG 指令、1、导入依赖、2、Java 代码编写、3、使用时的代码示例、三、博客资源、原创 2021-05-28 20:52:00 · 4264 阅读 · 6 评论 -
【Android FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视频基础 | MPEG-4 标准 | Android 开发环境 | FFMPEG 交叉编译 | 安卓项目导入配置 )
本篇博客代码及资源下载 : https://download.csdn.net/download/han1202012/10382762一. 音视频基础1. 音频基础(1) 声音要素(2) 心理声学模型2. 音频信号处理(1) 音频信号量化过程(2) PCM 音频参数 简介3. 音频压缩(1) 有损压缩(2) 频域遮蔽效应(3) 时域遮蔽效应4. 音频编解...原创 2018-04-29 22:15:09 · 1675 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG 视频播放进度控制 ( 显示播放进度 | 拖动进度条播放 )
I . FFMPEG 播放进度控制II . FFMPEG 播放视频 ( 效果展示 )III . FFMPEG 获取视频时长IV . FFMPEG 视频播放进度获取V . FFMPEG 设置播放进度原创 2020-05-14 00:47:51 · 4544 阅读 · 6 评论 -
【Android FFMPEG 开发】FFMPEG 直播功能完整流程 + 源码 ( 源码交叉编译 -> AS工程配置 -> 音视频打开/读取/解码/格式转换 -> 原生绘制播放 -> 音视频同步 )
FFMPEG 直播功能完整流程 + 源码 ( 源码交叉编译 -> AS工程配置 -> 音视频打开/读取/解码/格式转换 -> 原生绘制播放 -> 音视频同步 )原创 2020-04-06 13:41:38 · 2190 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG 音视频同步 ( 音视频同步方案 | 视频帧 FPS 控制 | H.264 编码 I / P / B 帧 | PTS | 音视频同步 )
以音频播放的时间为基准 , 调整视频的播放速度 , 让视频与音频进行同步 ;先计算出音频的播放时间 ; 再计算视频的播放时间 ;根据视频与音频之间的比较 , 如果视频比音频快 , 那么增大视频帧之间的间隔 , 降低视频帧绘制速度 ;如果视频比音频慢 , 那么需要丢弃部分视频帧 , 以追赶上音频的速度 ;原创 2020-03-19 20:55:39 · 2079 阅读 · 0 评论 -
【Android FFMPEG 开发】OpenSLES 播放音频 ( 创建引擎 | 输出混音设置 | 配置输入输出 | 创建播放器 | 获取播放/队列接口 | 回调函数 | 开始播放 | 激活回调 )
I . FFMPEG 播放视频流程II . OpenSLES 播放音频流程III . OpenSLES 播放参考 Google 官方示例IV . OpenSL ES 播放代码 ( 详细注释 )IV . OpenSLES slAndroidSimpleBufferQueueCallback 回调函数声明及实现代码原创 2020-03-15 20:12:27 · 1791 阅读 · 3 评论 -
【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )
I . FFMPEG 播放视频流程II . FFMPEG 音频重采样流程III . FFMPEG 音频重采样IV . FFMPEG 初始化音频重采样上下文 SwrContextV . FFMPEG 计算音频延迟样本数VI . FFMPEG 计算音频重采样输出样本个数VII . FFMPEG 输出样本缓冲区初始化VIII . FFMPEG 音频重采样IX . FFMPEG 音频重采样输出的重采样数据字节数计算X . FFMPEG 音频重采样部分代码总结原创 2020-03-15 15:56:03 · 2837 阅读 · 1 评论 -
【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( 设置 ANativeWindow 缓冲区属性 | 获取绘制缓冲区 | 填充数据到缓冲区 | 启动绘制 )
I . FFMPEG ANativeWindow 原生绘制 前置操作II . FFMPEG 原生绘制流程III . 设置 ANativeWindow 绘制窗口属性 ANativeWindow_setBuffersGeometry ( )IV . 获取 ANativeWindow 原生绘制的 ANativeWindow_Buffer 绘制缓冲区V . 填充图像图像数据到 ANativeWindow_Buffer 绘制缓冲区VI . 启动绘制原创 2020-03-11 20:17:13 · 2800 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( Java 层获取 Surface | 传递画布到本地 | 创建 ANativeWindow )
I . FFMPEG ANativeWindow 原生绘制II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程III . Java 层获取 Surface 画布IV . 传递 Surface 画布到 Native 层V . Native 层创建 ANativeWindow 原生绘制窗口原创 2020-03-11 13:35:45 · 1659 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG AVFrame 图像格式转换 YUV -> RGBA ( 获取 SwsContext | 初始化图像数据存储内存 | 图像格式转换 )
I . FFMPEG AVFrame 图像数据帧处理 前置操作II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程III. FFMPEG 解码前后的图像格式IV . FFMPEG 获取 SwsContextV . FFMPEG 初始化图像数据存储内存VI . FFMPEG 初图像格式转换VII . FFMPEG AVFrame 图像格式转换 YUV -> RGBA 代码示例原创 2020-03-10 21:01:49 · 2592 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG 解码 AVPacket 数据到 AVFrame ( AVPacket->解码器 | 初始化 AVFrame | 解码为 AVFrame 数据 )
I . FFMPEG 解码 AVPacket 数据到 AVFrame 前置操作II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程III . FFMPEG 发送 AVPacket 数据包给编解码器 ( AVPacket->解码器 )IV . FFMPEG AVPacket 内存释放V . FFMPEG 初始化 AVFrame 结构体VI . FFMPEG 解码器 AVCodec 接收并解码 AVPacket 数据到 AVFrame 中VII . FFMPEG 解码 AVP原创 2020-03-10 13:10:45 · 2948 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG 读取音视频流中的数据到 AVPacket ( 初始化 AVPacket 数据 | 读取 AVPacket )
I . FFMPEG 获取 AVPacket 数据前置操作II . FFMPEG 获取 AVPacket 数据流程III . FFMPEG AVPacket 结构体IV . AVPacket 数据读取流程V . FFMPEG 初始化 AVPacket 数据包 av_packet_alloc ( )VI . FFMPEG 读取 AVPacket 数据 av_read_frame ( )VII . FFMPEG 获取 AVPacket 数据流程 代码示例原创 2020-03-09 14:32:43 · 2332 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG 方法中指针类型参数说明 ( 一维指针类型参数 | 二维指针类型参数 )
① 一维指针参数 : 传入一维指针 , 只能修改指向的内存的内容 ; 修改一维指针本身指向无意义 ;② 二维指针参数 : 传入 二维指针 , 只能修改一维指针 及 以下的内容 ; 修改二维指针本身指向无意义 ;③ N 维指针参数 : 传入 N 维指针 , 只能修改 N - 1 维指针 及 以下的内容 , 修改 N 维指针内容 无意义 ;原创 2020-03-05 15:13:21 · 697 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG 获取编解码器 ( 获取编解码参数 | 查找编解码器 | 获取编解码器上下文 | 设置上下文参数 | 打开编解码器 )
博客简介 . FFMPEG 编解码器获取流程I . FFMPEG 获取音视频流的编解码参数 AVCodecParameters *codecparII . FFMPEG 查找解码器 avcodec_find_decoder ( )III . FFMPEG 获取编解码器上下文 avcodec_alloc_context3 ( )IV . FFMPEG 设置编解码器上下文参数 avcodec_parameters_to_context ( )V . FFMPEG 打开编解码器 avcodec_open原创 2020-03-05 10:52:16 · 2557 阅读 · 1 评论 -
【Android FFMPEG 开发】FFMPEG 获取 AVStream 音视频流 ( AVFormatContext 结构体 | 获取音视频流信息 | 获取音视频流个数 | 获取音视频流 )
博客简介 . FFMPEG 音视频流 获取流程I . FFMPEG 获取音视频流信息 ( AVFormatContext 结构体 )II . FFMPEG 获取 音视频流 数量III . FFMPEG 获取音视频流原创 2020-03-04 20:07:06 · 1748 阅读 · 0 评论 -
【Android FFMPEG 开发】FFMPEG 初始化 ( 网络初始化 | 打开音视频 | 查找音视频流 )
【Android FFMPEG 开发】FFMPEG 初始化 ( 网络初始化 | 打开音视频 | 查找音视频流 )I . FFMPEG 初始化流程II . FFMPEG 网络初始化 avformat_network_init()III . FFMPEG 打开媒体地址 avformat_open_input()IV . FFMPEG 获取音 / 视频流信息 avformat_find_stream_info()V . FFMPEG 初始化部分代码示例原创 2020-03-04 11:41:22 · 2400 阅读 · 0 评论 -
【Android FFMPEG 开发】C++ 回调 Java 方法 模板 ( JavaVM *vm | JNIEnv *env | jobject instance | 引用类型 | 模板代码示例 )
I . Native 调用 Java 方法II . JNIEnv *env 与 jobject instanceIII . JavaVM *vmIV . 局部引用 与 全局引用 分析V . Native 调用 Java 方法 ( 主线程 )VI . Native 调用 Java 方法 ( 子线程 )VII . Java 层方法VIII . C++ Java 调用助手类 ( JavaCallHelper.h 头文件 )IX . C++ Java 调用助手类 ( JavaCallHelper.c原创 2020-03-04 10:59:45 · 1003 阅读 · 0 评论 -
【Android FFMPEG 开发】Android Studio 中配置 FFMPEG 库注意事项 ( 静态库 链接 libz.so 库 | 导入 FFMPEG 函数库顺序 )
I . 导入 z 库 ( FFMPEG 动态库 与 静态库区别 )II . FFMPEG 库引入顺序III . Android Studio 中 FFMPEG 静态库引入完整 CMakeList.txt 构建脚本原创 2020-03-03 16:57:18 · 2082 阅读 · 2 评论 -
【Android FFMPEG 开发】Android Studio 中 配置 FFMPEG 库最小兼容版本 ( undefined reference to 'atof' )
配置 android-21 版本 的 库 和 头文件路径 , –sysroot=$NDK_ROOT/platforms/android-21/arch-arm , 其版本是 Android 21 版本的库 , 那么 Android Studio 中只能配置 21 的最小兼容版本 , 如果小于 21 就会报错 ;原创 2020-03-03 11:14:43 · 2506 阅读 · 1 评论 -
【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )
I . FFMPEG 交叉编译后的函数库及头文件II . FFMPEG 静态库打包动态库 ( 仅做参考 )III . 创建 Android Studio 工程IV . FFMPEG 头文件与静态库拷贝V . CMakeList.txt 配置 FFMPEG 头文件 与 函数库VI . C++ 代码VII . 博客资源原创 2020-02-20 00:15:17 · 1375 阅读 · 2 评论 -
【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )
I . FFMPEG 源码下载 解压II . 交叉编译工具III . configure 脚本及帮助命令IV . 配置 configure 脚本V . 输出目录配置VI . 函数库配置VII . 程序配置选项VIII . 组件配置选项IX . 编码配置X . 交叉编译配置 ( 重点 )XI . 交叉编译配置 Shell 脚本 ( 重点 )原创 2020-02-19 01:05:40 · 2474 阅读 · 29 评论