一种发送数据的方法和装置转让专利

申请号 : CN201010034221.2

文献号 : CN101790075A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱峰张宝柱何营

申请人 : 北京东方广视科技股份有限公司

摘要 :

本发明公开了一种发送数据的方法和装置,属于有线电视视频点播技术领域。方法包括:打开每个节目文件,每个节目文件中携带多个节目数据包和多个程序时钟参考时码包;从每个节目文件中读取一个程序时钟参考周期的节目数据包,将读取到的节目数据包作为当前节目数据包;计算当前节目数据包的实时码率;当计算出的实时码率小于预设的带宽阈值时,在当前节目数据包中填充空包,得到复用数据;对复用数据进行均匀分布处理,生成并发送复用数据包。装置包括:打开模块、读取模块、计算模块、填充模块和均匀分布处理模块。通过对一个PCR周期内的节目数据包和空包在进行均匀分布处理,使发送到机顶盒的数据流均匀,避免了在播放节目中出现PCR抖动和数据突发。

权利要求 :

1.一种发送数据的方法,其特征在于,所述方法包括:

打开每个节目文件,所述每个节目文件中携带多个节目数据包和多个程序时钟参考时码包,其中,每两个相邻所述程序时钟参考时码包间隔预设的程序时钟参考周期;

从所述每个节目文件中读取一个所述程序时钟参考周期的节目数据包,将读取到的节目数据包作为当前节目数据包;

计算所述当前节目数据包的实时码率;

当计算出的实时码率小于预设的带宽阈值时,在所述当前节目数据包中填充空包,得到复用数据;

对所述复用数据进行均匀分布处理,生成并发送复用数据包。

2.如权利要求1所述的发送数据的方法,其特征在于,所述计算当前节目数据包的实时码率之后还包括:判断计算出的实时码率是否小于预设的带宽阈值;

如果大于等于,则存储溢出的节目数据包,将剩余的节目数据包作为复用数据,然后执行对所述复用数据进行均匀分布处理的步骤。

3.如权利要求1所述的发送数据的方法,其特征在于,所述将读取到的节目数据包作为当前节目数据包之后,计算所述当前节目数据包的实时码率之前还包括:判断本地是否存储有溢出的节目数据包;

如果有,则将所述溢出的节目数据包添加到所述读取到的节目数据包中,将所述溢出的节目数据包和所述读取到的节目数据包之和作为当前节目数据包,然后执行计算所述当前节目数据包的实时码率的步骤;否则,直接执行计算所述当前节目数据包的实时码率的步骤。

4.如权利要求1所述的发送数据的方法,其特征在于,所述打开每个节目文件之前还包括:接收用户的点播请求,获得节目名列表;

相应地,所述打开每个节目文件具体为:

遍历所述节目名列表,打开所述节目名列表中包含的每个节目名对应的每个节目文件。

5.如权利要求1-4中任一权利要求所述的发送数据的方法,其特征在于,所述对所述复用数据进行均匀分布处理,生成并发送复用数据包具体包括:计算所述复用数据中包含的空包数量和包含的每个节目文件的节目数据包数量;

根据所述空包数量和所述每个节目文件的节目数据包数量,按照预设的均匀分布算法,将所述每个节目文件的每个节目数据包与每个空包按序交叉排列;

将按序交叉排列后的每个节目文件的每个节目数据包和空包,作为一个复用数据包,发送所述复用数据包。

6.一种发送数据的装置,其特征在于,所述装置包括:

打开模块,用于打开每个节目文件,所述每个节目文件中携带多个节目数据包和多个程序时钟参考时码包,其中,每两个相邻所述程序时钟参考时码包间隔预设的程序时钟参考周期;

读取模块,用于在所述打开模块打开每个节目文件后,从所述每个节目文件中读取一个所述程序时钟参考周期的节目数据包,将读取到的节目数据包作为当前节目数据包;

计算模块,用于在所述读取模块得到当前节目数据包后,计算所述当前节目数据包的实时码率;

填充模块,用于当所述计算模块计算出的实时码率小于预设的带宽阈值时,在所述当前节目数据包中填充空包,得到复用数据;

均匀分布处理模块,用于对所述复用数据进行均匀分布处理,生成并发送复用数据包。

7.如权利要求6所述的发送数据的装置,其特征在于,所述装置还包括:第一判断模块,用于在所述计算模块计算出当前节目数据包的实时码率后,判断计算出的实时码率是否小于预设的带宽阈值;

