第四章 音视频-FFmpeg实现播放器思维

第四章 音视频-FFmpeg实现播放器思维

第一章 音视频-FFmpeg解码流程和对应结构参数意
第二章 音视频-FFmpeg对应解析格式说明
第三章 音视频-FFmpeg对应AVFrame解码处理思路和用途
第四章 音视频-FFmpeg实现播放器思维
第五章 音视频-FFmpeg实现播放器解封装、读AVPacket包
第六章 音视频-FFmpeg实现播放器解码和对应数据处理

播放器实现架构

下图是播放器实现解码原理图
在这里插入图片描述

下图播放器上层输出的对应接口设计图,按照播放器调用习惯去设计,可以根据自己需求。
在这里插入图片描述
通过以上的解码原理和要实现接口框架,我们就可以形成做播放器的思维,可以根据前面几章节就可以知道,我们要先解封装,创建解码器,实现读包,这里要对应线程去读包,分别去解码音频和视频,在播放时候,视频跟音频同步,最后提供正常播放器接口给调用者。

播放器实现步骤

在这里插入图片描述
通过上图的步骤我们清楚知道播放器大概实在,这里的循环解码,写在一起,正常情况,会用到队列分别存储音频和视频的avpaket的包,在音频线程解码音频,在视频线程解码视频,然后进行同步,想要做自己播放器,要先会用别人的,在成熟框架懂得原理,再自己写会更好,这里我们先去学习开源的ijk的播放器,因为ijk包涵ffplay和移动端平台的硬解码播放器,先把思想打开,再开始写自己播放器,上面都为了让你明白播放器流程,可以去git下载ijkplayer,通过下图是ijk的整体流程图:
在这里插入图片描述
通过上图就可以查看ijk的实现播放器整个流程,对应创建的线程,可以自己去写一个播放器,这样思维会写更具好,可以参考音视频同步策略,丢帧策略、音频的重采样、视频对应格式转染(格式转换),全搞明白去写自己播放器才能上线使用。
ijkplayer对应git:https://github.com/bilibili/ijkplayer

相关推荐

  1. qt+ffmpeg 实现视频播放(一)

    2024-05-25 18:08:36       35 阅读
  2. FFmpeg:自实现ijkplayer播放器--11视频同步

    2024-05-25 18:08:36       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-25 18:08:36       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-25 18:08:36       97 阅读
  3. 在Django里面运行非项目文件

    2024-05-25 18:08:36       78 阅读
  4. Python语言-面向对象

    2024-05-25 18:08:36       88 阅读

热门阅读

  1. Qt TreeWidget详细说明

    2024-05-25 18:08:36       36 阅读
  2. Golang:使用net/http实现一个简易的http服务器

    2024-05-25 18:08:36       35 阅读
  3. Go 实现程序优雅退出

    2024-05-25 18:08:36       26 阅读
  4. Python数据类型转换

    2024-05-25 18:08:36       32 阅读
  5. UDP服务器与客户端之间的区别?

    2024-05-25 18:08:36       32 阅读
  6. Python Minio 工具类封装

    2024-05-25 18:08:36       24 阅读
  7. 探索自然语言处理预训练模型:GPT-3详解

    2024-05-25 18:08:36       30 阅读
  8. 信息泄露--注意点点

    2024-05-25 18:08:36       31 阅读
  9. C#字典的常用方法

    2024-05-25 18:08:36       33 阅读