视频播放器之开篇

作者: arvinljw | 来源:发表于2019-01-31 14:57 被阅读40次

一直想学习如何开发一款视频播放器,做到尽量好用。然而一直没有机会,终于经历大半个月学习了夏曹俊老师的视频播放器开发课程,收获颇多,特此总结。学完基本上有了一个播放器应该有的大多内容了,之后再添加也就是小功能。

目的:

  • 整理整个流程
  • 做出一款能再Android上方便使用的播放器

整体介绍

这里就不介绍视频音频相关的基础知识了,因为我还没有去深刻理解,估计说不好,但是这个部分其实很重要,对理解代码中为什么要这样,很有帮助。

开发这个视频播放器用到了几块技术,分为了以下几个部分:

  • 使用ffmpeg将视频解封装(demux模块)
  • 使用ffmpeg将音视频解码(decode模块)
  • 使用ffmpeg将音频重采样(resample模块)
  • 使用opensles播放音频(音频播放模块)
  • 使用opengl的shader将视频绘制,再由egl将绘制内容显示到surface窗口上(视频显示模块)

这几步中,首先需要将数据解封装,再把数据交给解码器,音频解码器解码音频数据,视频解码器解码视频数据,解码后音频数据交给ffmpeg去重采样,解码后的视频数据交给shader绘制,最后让egl显示到surface上。

当然不一定要所有数据都解码或者重采样,因为如果解封装之后有的数据本身就是原始数据了,那么就能直接使用。

这几步变成时序图就是这样,步骤很清晰,主要是老师讲的好。

帧数据处理顺序图.png

其实只要这个流程清楚了,之后的步骤按照这个来就很轻松了,因为ffmpeg、opengl、opensl这些库都把这些功能封装好了,具体怎么解封装,怎么解码,怎么重采样,怎么播放和显示都是调用api就可以了。

到这里,其实这也才是刚入坑而已,其中视频的格式有很多,解码后数据是否存在问题等等,都只能慢慢的尝试调整了。

相关文章

  • 视频播放器之开篇

    一直想学习如何开发一款视频播放器,做到尽量好用。然而一直没有机会,终于经历大半个月学习了夏曹俊老师的视频播放器开发...

  • 01.视频播放器框架介绍

    视频播放器介绍文档 目录介绍 01.该视频播放器介绍 02.视频播放器功能 03.视频播放器架构说明 04.视频播...

  • 使用AudioTrack播放FFmpeg解码的PCM音频数据

    开篇 在学习了《Android使用OpenGL渲染ffmpeg解码的YUV数据》一文之后,我们的播放器计划对于视频...

  • 视频播放器

    系统播放器 打开视频列表 调用系统播放器播放视频 调用系统播放器播放网络视频 VideoView播放器 调用 V...

  • ffmpeg开发播放器学习笔记 - Hello FFmpeg

    ​该节是ffmpeg开发播放器学习笔记的开篇《Hello FFmpeg》 ffmpeg是一个跨平台的音视频录制、转...

  • iOS-视频播放器的简单封装

    iOS-视频播放器的简单封装 封装视频播放器,首先需要了解视频播放器的实现,iOS9之前可以使用MediaPlay...

  • Android音乐播放器封装

    推荐一个音乐播放器封装库的演示项目:iMusic音乐播放器 若你对视频播放器有需求请移步至Android视频播放器...

  • Android视频播放器封装

    推荐一个视频播放器封装库的演示项目:iMusic视频播放器 若你对音乐播放器有需求请移步至Android音频播放器...

  • iOS常用的第三方

    1.画表格使用JHChart勾勒你想要的图表 2.视频播放iOS视频播放器之ZFPlayer剖析 3.图片视频选择...

  • 视频播放器之解码

    上一篇中解封装之后能得到每一帧的数据,这个数据如果是原始数据没有编码的,那么可以直接使用,音频和视频都是,但是往往...

网友评论

    本文标题:视频播放器之开篇

    本文链接:https://www.haomeiwen.com/subject/hlnksqtx.html