第一通知模块,用于当所述第一判断模块的判断结果是大于等于时,存储溢出的节目数据包,将剩余的节目数据包作为复用数据,通知所述均匀分布处理模块执行对所述复用数据进行均匀分布处理的步骤。

8.如权利要求6所述的发送数据的装置,其特征在于,所述装置还包括:第二判断模块,用于在所述读取模块将读取到的节目数据包作为当前节目数据包之后,所述计算模块计算所述当前节目数据包的实时码率之前,判断本地是否存储有溢出的节目数据包;

第二通知模块,用于当所述第二判断模块的判断结果是有时,将所述溢出的节目数据添加到所述读取到的节目数据包中,将所述溢出的节目数据包和所述读取到的节目数据包之和作为当前节目数据包,通知所述计算模块执行计算所述当前节目数据包的实时码率的步骤;当所述第二判断模块的判断结果是没有时,通知所述计算模块执行计算所述当前节目数据包的实时码率的步骤。

9.如权利要求6所述的发送数据的装置,其特征在于,所述装置还包括:获取模块,用于在所述打开模块打开每个节目文件之前,接收用户的点播请求,获得节目名列表;

相应地,

所述打开模块,具体用于在所述获取模块获得节目名列表后,遍历所述节目名列表,打开所述节目名列表中包含的每个节目名对应的每个节目文件。

10.如权利要求6-9中任一权利要求所述的发送数据的装置,其特征在于,所述均匀分布处理模块具体包括:计算单元,用于计算所述复用数据中包含的空包数量和包含的所述每个节目文件的节目数据包数量;

排列单元,用于根据所述计算单元计算出的空包数量和所述每个节目文件的节目数据包数量,按照预设的均匀分布算法,将所述每个节目文件的每个节目数据包与每个空包按序交叉排列;

复用数据包生成单元,用于在所述排列单元将所述每个节目文件的每个节目数据包与每个空包按序交叉排列后,将按序交叉排列后的每个节目文件的每个节目数据包和空包,作为一个复用数据包,并发送所述复用数据包。

说明书 :

技术领域

本发明涉及有线电视视频点播技术领域,特别涉及一种发送数据的方法和装置。

背景技术

随着通信技术的发展,有线电视技术也越来越成熟。在有线电视技术领域中,视频服务器将节目数据包推送到网卡,通过网卡将节目数据包发送到机顶盒(STB,Set-Top Box)进行播放。
目前,视频服务器在将节目数据包推送到网卡时,会根据当前节目数据包的数量,添加空包,然后将节目数据包和空包直接发送到网卡,一般不对节目数据包和空包进行任何处理。
然而,在实现本发明的过程中,发明人发现现有技术至少存在以下缺点:
视频服务器在发送数据时,有时发送的节目数据包和空包的数量多,有时发送的数量少,视频服务器每次发送的数量很不均匀,而网卡也不能对数据进行流量控制,因此使发送到机顶盒的节目数据包和空包往往为突发性质,会对机顶盒产生数据冲击,造成机顶盒在播放节目过程中出现PCR(Program ClockReference,程序时钟参考)抖动和数据突发。

发明内容

