一种跨平台的流发生器及控制方法

文档序号:7851840阅读:273来源:国知局
专利名称:一种跨平台的流发生器及控制方法
技术领域
本发明涉及一种跨平台的流发生器及控制方法。
背景技术
目前,在IPTV机顶盒上对于流媒体相关的应用开发进行调试时,一般选择WinSend软件作为服务器端发送码流控制。但是WinSend只能适用于Windows平台下,在其它平台下缺少ー款可用于调试TS流的工具。Java开发的流发生器可以通用于任何操作系统,只要Java虚拟机支持。因此java跨平台流发生器可以大大筒化在非Windows平台下IPTV机顶盒的开发调试,同时该工具可以作为组播发生器而广泛使用。


发明内容
本发明的目的在于解决现有技术的不足,提供一种可跨平台控制数据流发送速度的、可減少由底层数据连接而引起的应用程序漏洞及故障的跨平台流发生器及控制方法。本发明的目的是通过以下技术方案来实现的一种跨平台的流发生器,它包括组播发包単元、网络连接単元、文件处理单元和RTSP协议处理单元,所述的组播发包単元包括发送速度控制模块、数据包发送模块和RTP封包模块;网络连接単元包括组播地址管理模块和端ロ连接管理模块;文件处理单元包括TS文件读取模块和文件缓存模块;RTSP协议处理单元包括端ロ监听模块、信令解析模块和信令回应模块。一种跨平台的流发生器控制方法,它包括文件处理、网络连接、组播发包和RTSP协议处理四个步骤,组播发包步骤包括RTP封包步骤、数据包发送步骤和发送速度控制步骤,所述的发送速度控制步骤包括ー个码率控制步骤、一个恒码率数据流播放控制步骤和 一个变码率数据流播放控制步骤
所述的码率控制子步骤包括以下子步骤
5101:记录数据流的实际发送时刻即当前系统时刻CurrentTime (n),其中,n=0,1,2,......,第一次发送时,n=0;
5102:根据RTP包的理论发送时刻SentTime (n)计算出系统时刻与发送时刻的差值Difference=CurrentTime (0) -SentTime (0);
5103:计算出姆发送完一个RTP包后的休息时间SleepTime (n) =SentTime(n) -[CurrentTime (n) -Difference];
所述的恒码率数据流播放控制步骤包括以下子步骤
S201 :计算第n个恒码率RTP包要发送的时间SentTime (n)= (RTPPacketNum*188*8)/bitRate,其中,RTPPacketNum是该RTP包的索引,从0开始依次增加,7*188是ー个RTP包的字节数,乘8后变成以位为单位,bitRate是指定的恒定码率;
所述的变码率数据流播放控制步骤包括以下子步骤
5301:取RTP包中所包含视频的PCR作为该RTP包的发送时间SentTime (n);
5302:在发送变码率数据流吋,以7*188作为单位进行数据的读取;S303 :比较当前RTP包中含有视频的PCR与上一次发送的PCR,计算获得休息时间。本发明所述的文件处理步骤包括以下步骤
5401:输入文件名并检验文件是否完整有效,如果不是完整有效的文件,则返回错误信
息;
5402:如果文件完整有效,则初始化缓存并打开文件;
5403:检验缓存是否为空,如果为空,则检验是否到文件尾,如果已到文件尾,则复位文件指针;
5404:读取文件并写入缓存。
本发明所述的网络连接子步骤包括以下步骤
5501:选择网卡、组播地址及网络连接端ロ ;
5502:建立IP组播套接字;
5503:设置与IP组播相关的属性选项;
5504:接收到发送请求吋,向组播组发送数据。本发明所述的RTSP协议处理子步骤包括以下步骤
5601:启动端ロ监听;
5602:收到RTSP请求时,解析请求信令并发送反馈信令。本发明的有益效果是跨平台的流发生器可以部署在任意支持Java虚拟机的平台上,大大拓宽了使用范围,降低了部署难度;同时可以对发送速度进行设置,从而很容易地对网络带宽、延迟、RTP包的丢包、抖动等情况进行模拟,实现对IPTV机顶盒应用程序在各种网络条件下的性能的测试;此外,本跨平台的流发生器減少了由底层数据连接而引起的应用程序漏洞及故障。


