使用FFMpeg 模仿Android MediaPlayer

播放器基础--组成模块

2020-06-06  本文已影响0人  llm_5243

一个播放器无论结构逻辑多么复杂, 都可以分成以下几部分: src, demux,decode, sink

Diagram1.png

对于以上几个模块来说, 视频解码和视频渲染是比较耗时, 如果是网络流,网络的速度会影响到视频数据的接收.为了能保证视频播放的流畅性,各模块之间一般会添加数据缓冲区.

播放器缓冲结构.png

这里src并未画出缓冲区,因为对于本地文件来说是不需缓冲;对于网络流,缓冲的策略与后面的会有点不同,而且一般开源的框架会帮我们实现.对于后面两个数据buffer是需要我们自己实现控制的.

上一篇下一篇

猜你喜欢

热点阅读