为了避免机顶盒在播放节目过程中出现PCR抖动和数据突发,本发明实施例提供了一种发送数据的方法和装置,所述技术方案如下:
一方面,本发明实施例提供了一种发送数据的方法,所述方法包括:
打开每个节目文件,所述每个节目文件中携带多个节目数据包和多个程序时钟参考时码包,其中,每两个相邻所述程序时钟参考时码包间隔预设的程序时钟参考周期;
从所述每个节目文件中读取一个所述程序时钟参考周期的节目数据包,将读取到的节目数据包作为当前节目数据包;
计算所述当前节目数据包的实时码率;
当计算出的实时码率小于预设的带宽阈值时,在所述当前节目数据包中填充空包,得到复用数据;
对所述复用数据进行均匀分布处理,生成并发送复用数据包。
另一方面,本发明实施例提供了一种发送数据的装置,所述装置包括:
打开模块,用于打开每个节目文件,所述节目文件中携带多个节目数据包和多个程序时钟参考时码包,其中,每两个相邻所述程序时钟参考时码包间隔预设的程序时钟参考周期;
读取模块,用于在所述打开模块打开每个节目文件后,从所述每个节目文件中读取一个所述程序时钟参考周期的节目数据包,将读取到的节目数据包作为当前节目数据包;
计算模块,用于在所述读取模块得到当前节目数据包后,计算所述当前节目数据包的实时码率;
填充模块,用于当所述计算模块计算出的实时码率小于预设的带宽阈值时,在所述当前节目数据包中填充空包,得到复用数据;
均匀分布处理模块,用于在所述填充模块得到复用数据后,对所述复用数据进行均匀分布处理,生成并发送复用数据包。
本发明实施例提供的技术方案的有益效果如下:
通过对一个PCR周期内的节目数据包和空包在进行均匀分布处理,生成复用数据包,通过网卡将复用数据包发送到机顶盒进行播放,使发送到机顶盒的数据流均匀,避免了机顶盒在播放节目过程中出现PCR抖动和数据突发。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种发送数据的方法流程图;
图2是本发明实施例2提供的一种发送数据的方法流程图;
图3是本发明实施例3提供的第一种发送数据的装置结构示意图;
图4是本发明实施例3提供的第二种发送数据的装置结构示意图;
图5是本发明实施例3提供的第三种发送数据的装置结构示意图;
图6是本发明实施例3提供的第四种发送数据的装置结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本发明实施例提供了一种发送数据的方法,包括:
101:打开每个节目文件,每个节目文件中携带多个节目数据包和多个程序时钟参考时码包,其中,每两个相邻程序时钟参考时码包间隔预设的程序时钟参考周期。
102:从每个节目文件中读取一个程序时钟参考周期的节目数据包,将读取到的节目数据包作为当前节目数据包。
103:计算当前节目数据包的实时码率。
104:当计算出的实时码率小于预设的带宽阈值时,在当前节目数据包中填充空包,得到复用数据。
105:对复用数据进行均匀分布处理,生成并发送复用数据包。
进一步地,计算当前节目数据包的实时码率之后还包括:
判断计算出的实时码率是否小于预设的带宽阈值;
如果大于等于,则存储溢出的节目数据包,将剩余的节目数据包作为复用数据,然后执行对复用数据进行均匀分布处理的步骤。
进一步地,将读取到的节目数据包作为当前节目数据包之后,计算当前节目数据包的实时码率之前还包括:
判断是否存储有溢出的节目数据包;
如果有,则将溢出的节目数据包添加到读取到的节目数据包中,将溢出的节目数据和读取到的节目数据包之和作为当前节目数据包,然后执行计算当前节目数据包的实时码率的步骤;否则,直接执行计算当前节目数据包的实时码率的步骤。
进一步地,打开每个节目文件之前还包括:
接收用户的点播请求,获得节目名列表;
相应地,打开每个节目文件具体为:
遍历节目名列表,打开节目名列表中包含的每个节目名对应的每个节目文件。
进一步地,对复用数据进行均匀分布处理,生成并发送复用数据包具体包括:
计算复用数据中包含的空包数量和包含的每个节目文件的节目数据包数量;
根据空包数量和每个节目文件的节目数据包数量,按照预设的均匀分布算法,将每个节目文件的每个节目数据包与每个空包按序交叉排列;
将按序交叉排列后的每个节目文件的每个节目数据包和空包,作为一个复用数据包,并发送该复用数据包。
本发明实施例所述的发送数据的方法,通过对一个PCR周期内的节目数据包和空包在进行均匀分布处理,生成复用数据包,通过网卡将复用数据包发送到机顶盒进行播放,使发送到机顶盒的数据流均匀,避免了机顶盒在播放节目过程中出现PCR抖动和数据突发。并且,通过计算节目数据包的实时码率,将溢出的节目数据包暂存后添加到下一周期的节目数据包中,可以有效地解决节目数据包上溢的问题,保证了数据不会出现突发现象,防止突变码率影响正常接收,达到视频服务器的平稳播出,从而不会对机顶盒产生数据冲击,同时可以降低对机顶盒的硬件要求,使低端机顶盒也可享受高端机顶盒的点播体验。
实施例2
参见图2,本发明实施例提供了一种发送数据的方法,包括:
201:视频服务器接收用户的点播请求,获得节目名列表。
视频服务器每次至少接收到一个用户的点播请求,每个用户的点播请求中携带有一个相应的节目名,各个节目名以列表的形式出现,形成节目名列表。
202:视频服务器遍历节目名列表,打开节目名列表中包含的每个节目名对应的每个节目文件,每个节目文件中携带相应节目的多个节目数据包和多个PCR时码包,每两个相邻PCR时码包间隔预设的PCR周期。
其中,每个节目文件经过预先处理,进行的预先处理具体是:将节目文件中携带的PCR时码包按照预设的PCR周期进行调整,使每两个相邻PCR时码包之间的间隔为一个PCR周期。可以根据实际应用状况,设置预设的PCR周期为多长时间,例如:可以设置预设的PCR周期为20毫秒、30毫秒、或40毫秒等。本发明实施例中,设置预设的PCR周期为40毫秒。
203:视频服务器分别从每个节目文件中读取一个PCR周期的节目数据包,将读取到的节目数据包作为当前节目数据包。
需要说明的是,视频服务器从每个节目文件中读取节目数据包的时间间隔长度是相同的,为一个PCR周期,但是视频服务器从每个节目文件中读取节目数据包的周期段不一定是相同的,也就是说从每个节目文件中读取的均是一个PCR周期的节目数据包,但是该PCR周期可能处于不同节目文件的不同周期段。例如:设置PCR周期为40毫秒,节目名列表中包括3个节目名,打开该3个节目名对应的3个节目文件,视频服务器从3个节目文件中分别读取一个PCR周期的节目数据包,其中从第1节目文件中读取的是第0毫秒-第40毫秒之间的节目数据包,从第2节目文件中读取的是第120毫秒-第160毫秒之间的节目数据包,从第3节目文件中读取的是第0毫秒-第40毫秒之间的节目数据包。
204:视频服务器判断视频服务器中是否存储有溢出的节目数据包,如果是,则执行205;否则,执行206。
205:视频服务器将溢出的节目数据包添加到读取到的节目数据包中,将溢出的节目数据包和读取到的节目数据包之和作为当前节目数据包,然后执行206。
具体地,视频服务器会判断溢出的节目数据包中具体包括哪个节目的节目数据包,属于哪个节目,就将相应的部分添加到读取到的哪个节目的节目数据包的前面。
206:视频服务器计算当前节目数据包的实时码率。
具体地,可以根据PCR时码包,以及相邻PCR时码包之间的节目数据包的数量,计算当前节目数据包的实时码率。具体计算方法与现有技术相同,此处不再赘述。
207:视频服务器判断计算出的实时码率是否小于预设的带宽阈值,如果是,则执行208;否则,执行209。
其中,预设的带宽阈值可以根据实际应用中使用的带宽进行设置,如实际应用中使用的带宽是36M/bit,则可以设置预设的带宽阈值为36M/bit或30M/bit等任一小于等于实际使用的带宽的值。
208:视频服务器在当前节目数据包中填充空包,得到复用数据,然后执行210。
209:视频服务器存储溢出的节目数据包,将剩余的节目数据包作为复用数据,然后执行210。
其中,溢出的节目数据包是指实时码率大于预设的带宽阈值那部分节目数据包,该步骤之前提到的溢出的节目数据包与此处含义相同。具体地,将溢出的节目数据包存储下来时,可以设置相应的标识,以表明存储有溢出的节目数据包,如:设置“01”来表示存储有溢出的节目数据包,设置“10”来表示没有存储有溢出的节目数据包,以使得在步骤204中视频服务器可以通过标识判断出是否有溢出的节目数据包。需要说明的是,并不限于通过本发明实施例所述的方法表示是否存储有溢出的节目数据包,可以根据实际应用状况,选择任一可行的方式进行表示。
210:视频服务器对复用数据进行均匀分布处理,生成复用数据包。
具体地,计算复用数据中包含的空包数量和包含的每个节目文件的节目数据包数量;根据空包数量和每个节目文件的节目数据包数量,按照预设的均匀分布算法,将每个节目文件的每个节目数据包与每个空包按序交叉排列;将按序交叉排列后的每个节目文件的每个节目数据包和空包,作为一个复用数据包。
其中,预设的均匀分布算法可以是:根据每个节目文件的节目数据包数量和空包数量,每次从每个节目文件对应的所有节目数据包与所有空包中选取一个或多个按序交叉排列,依次进行下去,直到将每个节目文件对应的所有节目数据包与所有空包排列完。
例如:复用数据中包括2个节目文件的节目数据包(第1个节目文件的节目数据包数量是3,第2个节目的节目数据包数量是9)和6个空包,按照每次一个按序交叉排列后的结果可以是:第1个节目文件的第1个节目数据包(可记为1(1))排列在第1个位置,第2个节目文件的第1个节目数据包(可记为2(1))排列在第2个位置,第1个空包(可记为3(1))排列在第3个位置...第1个节目文件的第3个节目数据包(可记为1(3))排列在第7个位置,第2个节目文件的第3个节目数据包(可记为2(3))排列在第8个位置,第3个空包(可记为3(3))排列在第9个位置,第2个节目文件的第4个节目数据包(可记为2(4))排列在第10个位置,第4个空包(可记为3(4))排列在第11个位置...第2个节目文件的第8个节目数据包(可记为2(8))排列在第17个位置,第2个节目文件的第9个节目数据包(可记为2(9)排列在第18个位置。按照每次一个按序交叉排列后的结果可以记为:1(1)、2(1)、3(1)、1(2)、2(2)、3(2)、1(3)、2(3)、3(3)、2(4)、3(4)、2(5)、3(5)、2(6)、3(6)、2(7)、2(8)、2(9)。还可以按照每次多个按序交叉排列,排列后的结果可以是:1(1)、2(1、2、3)、3(1、2)、1(2)、2(4、5、6)、3(3、4)、1(3)、2(7、8、9)、3(5、6)。其中,2(1、2、3)表示第2个节目文件的第1个、第2个和第3个节目数据包,3(1、2)表示第1个和第2个空包,其他与此类似不再一一赘述。
其中,预设的均匀分布算法还可以是:按照预设的每个节目文件的节目数据包数量和空包数量之间的比例关系公式,依次计算每个节目文件的节目数据包和每个空包对应的比例值,根据比例值的大小,每次从每个节目文件对应的节目数据包与空包中选取一个或多个按序交叉排列,依次进行下去,直到将每个节目文件对应的所有节目数据包与所有空包排列完。
例如:设有2个节目文件的节目数据包(第1个节目文件的节目数据包数量是a1,第2个节目文件的节目数据包数量是a2)和a3个空包。第1个节目文件对应的比例关系公式为:(a1+a2+a3)/a1*N,其中N依次取值为0、1...a1-1;第2个节目文件对应的比例关系公式为:(a1+a2+a3)/a2*N,其中N依次取值为0、1...a2-1;空包对应的比例关系公式为:(a1+a2+a3)/a3*N,其中N依次取值为0、1...a3-1。在进行排列时,首先计算N=0时,第1个和第2个节目文件,以及空包对应的比例值,根据比例值的大小(该例具体为:选取比例值最小的,当比例值相等时,取顺序在前的),从第1个、第2个节目文件和空包中选取一个包放置在第一个位置,由于N=0时,第1个和第2个节目文件,以及空包对应的比例值均为0,所以将第1个节目文件的第1个节目数据包放置在第1个位置,然后再计算N=1时,第1个节目文件对应的比例值,将其与已经计算出的N=0时第2个节目文件以及空包对应的比例值进行比较,再从第1个、第2个节目文件和空包中选取一个包放置在第二个位置,依次进行下去,直到将每个节目文件对应的所有节目数据包与所有空包排列完。按照该例所示方法对上述包括2个节目文件的节目数据包(第1个节目文件的节目数据包数量是3,第2个节目的节目数据包数量是9)和6个空包的复用数据中进行排列,排列后的结果是:1(1)、2(1)、3(1)、2(2)、3(2)、2(3)、1(2)、2(4)、3(3)、2(5)、3(4)、2(6)、1(3)、2(7)、3(5)、2(8)、3(6)、2(9)。
其中,预设的均匀分布算法还可以是,在按照上述方法计算出比例值后,将比例值与预设的权重进行比较,根据比较结果,每次从每个节目文件对应的节目数据包与空包中选取一个或多个按序交叉排列,依次进行下去,直到将每个节目文件对应的所有节目数据包与所有空包排列完。
具体地,上述权重的初始值可以设置为1,每与当前所有的比例值比较1次,则自动加1,并且也可以将权重的初始值设置为其他任何值,并设置在与比例值进行比较后是否需要加1或具体加减什么值,不对此做具体限定;上述根据比较结果,可以是将每次比较后小于权重的比例值对应的包选取出来进行放置,也可以设置为其他比较方式,不对此做具体限定。
需要说明的是,预设的均匀分布算法并不限于上述3种方法,可以根据实际应用状况,灵活设置,对此不做限定。
211:视频服务器将复用数据包推送到网卡,通过网卡将复用数据包发送到机顶盒进行播放。
视频服务器将复用数据包推送到网卡,通过网卡将复用数据包发送到机顶盒进行播放,即完成一个PCR周期的节目播放,重复步骤203-211即可完成所有节目播出。
本发明实施例所述的发送数据的方法,通过将各个节目数据包在一个PCR周期内均匀分布,生成复用数据包,将复用数据包推送到网卡进行节目播放,使得节目数据包流均匀,减少了节目数据包通过网卡传送引起的数据突发性,达到了视频服务器播出节目平滑,避免了PCR抖动和数据突发问题;并且,通过计算节目数据包的实时码率,将溢出的节目数据包暂存后添加到下一周期的节目数据包中,可以有效地解决节目数据包上溢的问题,保证了数据不会出现突发现象,防止突变码率影响正常接收,达到视频服务器的平稳播出,从而不会对机顶盒产生数据冲击,导致机顶盒接收数据丢失,节目播放出现问题等情况,同时可以降低对机顶盒的硬件要求,使低端机顶盒也可享受高端机顶盒的点播体验。
实施例3
参见图3,本发明实施例提供了一种发送数据的装置,该装置包括:
打开模块301,用于打开每个节目文件,每个节目文件中携带多个节目数据包和多个程序时钟参考时码包,其中,每两个相邻程序时钟参考时码包间隔预设的程序时钟参考周期。
读取模块302,用于在打开模块301打开每个节目文件后,从每个节目文件中读取一个程序时钟参考周期的节目数据包,将读取到的节目数据包作为当前节目数据包。
计算模块303,用于在读取模块302得到当前节目数据包后,计算当前节目数据包的实时码率。
填充模块304,用于当计算模块303计算出的实时码率小于预设的带宽阈值时,在当前节目数据包中填充空包,得到复用数据。
均匀分布处理模块305,用于在填充模块304得到复用数据后,对复用数据进行均匀分布处理,生成并发送复用数据包。
进一步地,参见图4,该装置还包括:
第一判断模块306,用于在计算模块303计算出当前节目数据包的实时码率后,判断计算出的实时码率是否小于预设的带宽阈值;
第一通知模块307,用于当第一判断模块307的判断结果是大于等于时,存储溢出的节目数据包,将剩余的节目数据包作为复用数据,通知均匀分布处理模块305执行对复用数据进行均匀分布处理的步骤。
进一步地,参见图5,该装置还包括:
第二判断模块308,用于在读取模块302将读取到的节目数据包作为当前节目数据包之后,计算模块303计算当前节目数据包的实时码率之前,判断本地是否存储有溢出的节目数据包。
第二通知模块309,用于当第二判断模块308的判断结果是有时,将溢出的节目数据包添加到读取到的节目数据包中,将溢出的节目数据包和读取到的节目数据包之和作为当前节目数据包,通知计算模块303执行计算当前节目数据包的实时码率的步骤;当第二判断模块308的判断结果是没有时,通知计算模块303执行计算当前节目数据包的实时码率的步骤。
进一步地,参见图6,该装置还包括:
获取模块310,用于在打开模块301打开每个节目文件之前,接收用户的点播请求,获得节目名列表;
相应地,
打开模块301,具体用于在获取模块310获得节目名列表后,遍历节目名列表,打开节目名列表中包含的每个节目名对应的每个节目文件。
进一步地,均匀分布处理模块305具体包括:
计算单元,用于计算复用数据中包含的空包数量和包含的每个节目文件的节目数据包数量;
排列单元,用于根据计算单元计算出的空包数量和每个节目文件的节目数据包数量,按照预设的均匀分布算法,将每个节目文件的每个节目数据包与每个空包按序交叉排列;
复用数据包生成单元,用于在排列单元将每个节目文件的每个节目数据包与每个空包按序交叉排列后,将按序交叉排列后的每个节目文件的每个节目数据包和空包,作为一个复用数据包,并发送该复用数据包。
本发明实施例所述的发送数据的装置,通过将各个节目数据包在一个PCR周期内均匀分布,生成复用数据包,将复用数据包推送到网卡进行节目播放,使得节目数据包流均匀,减少了节目数据包通过网卡传送引起的数据突发性,达到了视频服务器播出节目平滑,避免了PCR抖动和数据突发问题;并且,通过计算节目数据包的实时码率,将溢出的节目数据包暂存后添加到下一周期的节目数据包中,可以有效地解决节目数据包上溢的问题,保证了数据不会出现突发现象,防止突变码率影响正常接收,达到视频服务器的平稳播出,从而不会对机顶盒产生数据冲击,导致机顶盒接收数据丢失,节目播放出现问题等情况,同时可以降低对机顶盒的硬件要求,使低端机顶盒也可享受高端机顶盒的点播体验。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。