图I为本发明流发生器的组成结构示意框 图2为本发明文件处理步骤流程 图3为本发明网络连接步骤流程 图4为本发明RTSP协议处理步骤流程图。
具体实施例方式下面结合附图进一歩描述本发明的技术方案
如图I所示,一种跨平台的流发生器,它包括组播发包単元、网络连接単元、文件处理単元和RTSP协议处理单元,所述的组播发包単元包括发送速度控制模块、数据包发送模块和RTP封包模块;网络连接単元包括组播地址管理模块和端ロ连接管理模块;文件处理单元包括TS文件读取模块和文件缓存模块;RTSP协议处理单元包括端ロ监听模块、信令解析模块和信令回应模块。一种跨平台的流发生器控制方法,它包括文件处理、网络连接、组播发包和RTSP协议处理四个步骤,组播发包步骤包括RTP封包步骤、数据包发送步骤和发送速度控制步骤,所述的发送速度控制步骤包括ー个码率控制步骤、一个恒码率数据流播放控制步骤和一个变码率数据流播放控制步骤所述的码率控制子步骤包括以下子步骤
5101:记录数据流的实际发送时刻即当前系统时刻CurrentTime (n),其中,n=0,1,2,......,第一次发送时,n=0;
5102:根据RTP包的理论发送时刻SentTime (n)计算出系统时刻与发送时刻的差值Difference=CurrentTime (0) -SentTime (0);
5103:计算出姆发送完一个RTP包后的休息时间SleepTime (n) =SentTime(n) -[CurrentTime (n) -Difference];
所述的恒码率数据流播放控制步骤包括以下子步骤
S201 :计算第n个恒码率RTP包要发送的时间SentTime (n)= (RTPPacketNum*188*8)/bitRate,其中,RTPPacketNum是该RTP包的索引,从0开始依次增加,7*188是ー个RTP包的字节数,乘8后变成以位为单位,bitRate是指定的恒定码率;
所述的变码率数据流播放控制步骤包括以下子步骤
5301:取RTP包中所包含视频的PCR作为该RTP包的发送时间SentTime (n);
5302:在发送变码率数据流吋,以7*188作为单位进行数据的读取;
5303:比较当前RTP包中含有视频的PCR与上一次发送的PCR,计算获得休息时间。如图2所示,文件处理步骤包括以下步骤
5401:输入文件名并检验文件是否完整有效,如果不是完整有效的文件,则返回错误信
息;
5402:如果文件完整有效,则初始化缓存并打开文件;
5403:检验缓存是否为空,如果为空,则检验是否到文件尾,如果已到文件尾,则复位文件指针;
5404:读取文件并写入缓存。如图3所示,网络连接子步骤包括以下步骤
5501:选择网卡、组播地址及网络连接端ロ ;
5502:建立IP组播套接字;
5503:设置与IP组播相关的属性选项;
5504:接收到发送请求吋,向组播组发送数据。如图4所示,RTSP协议处理步骤包括以下步骤
5601:启动端ロ监听;
5602:收到RTSP请求时,解析请求信令并发送反馈信令。
权利要求
1.一种跨平台的流发生器,其特征在于它包括组播发包单元、网络连接单元、文件处理单元和RTSP协议处理单元,所述的组播发包单元包括发送速度控制模块、数据包发送模块和RTP封包模块;网络连接单元包括组播地址管理模块和端口连接管理模块;文件处理单元包括TS文件读取模块和文件缓存模块;RTSP协议处理单元包括端口监听模块、信令解析模块和信令回应模块。
2.—种跨平台的流发生器控制方法,它包括文件处理、网络连接、组播发包和RTSP协议处理四个步骤,组播发包步骤包括RTP封包步骤、数据包发送步骤和发送速度控制步骤,其特征在于所述的发送速度控制步骤包括一个码率控制步骤、一个恒码率数据流播放控制步骤和一个变码率数据流播放控制步骤 所述的码率控制子步骤包括以下子步骤 5101:记录数据流的实际发送时刻即当前系统时刻CurrentTime (n),其中,n=0,1,2,......,第一次发送时,n=0; 5102:根据RTP包的理论发送时刻SentTime (η)计算出系统时刻与发送时刻的差值Difference=CurrentTime (O) -SentTime (O); 5103:计算出每发送完一个RTP包后的休息时间SleepTime (n) =SentTime(n) -[CurrentTime (n) -Difference]; 所述的恒码率数据流播放控制步骤包括以下子步骤 S201 :计算第η个恒码率RTP包要发送的时间SentTime (n)= (RTPPacketNum*188*8)/bitRate,其中,RTPPacketNum是该RTP包的索引,从O开始依次增加,7*188是一个RTP包的字节数,乘8后变成以位为单位,bitRate是指定的恒定码率; 所述的变码率数据流播放控制步骤包括以下子步骤 5301:取RTP包中所包含视频的PCR作为该RTP包的发送时间SentTime (η); 5302:在发送变码率数据流时,以7*188作为单位进行数据的读取; 5303:比较当前RTP包中含有视频的PCR与上一次发送的PCR,计算获得休息时间。
3.根据权利要求2所述的一种跨平台的流发生器控制方法,其特征在于所述的文件处理步骤包括以下步骤 5401:输入文件名并检验文件是否完整有效,如果不是完整有效的文件,则返回错误信息; 5402:如果文件完整有效,则初始化缓存并打开文件; 5403:检验缓存是否为空,如果为空,则检验是否到文件尾,如果已到文件尾,则复位文件指针; 5404:读取文件并写入缓存。
4.根据权利要求2所述的一种跨平台的流发生器控制方法,其特征在于所述的网络连接步骤包括以下步骤 5501:选择网卡、组播地址及网络连接端口 ; 5502:建立IP组播套接字; 5503:设置与IP组播相关的属性选项; 5504:接收到发送请求时,向组播组发送数据。
5.根据权利要求2所述的一种跨平台的流发生器控制方法,其特征在于所述的RTSP协议处理步骤包括以下步骤 5601:启动端口监听;5602:收到RTSP请求时,解析请求信令并发送反馈信令。
全文摘要
本发明公开了一种跨平台的流发生器,它包括组播发包单元、网络连接单元、文件处理单元和RTSP协议处理单元;一种跨平台的流发生器控制方法,包括文件处理、网络连接、组播发包和RTSP协议处理四个步骤,组播发包步骤包括RTP封包步骤、数据包发送步骤和发送速度控制步骤,发送速度控制步骤包括一个码率控制步骤、一个恒码率数据流播放控制步骤和一个变码率数据流播放控制步骤。本发明可部署在任意支持Java虚拟机的平台上,大大拓宽了使用范围,降低了部署难度;可以对发送速度进行设置,从而容易对网络带宽、延迟、RTP包的丢包、抖动等情况进行模拟,实现对IPTV机顶盒应用程序性能的测试。
文档编号H04L1/00GK102710512SQ201210162029
公开日2012年10月3日 申请日期2012年5月23日 优先权日2012年5月23日
发明者张黛西, 董弋粲 申请人:成都三零凯天通信实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1