一种iptv机顶盒基于rtsp协议网络媒体流窜播放方法

文档序号:7870097阅读:3050来源:国知局
专利名称:一种iptv机顶盒基于rtsp协议网络媒体流窜播放方法
技术领域
本发明涉及网络媒体流窜播放方法,特别是涉及一种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标识当前的主循环的状态。在播放过程中,只有两大状态数据传输进行中与数据传输暂停中。本说明书中公开的所有特征,除了互相排斥的特征以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进 等,均应包含在本发明的保护范围之内。
权利要求
1.一种IPTV机顶盒基于RTSP协议网络媒体流窜播放方法,所述方法主要通过机顶盒中的RTSP模块是实现,所述RTSP模块按照接收到的网络流媒体地址与服务器进行协商与播放控制,获取媒体数据,并把收到的媒体数据解析成解码器需要的格式;其特征在于,所述方法包括以下步骤 步骤一首先建立两个缓存数组,分别对应接收到与准备发送的数据,其数组元素包括缓存区与标识缓存区是否有数据的标志位; 步骤二 建立四个链表,分别对应音频的准备数据与完毕数据、视频的准备数据与完毕数据; 步骤三解析处理媒体数据,把解析后的媒体数据放入链表,供播放器取用; 步骤四处理服务器主动发送的Announce信号; 步骤五根据RTSP控制指令,IPTV机顶盒开始播放。
2.根据权利要求1所述的播放方法,其特征是上述步骤三中的链表包括链表节点元素,所述链表节点元素包括一帧asf数据、数据对应的扫描信息、指向链表下一个节点及尾节点的指针。
3.根据权利要求1所述的播放方法,其特征是上述步骤五中的RTSP控制指令每发送一次,只有收到服务器对此指令的回应后才能发送下一条rtsp指令。
4.根据权利要求3所述的播放方法,其特征是传输的数据过多堆积时,RTSP模块自动暂停数据传输或停止播放。
全文摘要
本发明为一种IPTV机顶盒基于RTSP协议网络媒体流窜播放方法,按照传入的网络流媒体地址与服务器进行协商与播放控制,获取媒体数据,并把收到的媒体数据解析成解码器需要的格式。基于RFC2326规范设计,支持点播和组播的网络流串;能够兼容网络环境中现行的各种基于RFC2326规范设计的流媒体服务器发送出来的媒体流串;增加了私网穿越功能,可以用于各种复杂的内网环境;模块基于独立的结构设计,可以广泛使用于各种播放器的流媒体播放模块。
文档编号H04N21/6437GK103024596SQ201210569260
公开日2013年4月3日 申请日期2012年12月25日 优先权日2012年12月25日
发明者李东旭, 申及 申请人:四川九洲电器集团有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1