一种分布式播放器实现方法及系统技术方案

技术编号:12425659 阅读:72 留言:0更新日期:2015-12-03 11:09
本申请公开了一种分布式播放器实现方法及系统,包括:将分布式播放器分为解复用分离模块、解码模块、渲染模块;网络端构建解复用模块,对接收到的媒体文件进行解复用和分离处理,得到视频、音频、字幕原始流数据;客户端构建解码模块,接收网络端解复用模块发送的所述原始流数据,通过视频解码器对所述视频原始流数据进行解码;通过音频解码器对所述音频原始流数据进行解码;客户端构建渲染模块,对所述解码模块解码得到的解码数据进行调度渲染。能够解决播放器播放存在的速度慢、对网速依赖过高的问题,能够提高播放媒体文件的速度和效率,同时,节约带宽,破除对媒体文件格式的限制,提高用户满意度。

【技术实现步骤摘要】

本申请涉及互联网应用
,具体地说,涉及一种分布式播放器实现方法及系统
技术介绍
当前,视频播放器,通常是指能播放以数字信号形式存储的媒体文件的软件,也指具有播放媒体文件功能的电子器件产品。除了少数波形文件外,大多数视频播放器携带视音频解码器和渲染部件以还原经过压缩媒体文件,视频播放器还要内置一整套转换以及缓冲的算法。当然大多数的视频播放器还能支持播放单音频文件或者单视频文件。一般的处理过程为:输入。从文件或网络等读取原数据,如X.avi,x.mov,rtsp://xxx,对原数据进行解析,比如文件,首先要分析文件格式,从文件中取得音视频编码参数,媒体时间长度等信息,然后要从其中取出音频编码数据和视频编码数据送到解码部分,这里暂称这种编码源数据块为 packet。解码。初始化时,利用输入端从源数据中取得的信息调用不同的解码库初始化;然后接收输入端传送来的音视频编码数据,分别进行音频解码和视频解码,视频解码出来的数据一般是YUV或RGB数据,这里暂称为picture,音频解码出来的数据是采样数据,是声卡播放的数据,这里暂称为sample。解码所得的数据接下来送到输出部分。输出。接收解码部分送来的picture和sample并清染。视频清染一般使用某个图形库,如 SDL,Xlib,DirectDraw,OpengGL,FrameBuffer 等,音频输出是把 sample 写入系统的音频驱动,由音频驱动送入声卡播放,可用的音频输出有ALSA,OSS, SDL, DirectSound,WaveOut 等。现有技术中,原始的媒体文件(无论何种格式)如果在一个客户端内存储,想在其他客户端的播放器(后续简称:第二个客户端的播放器)上播放,一般采用如下几种方式:第一种方式:直接将完整的媒体文件从第一客户端传送到第二客户端,再播放,这种方式的缺点是:无疑会有很长的传输时间和需要很大的存储空间。第二种方式:第一客户端或服务器端启动一个服务,采用现有的协议,例如HTTP协议,传送媒体文件数据。第二客户端接收数据,当接收数据满足一定条件时,就开始完成播放的全流程。这种方式的缺点是:也需要第二客户端接收完整的媒体文件数据,在播放初始化阶段,可能会需要很大一块头数据,这部分头数据记录着整个媒体文件的关键信息(例如MP4文件),播放器需要等待整个数据头接收完毕,才能开始解码播放,这在传输速率有限情况下,可能会需要很长的等待时间,造成用户体验不好;其次通过这些协议传输会对媒体文件格式有比较严格的限制,会有很大部分媒体文件格式不能很好的支持。
技术实现思路
有鉴于此,本申请所要解决的技术问题是提供了一种分布式播放器实现方法及系统,其能够解决现有技术中播放器播放存在的速度慢、对网速依赖过高的问题,能够提高播放媒体文件的速度和效率,同时,节约带宽,破除对媒体文件格式的限制,提高用户满意度。为了解决上述技术问题,本申请有如下技术方案:—种分布式播放器实现方法,包括:将分布式播放器分为解复用分离模块、解码模块、清染模块;网络端构建解复用模块,对接收到的媒体文件进行解复用和分离处理,得到视频、音频、字幕原始流数据;客户端构建解码模块,接收网络端解复用模块发送的所述原始流数据,通过视频解码器对所述视频原始流数据进行解码;通过音频解码器对所述音频原始流数据进行解码;客户端构建渲染模块,对所述解码模块解码得到的解码数据进行调度渲染。所述解复用模块对接收到的媒体文件解复用和分离得到所述媒体文件相应的视频、音频、字幕数据,将所述视频、音频、字幕数据作为原始流数据。所述解复用模块将所述原始流数据根据所述媒体文件分类,并通过网络发送模块发送给客户端网络接收模块;所述客户端网络接收模块接收所述原始流数据并发送所述客户端解码模块进行解码。所述网络端解复用模块通过网络发送模块,将所述原始流数据对应发送若干个客户端网络接收t吴块;所述若干个客户端网络接收模块分别对所述接收到的原始流数据发送对应客户端解码模块进行解码。所述网络端还构建控制层,对解复用模块解复用得到的原始流数据的网络发送/接收过程进行设计和控制;所述客户端根据所述控制层的控制接收所述原始流数据并解码、渲染。—种分布式播放器实现系统,包括:解复用模块、网络发送/接收模块、解码模块和渲染模块;其中,所述解复用模块,用于对接收到的媒体文件进行解复用和分离处理,得到原始流数据;所述网络发送/接收模块,用于将所述原始流数据通过网络发送给所述解码模块;所述解码模块,用于接收所述原始流数据,对所述原始流数据进行解码,得到解码数据;所述渲染模块,用于对所述解码模块解码得到的解码数据进行调度渲染。所述网络发送/接收模块进一步分为网络发送子模块和网络接收子模块,具体如下:所述网络发送子模块,用于将所述解复用模块发送的所述原始流数据通过网络发送所述网络接收子模块;所述网络接收子模块,用于接收所述原始流数据,并发送所述解码模块。所述解复用模块设置于网络端,所述解码模块和渲染模块设置于客户端;所述网络发送子模块设置于网络端,所述网络接收子模块设置于客户端。所述解复用模块通过网络发送子模块,将所述原始流数据对应发送若干个网络接收子模块;所述若干个网络接收子模块分别对所述接收到的原始流数据发送对应解码模块进行解码。所述系统进一步包括控制层模块,用于对所述解复用模块解复用得到的原始流数据的网络发送/接收过程进行设计和控制;所述解复用模块、网络发送/接收模块、解码模块和渲染模块根据所述控制层模块的控制对所述媒体文件进行解复用、网络发送/接收、解码、渲染。与现有技术相比,本申请所述的方法和系统,达到了如下效果:第一,本专利技术能够解决播放器响应速度慢的问题。无论本地还是网络播放初始化解复用模块都需要媒体文件中很大的一块头数据,由于本实施例提供的分布式播放系统将解复用模块挪到网络端(远端),相对于解复用来说,播放的媒体文件是本地文件,对于加载本地文件,没有带宽限制,会非常迅速,时间忽略不计。所以点到播放的时间非常短暂,用户体验会很好。第二,本专利技术中,视音频数据在网络传输模块中被当成二进制数据传输,没有格式限制,因此这种分布式播放系统能播放几乎所有的媒体文件。第三,本专利技术数据传输过程只传输有用的视音频数据和字幕数据,节省部分带宽。【附图说明】此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本专利技术的所述一种分布式播放器实现方法流程图;图2为本专利技术的所述一种分布式播放器实现系统结构示意图。【具体实施方式】如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,本文档来自技高网
...

【技术保护点】
一种分布式播放器实现方法,其特征在于,包括:将分布式播放器分为解复用分离模块、解码模块、渲染模块;网络端构建解复用模块,对接收到的媒体文件进行解复用和分离处理,得到视频、音频、字幕原始流数据;客户端构建解码模块,接收网络端解复用模块发送的所述原始流数据,通过视频解码器对所述视频原始流数据进行解码;通过音频解码器对所述音频原始流数据进行解码;客户端构建渲染模块,对所述解码模块解码得到的解码数据进行调度渲染。

【技术特征摘要】

【专利技术属性】
技术研发人员:冷志勇李凤山高上卢述奇
申请(专利权)人:北京暴风科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1