一种IPTV机顶盒基于RTSP协议网络媒体流窜播放方法技术

技术编号:8537426 阅读:610 留言:0更新日期:2013-04-04 22:38
本发明专利技术为一种IPTV机顶盒基于RTSP协议网络媒体流窜播放方法,按照传入的网络流媒体地址与服务器进行协商与播放控制,获取媒体数据,并把收到的媒体数据解析成解码器需要的格式。基于RFC2326规范设计,支持点播和组播的网络流串;能够兼容网络环境中现行的各种基于RFC2326规范设计的流媒体服务器发送出来的媒体流串;增加了私网穿越功能,可以用于各种复杂的内网环境;模块基于独立的结构设计,可以广泛使用于各种播放器的流媒体播放模块。

【技术实现步骤摘要】

本专利技术涉及网络媒体流窜播放方法,特别是涉及一种IPTV机顶盒基于RTSP协议网络媒体流窜播放方法
技术介绍
RTSP (Real Time Streaming Protocol,实时流媒体协议)是由 Real Network 和Netscape共同提出的一种应用层协议,它定义了如何在IP网络上有效地传输流媒体数据,RTSP提供了一种机制,使音频、视频等数据可以按照需要进行实时传输,并且可以实施诸如暂停、快进等控制。网络中的媒体服务器基本上都是基于RTSP协议的媒体服务器,IPTV机顶盒是基于网络的产品,所以播放网络中的媒体流是一个必须的基本功能。基于这个需求,我们设计了基于RTSP的网络媒体流串播放。
技术实现思路
本专利技术的目的在与解决如何实现IPTV机顶盒播放网络中的媒体流。本专利技术采用如下技术方案一种IPTV机顶盒基于RTSP协议网络媒体流窜播放方法,所述方法主要通过机顶盒中的RTSP模块是实现,所述RTSP模块按照接收到的网络流媒体地址与服务器进行协商与播放控制,获取媒体数据,并把收到的媒体数据解析成解码器需要的格式;所述方法包括以下步骤 步骤一首先建立两个缓存数组,分别对应接收到与准备发送的数据,其数组元素包括缓存区与标识缓存区是否有数据的标志位; 步骤二 建立四个链表,分别对应音频的准备数据与完毕数据、视频的准备数据与完毕数据; 步骤三解析处理媒体数据,把解析后的媒体数据放入链表,供播放器取用; 步骤四处理服务器主动发送的Announce信号; 步骤五根据RTSP控制指令,IPTV机顶盒开始播放。上述步骤三中的链表包括链表节点元素,所述链表节点元素包括一巾贞asf数据、数据对应的扫描信息、指向链表下一个节点及尾节点的指针。上述步骤五中的RTSP控制指令每发送一次,只有收到服务器对此指令的回应后才能发送下一条rtsp指令。在上述技术方案中,传输的数据过多堆积时,RTSP模块自动暂停数据传输或停止播放。本专利技术的优点在于本专利技术可以兼容所有基于RFC2326规范设计的流媒体服务器发送出的网络流串;可以处理基于RTSP单播流媒体和基于IGMP的组播流媒体;结合实际网络情况,增加了私网穿越功能,能适应复杂的内网环境;基于独立模块的设计,不影响播放器的其他播放功能;模块基于独立的结构设计,可以广泛使用于各种播放器的流媒体播放模块。附图说明本专利技术将通过实施例并参照附图的方式说明,其中 图1是RTSP流媒体播放模块流程图。具体实施例方式下面结合附图对本专利技术做进一步的说明。本专利技术主要通过RTSP模块来实现,RTSP模块的主要功能是,按照传入的网络流媒体地址与服务器进行协商与播放控制,获取媒体数据,并把收到的媒体数据解析成解码器需要的格式。数据的处理流向如下 首先,建立两个缓存数组RecvBuf_Block与SendBuf_Block,分别对应接收到与准备发送的数据,其数组元素包括缓存区与标识缓存区是否有数据的标志位。使用这两个数组的目的是把数据接收与处理独立开,并行化加快效率;在多数据源的情况下(例如tcp+udp),有利于数据在主循环中的统一处理。其次,建立四个链表、VideoStream、AudioStream、VideoStreamReady、AudioStreamReady,分别对应音视频的准备数据与完毕数据,其链表节点元素包括“一块”数据(针对asf,即一帧数据)、数据对应的描述信息、指向链表下一个节点及尾节点的指针。在RTSP模块的handle函数的主循环中 首先从ReCVBuf_Bl0Ck取出一块接收到的网络数据,接着对媒体数据进行解析,把解析完毕后的数据放入VideoStream/AudioStream ; 接着,对当前的VideoStream/AudioStream链表进行判断,把其中准备好的数据转入VideoStreamReady/AudioStreamReady 链表,以供播放器模块取用。在这里设计准备链表的原因是,目前送往播放的数据只能是pes数据,而asf码流没有Pes数据这一概念,必须针对每一帧数据进行重新打包工作,而asf每帧的数据并不一定是一次接收完毕的,所以每次处理后的asf数据首先放入VideoStream/AudioStream中。对于TS流的pes数据,由于每个TS包中的pes数据较少,出于效率的考虑,当堆积的pes数据达到一定数目(数百字节)后,作为一块放入VideoStream/AudioStream,并置完毕标志位,以在之后的处理中直接转入VideoStreamReady/AudioStreamReady链表。当RTSP模块接收准备好数据后,等待处理服务器主动发送的Announce信号,根据rtsp控制命令的回应,调整主循环状态机,在主循环中,有一个接收rasps控制命令的队列,每次循环中,如当前状态可以发送rtsp命令,且队列中有未处理的控制,则取出相应控制进行处理。主循环模块中,使用了三个全局状态变量RTSP_STAT、RTSP_C0MM、NowStat来控制状态机。其中RTSP_STAT的作用是保证rtsp命令发送的时序,即每发送一个rtsp命令后,只有收到服务器对此命令的回应后,才能发送下一条rtsp命令。RTSP_C0MM负责记录当前发送的rtsp命令,以便收到服务器回应后,相应的调节状态机。NowStat标识当前的主循环的状态。在播放过程中,只有两大状态数据传输进行中与数据传输暂停中。本说明书中公开的所有特征,除了互相排斥的特征以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内所作的任何修改、等同替换和改进 等,均应包含在本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
一种IPTV机顶盒基于RTSP协议网络媒体流窜播放方法,所述方法主要通过机顶盒中的RTSP模块是实现,所述RTSP模块按照接收到的网络流媒体地址与服务器进行协商与播放控制,获取媒体数据,并把收到的媒体数据解析成解码器需要的格式;其特征在于,所述方法包括以下步骤:步骤一:首先建立两个缓存数组,分别对应接收到与准备发送的数据,其数组元素包括缓存区与标识缓存区是否有数据的标志位;步骤二:建立四个链表,分别对应音频的准备数据与完毕数据、视频的准备数据与完毕数据;步骤三:解析处理媒体数据,把解析后的媒体数据放入链表,供播放器取用;步骤四:?处理服务器主动发送的Announce信号;步骤五:根据RTSP控制指令,IPTV机顶盒开始播放。

【技术特征摘要】
1.一种IPTV机顶盒基于RTSP协议网络媒体流窜播放方法,所述方法主要通过机顶盒中的RTSP模块是实现,所述RTSP模块按照接收到的网络流媒体地址与服务器进行协商与播放控制,获取媒体数据,并把收到的媒体数据解析成解码器需要的格式;其特征在于,所述方法包括以下步骤 步骤一首先建立两个缓存数组,分别对应接收到与准备发送的数据,其数组元素包括缓存区与标识缓存区是否有数据的标志位; 步骤二 建立四个链表,分别对应音频的准备数据与完毕数据、视频的准备数据与完毕数据; 步骤三解析处理媒体数据,把解析后的媒体数据放入链表,供播放...

【专利技术属性】
技术研发人员:李东旭申及
申请(专利权)人:四川九洲电器集团有限责任公司
类型:发明
国别省市:

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

1