本文主要记录学习ffmpeg过程,通过调用ffmpeg API在Android平台上实现一个播放器功能。

主要由以下功能模块组成:

一、由ffmpeg API调用实现三部分功能

(1) 解封装

(2)音视频解码

(3)视频格式转换将yuv转换为rgb

(4)将解码出来的PCM数据的音频格式转为S16

二、视频播放功能,由有两方式

(1)使用NativeWindow播放rgb

(2)使用openGL ES 播放

三、视频播放功能,由两种方式实现

(1)使用AudioTrack播放pcm

(2)使用openAL 播放pcm

四、 实现音视频同步功能

五、 实现seek操作

(1)seek左右拖动功能

六、实现倍速播放功能

(1)集成SoundTouch实现倍速功能

七、 实现声道切换功能

(1)使用SoundTouch实现左右声道切换功能

八、实现推流到RTMP服务器功能

Android FFMpeg 播放器相关推荐

  1. 《Android FFmpeg 播放器开发梳理》第一章 播放器初始化与解复用流程

    <Android FFmpeg 播放器开发梳理>: 第零章 基础公共类的封装 播放器初始化与解复用流程 这一章,我们来讲解播放器解复用(从文件中读取数据包)的流程.在讲解播放器的读数据包流 ...

  2. Android FFmpeg视频播放器三 音频封装格式解码播放

    Android FFmpeg视频播放器一解封装 Android Android FFmpeg视频播放器二 视频封装格式解码播放 视频解封装之后就会得到音频流和视频流,解封状得到的数据是AVPackag ...

  3. 简单android音乐播放器课程设计,android音乐播放器课程设计报告.doc

    android音乐播放器课程设计报告 android音乐播放器课程设计报告 基于Android音乐播放器的设计与实现 滨江学院 <移动通信程序设计> 课程设计 题 目 院 系 专 业学生姓 ...

  4. Vitamio打造自己的Android万能播放器

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

  5. 使用Vitamio打造自己的Android万能播放器(1)——准备

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

  6. FFmpeg音频播放器(8)-创建FFmpeg播放器

    原文地址::https://www.jianshu.com/p/73b0a0a9bb0d 相关文章 1.FFmpeg音频解码播放----https://www.jianshu.com/p/76562a ...

  7. 使用Vitamio打造自己的Android万能播放器

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

  8. Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  9. android音乐播放器课程设计报告,android音乐播放器课程设计报告11.doc

    最新精品文档,知识共享! android音乐播放器课程设计报告 基于Android音乐播放器的设计与实现 滨江学院 <移动通信程序设计> 课程设计 题 目 院 系 专 业学生姓名 学 号 ...

  10. ffmpeg播放器实现详解 - 音频同步控制

    ffplay是ffmpeg源码中一个自带的开源播放器实例,同时支持本地视频文件的播放以及在线流媒体播放,功能非常强大. FFplay: FFplay is a very simple and port ...

最新文章

  1. 对某课程的建议和意见_2021年河南专升本专科专业对照和考试课程征求意见
  2. hibernate -- 分页模糊查询中setParameter 和setParameterList
  3. 天天向上 专访Data Domain创始人李凯
  4. python的sklearn示例_KNN sklearn python实现小示例
  5. Windows7 WIN 7 64位 环境编译6sv2.1版本的大气传输模型
  6. 杨校老师课堂之Java类与对象、封装、构造方法
  7. windows下 cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”的解决办法
  8. linux内核对伙伴系统的改进--migrate_type
  9. linux socket bind 内核详解,Socket与系统调用深度分析(示例代码)
  10. 施一公:培养本科生比培养博士生要难
  11. 前端如何设置背景颜色的透明度 css中的 rgba() 函数详解 :background-color: rgba(255,192,203,0.3)
  12. IOS7的蛋疼各种收集
  13. java webservice用户验证_java webservice 用户验证 (服务端 + 客户端)
  14. Mock生成随机数据常用的类型规则
  15. 【优化】如何检测移动端 CPU 以及内存占用率
  16. 拓端tecdat:R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化
  17. SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息
  18. 计算机视觉——SIFT算法
  19. 基于微信公众平台的教师评教系统
  20. mysql 基数_MySQL 索引基数

热门文章

  1. Fatal error: Out of memory (allocated 2252140544) (tried to allocate 67108864 bytes)
  2. 有符号数的二进制表示方式
  3. 栅栏CyclicBarrier
  4. 如何正确规范使用论文脚注
  5. 帆软(FineReport)主子报表(报表联动)
  6. python sep参数_Python sep参数使用方法详解
  7. uniapp使用苹果支付
  8. android中的ems的真正含义
  9. 一个程序员的科幻小说
  10. Android日常整理(一)---android返回键、Fragment、android分割线、button图片间距的设置