视讯会议流媒体实时接收存储方法.pdf

上传人:1*** 文档编号:1127908 上传时间:2018-04-01 格式:PDF 页数:15 大小:756.08KB
返回 下载 相关 举报
摘要
申请专利号:

CN02124641.6

申请日:

2002.06.19

公开号:

CN1466385A

公开日:

2004.01.07

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

H04N7/15

主分类号:

H04N7/15

申请人:

华为技术有限公司;

发明人:

盛馥钟; 熊联欢

地址:

518057广东省深圳市南山区科技园科发路1号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

一种视讯会议流媒体实时接收存储方法,该方法包含下列步骤:在初始化时,分配定长的缓存空间,建立媒体数据包信息描述数组;当有媒体数据包来时,存储在空闲缓存中,得到相应媒体数据包实时传输协议包头序列号;依据媒体数据包实时传输协议包头序列号,计算得到该媒体数据包对应的媒体数据包信息描述数组单元号,并刷新该单元数据;按媒体数据包信息描述数组单元队列中各单元存放的实时传输协议包头序列号的顺序取包、解包,进行格式转化成存储格式的数据。它有效解决了会议期间频繁分配内存带来的问题,减少了存储服务器工作量巨大时内存的分配和释放开销,并减小了排序重整引起的开销。

权利要求书

1: 一种视讯会议流媒体实时接收存储方法,其特征在于该方法包含下 列步骤: a、在初始化时,分配定长的缓存空间,建立媒体数据包信息描述数组; b、当有媒体数据包来到时,将媒体数据包存储在空闲缓存中,然后得 到相应媒体数据包实时传输协议包头序列号; c、依据媒体数据包实时传输协议包头序列号,计算得到该媒体数据包 对应的媒体数据包信息描述数组单元号,并刷新该单元数据; d、按媒体数据包信息描述数组单元队列中各单元存放的实时传输协议 包头序列号顺序地取包、解包,将媒体数据包的格式转化成存储格式 的数据。 2、根据权利要求1所述的视讯会议流媒体实时接收存储方法,其特征 在于:步骤a所述的定长的媒体数据包缓存空间为多个媒体数据包缓 存空间,媒体数据包信息描述数组的单元个数为缓存空间能缓存的 媒体数据包的最大个数。 3、根据权利要求1或2所述的视讯会议流媒体实时接收存储方法,其特 征在于:步骤a所述的媒体数据包信息描述数组的数据结构中包含有实 时传输协议包头序列号、缓存块号、数据包大小、数据包有无的标志 及缓存填充状态数组的单元号。 4、根据权利要求1所述的视讯会议流媒体实时接收存储方法,其特征 在于:在步骤a中,还建立缓存填充状态数组,其数据结构中包含缓存 号和数据包有无的标志,缓存填充状态数组的单元个数为缓存空间能 缓存的媒体数据包的最大个数。 5、根据权利要求4所述的视讯会议流媒体实时接收存储方法,其特征 在于,步骤b具体包括: b1、定时检测媒体数据包,当检测到有数据包时,查找缓存填充状态 数组,找到一个标示为空的缓存单元,用该缓存单元接收媒体数据包; b2、接收正确后,将媒体数据包存储在空闲缓存中,并在对应的缓存 填充状态数组单元中将相应的缓存单元数据设置为占用;如果接收不 正确则不作处理,而进入等待状态; b3、依据缓存填充状态数组的单元数据,找到相应的缓存数据包数据, 得到相应媒体数据包实时传输协议包头序列号。 6、根据权利要求5所述的视讯会议流媒体实时接收存储方法,其特征 在于:在步骤b2中将相应的缓存单元数据设置为占用,具体地说,是 将对应的缓存填充状态数组单元数据结构中所包含的表示数据包有无 的标志设置为1。 7、根据权利要求4所述的视讯会议流媒体实时接收存储方法,其特征 在于:步骤a中,还建立起始和结束缓存位置的指针。 8、根据权利要求7所述的视讯会议流媒体实时接收存储方法,其特征 在于,步骤c具体包括: c1、由起始缓存位置指针指向的媒体数据包信息描述数组单元得到未 处理数据包的最小实时传输协议包头序列号,并计算步骤b在缓存填充 状态数组单元中暂存的当前媒体数据包的实时传输协议包头序列号与 该最小序列号的差值; c2、如果该差值为负,则丢弃该包,并在该缓存填充状态数组单元中 设置该缓存单元为空闲;如果该差值为正,则相对起始位置指针指向 的媒体数据包信息描述数组单元偏移该差值个单元得到要设置的媒体 数据包信息描述数组单元;如果偏移后超出数组的最大数组单元位置, 则回卷,即:回到最小序列号数组单元位置,偏移上述超出数-1个单 元,得到要设置的媒体数据包信息描述数组单元;如果偏移后回卷前 的数组单元位置大于结束位置指针指向的位置,则把该位置设为动态 结束位置; c3、在得到的媒体数据包信息描述数组单元中按当前媒体数据包设置 该单元; c4、处理完毕后,将媒体数据包信息描述数组单元以及缓存填充状态 数组单元设置为空。 9、根据权利要求8所述的视讯会议流媒体实时接收存储方法,其特征 在于:步骤c2所述的设置该缓存单元为空闲,具体地说,是将缓存填 充状态数组数据结构中所包含的表明数据包有无的标志设置为0。 10、根据权利要求8所述的视讯会议流媒体实时接收存储方法,其特征 在于:步骤c4所述的将媒体数据包信息描述数组单元以及缓存填充状 态数组单元设置为空,具体地说,是将媒体数据包信息描述数组数据 结构中的表明数据包有无的标志和缓存填充状态数组数据结构中的表 明数据包有无的标志设置为0,另外,媒体数据包信息描述数组单元找 到缓存填充状态数组单元是通过媒体数据包信息描述数组数据结构中 的缓存填充状态数组单元号来找到缓存填充状态数组单元的。

说明书


视讯会议流媒体实时接收存储方法

    【技术领域】

    本发明属于视讯领域,尤其是一种视讯会议流媒体实时接收存储方法。背景技术

    在介绍视讯会议流媒体实时存储之前,首先要介绍目前流媒体会议电视系统的直播和点播系统。

    图1标示了一个典型的会议电视流媒体直播和点播解决方案。其中,实箭头线表示流媒体直播时视音频媒体数据的走向,即:直播时,首先,视音频数据经会议电视终端(1)编解码处理形成码流,并发送给会议电视多点控制单元(2);然后,多点控制单元(2)转发视音频码流数据到流媒体服务器(3)特定端口,客户端(4)根据需要点击相应会议链接;最后,流媒体服务器(3)响应链接请求转发相应端口的视音频数据并通过网络(5)给客户端(4)播放。可见直播的情况比较简单。

    但,如果要在流媒体视讯系统中实现点播,即客户端可以通过在网络上点击链接来点播自己喜欢的节目,则必须对流媒体视音频数据进行实时的接收存储,以供客户端点播。为此,必须设置存储服务器(6),以在直播时将流媒体视音频数据实时地接收、并存储到介质(7)中,而完成视讯会议实时流媒体存储。直播过程中,当有流媒体存储需求时,流媒体服务器(3)会发送存储消息通知存储服务器(6),并向存储服务器(6)特定端口转发视音频编码数据,存储服务器(6)接收到流媒体服务器消息后,就会在指定端口接收视音频编码数据,并存储已转化为可供点播的媒体文件于介质(7)中。点播时,客户端(4)根据需要点击网页8上相应会议媒体文件链接,流媒体服务器(3)响应链接请求并向存储服务器及介质发送调用存储过的流媒体视音频数据的指令,从存储服务器的介质中调用存储的流媒体视音频数据通过网络(5)发送给客户端(4),上述点播时的指令流向在图1中,用短虚箭头线表示,而点播时流媒体的数据流向用点划箭头线表示。上面描述的是一个完整的直播和点播过程,本发明只针对其中的存储服务器(6)中将流媒体视音频数据进行接收存储,以供点播时调用这一部分作改进。

    对于该视讯会议实时流媒体接收存储,现有技术的方法是这样的:

    1、当一个流媒体数据包来到时,首先为其动态分配一片缓存,并把这片缓存加入到已接收但未处理的媒体数据包链表中。

    流媒体会议期间,流媒体服务器把流媒体存储服务器作为一个终端设备转发流媒体视音频数据包。由于整个会议期间媒体数据包地数量是不可预知的,因此现有技术常常采用动态分配内存的策略接收包,即当一个媒体数据包来到时,首先动态分配一片缓存接收。流媒体存储服务器开辟缓存通过套接字分别接收流媒体视音频数据包,由于路由选择问题,包的来到顺序和发送时的顺序可能不一致,因此,存储服务器必须用一个上述链表对包进行重整处理,即重新排列接收的流媒体数据包,使得重整后的顺序和发送端一致。

    2、提取这些数据包的实时传输协议包头序列号,根据序列号进行流媒体数据包的链表排序。

    这个过程实际上就是上面提到的重整,它是根据实时传输协议中包头序列号大小进行的。

    3、流媒体存储服务器根据相应负载类型实时传输协议头含义进行剥离实时传输协议包头等解包操作,把解包的码流数据进行格式转换成存储格式的数据。

    但是,上述技术却有如下缺点:

    1、由于采用了排序重整的策略,而没有充分利用媒体数据实时传输协议包头序列号的特性,即:该技术是为流媒体数据包动态分配一片缓存,把这片缓存加入到已接收但未处理的媒体数据包链表中进行排序,而不是直接根据包头序列号排序,进而降低了存储服务器的效率,特别是在多路会议存储工作量巨大时,排序的开销太大。而实时传输协议规定:媒体数据实时传输协议包头序列号用于标示包的发送顺序,其初始值是随机的,发送的相邻包之间数值差值为一,各个数据包的序列号不重复。该技术没有充分利用媒体数据实时传输协议包头序列号的特性。

    2、接收包采用了动态分配内存的策略,没有充分利用流媒体会议电视存储的特点。对于流媒体会议电视存储来说,流媒体存储服务器接收媒体数据并不像其他流媒体播放终端要求会场播放和实际会场尽可能少的延迟。对于多路会议或者长时间的流媒体会议而言,媒体数据包的数量是巨大的,尽管现有技术方案中在处理完一个数据包后都是释放掉了动态分配的内存空间,但是会议期间存储服务器的工作量巨大,特别是多路会议存储时,内存的分配和释放开销是不容忽视的,有可能导致媒体数据包处理不过来,从而产生丢包的情形,影响存储质量。且过于频繁的分配内存极易导致内存碎片,一旦内存碎片发生,将可能直接导致后期会议存储的失败或程序的崩溃。发明内容

    本发明的目的是提供一种视讯会议流媒体实时接收存储方法,它能够有效解决会议期间因频繁地动态分配内存而带来的问题,减少存储服务器工作量巨大时内存的分配和释放开销,并减小排序重整引起的开销。

    为实现上述目的,本发明的解决方案是:  一种视讯会议流媒体实时接收存储方法,该方法包含下列步骤:

    a、在初始化时,分配定长的缓存空间,建立媒体数据包信息描述数组;

    b、当有媒体数据包来到时,存储在空闲缓存中,然后得到相应媒体数据包实时传输协议包头序列号;

    c、依据媒体数据包实时传输协议包头序列号,计算得到该媒体数据包对应的媒体数据包信息描述数组单元号,并刷新该单元数据;

    d、按媒体数据包信息描述数组单元队列顺序取包、解包,进行格式转化成存储格式的数据。

    本发明的效果是:本发明一次开辟定长的且可接收多个包的缓存空间,有效解决了会议期间频繁分配内存带来的内存碎片等问题,另外,该缓存空间是定长的,初始化后不再分配缓存空间,减少了存储服务器工作量巨大时内存的分配和释放开销。虽然,针对不同的媒体类型存储时一次要处理的包个数可能不一致,如一帧图像根据打包方式的不同,可能含多个数据包,因此应该一次分配相对比较大的存储多个包的缓存空间,以防止缓存满时覆盖原来已接收的但还未处理的包,而大的缓存空间意味着实际处理时与实际会场延迟的增加,而由于上面提到的会场存储与实际会场延迟不重要的特性,实际上不影响存储。

    另外,由于没有采用排序重整的策略,而是直接按实时传输协议包头序列号将当前媒体数据包设置到媒体数据包信息描述数组,借助于定长的内存分配方式,可以通过由序列号计算得到要放入的队列地址,从而减少排序操作及由排序重整引起的开销。附图说明

    图1是一个典型的会议电视流媒体直播和点播解决方案示意图。

    图2是本发明的方法流程图。具体实现方式

    图2是本发明的方法流程图。该流程图比较详细,实际上本发明的实现主要可归纳为下面的过程:

    一、在初始化时,分配定长的缓存空间,建立媒体数据包信息描述数组。同时,建立缓存填充状态数组。该定长的概念理解为多个媒体数据包缓存空间,缓存填充状态数组和媒体数据包信息描述数组的单元个数为缓存空间能缓存的媒体数据包最大个数。也就是说,分别对每一个数据包缓存空间建立数据结构来描述各个数据包信息状况,即:媒体数据包信息描述数据结构,数据结构如下所示,其中//后面的内容是该语句的汉语意思:

        typedef struct RTPArray

        {

           long SeqNum;//实时传输协议包头的序列号

           long OffNo;//缓存块号

           long size;//数据包大小

           long BufstateNum;//对应缓存填充状态数组单元号

        bool bIsFill;//是否有数据包的标志

      }RTPArray;

    也就是说,该数据结构中包含实时传输协议包头序列号、缓存块号、数据包大小、是否有数据包的标志、对应缓存填充状态数组单元号的内容。其中,实时传输协议包头的序列号是指放入该媒体数据包信息描述数组中的实时传输协议包的包头序列号,缓存块号是接收到的实时传输协议数据包数据存放的缓存块号,如果分配了120个缓存块的话,取值范围:0-119,由于每个数据包缓存是定长的,因此该缓存号实际上也是缓存地址;数据包大小即接收到的这个实时传输协议包数据大小;是否有数据包的标志用于标示该缓存块是否有媒体数据,便于丢包处理;对应缓存填充状态数组单元号在后面叙述。

    由于媒体数据包中序列号必须在包接收到后才能获知,必须首先给出缓存地址,因此还需要与上述缓存空间数相同的数据结构记录每个数据包缓存填充状态,即缓存填充状态数组,数据结构如下:

        typedef struct BufState

        {

           long OffNo;//缓存号(地址)

           bool bIsFill;//是否有数据包的标志

        } BufState;

    也就是说,缓存填充状态数组数据结构中包含缓存号和该缓存块是否有数据包的标志。

    在初始化时,还需要两个动态指针标示当前实时传输协议数组队列中未处理数据包的起始和结束,以便于存储服务器分清处理与未处理的媒体数据块的位置或进行一些特殊处理,如丢弃某些滞后的数据包。

    二、当有媒体数据包来到时,存储在空闲缓存中,得到相应媒体数据包实时传输协议包头序列号。其具体包括:

    1、定时检测媒体数据包,当检测到有数据包时,查找缓存填充状态数组,找到一个标示为空的缓存单元,用该缓存单元接收媒体数据包。

    2、接收正确后,存储在空闲缓存中,在对应的缓存填充状态数组单元中设置相应的缓存单元数据为占用,具体地说,是设置对应的缓存填充状态数组单元数据结构中包含的是否有数据包的标志为1,接收不正确则不作处理,等待。

    3、依据缓存填充状态数组单元数据,找到相应的缓存数据包数据,得到相应媒体数据包实时传输协议包头序列号。

    三、依据媒体数据包实时传输协议包头序列号,以缓存填充状态数组在记录其缓存状态,然后计算得到该媒体数据包对应的媒体数据包信息描述数组单元号,并刷新该单元数据。其具体过程是:

    1、由起始缓存位置指针指向的媒体数据包信息描述数组单元得到未处理数据包的实时传输协议包头最小序列号,计算步骤二在缓存填充状态数组中暂存的当前媒体数据包的实时传输协议包头序列号与最小序列号的差值。

    2、如果该差值为负,则丢弃该包,并在缓存填充状态数组中设置该缓存单元为空闲,具体地说,是设置缓存填充状态数组单元数据结构中包含的是否有数据包的标志为0;如果该差值为正,则相对起始位置指针指向的媒体数据包信息描述数组单元偏移该差值个单元得到要设置的媒体数据包信息描述数组单元;如果偏移后超出数组的最大数组单元位置,则回卷:回到最小序列号数组单元位置,偏移上述超出数-1个单元,得到要设置的媒体数据包信息描述数组单元,如起始单元为70,差值为40,有80个数组单元,则取第30(70+40-80=30)个数组单元,第30个数组单元正好是偏移第一个数组单元30-1=29个数组单元。如果偏移后回卷前的数组单元位置大于结束位置指针指向的位置,则把该位置设为动态结束位置。

    3、在得到的媒体数据包信息描述数组单元中按当前媒体数据包数据设置该单元。

    当存储处理n个包时,都由起始位置指针指向的媒体数据包信息描述数组单元开始向后处理n个数据包(若回卷,处理同上)。

    4、处理完毕后,设置媒体数据包信息描述数组单元以及缓存填充状态数组单元为空,实际上是设置媒体数据包信息描述数组数据结构中的是否有数据包的标志和缓存填充状态数组数据结构中的是否有数据包的标志为0,由媒体数据包信息描述数组单元找到缓存填充状态数组单元是通过媒体数据包信息描述数组数据结构中的缓存填充状态数组单元号来找到缓存填充状态数组单元。

    四、按媒体数据包信息描述数组单元队列的各单元存放的实时传输协议包头序列号的顺序取包、解包,进行格式转化成存储格式的数据。该顺序一般是按照逐个递增的顺序。关于解包和转换格式的内容相当于现有技术的步骤3,其实现是现有技术中的内容。

    现在举一个例子,说明本发明的实现。假设分配了120个缓存决,起始指针指向的单元是70,结束指针指向的单元是110。起始指针指向的单元对应的未处理数据包的实时传输协议报头最小序列号假设为35。定时检测媒体数据包,当检测到有数据包时,查找缓存填充状态数组发现17号单元的是否有数据包的标志是0,于是以17号缓存接收媒体数据包,接收正确后将是否有数据包的标志设1,接收后由该媒体数据包得到该数据包的实时传输协议包头序列号51。51减去未处理数据包的实时传输协议包头最小序列号35得到16,则由起始指针指向的单元70偏移16个单元要设置的媒体数据包信息描述数组单元86;按刚刚接收到、暂存在17号缓存中的媒体数据包设置媒体数据包信息描述数组单元86,处理完毕后,设置媒体数据包信息描述数组数组单元以及缓存填充状态数组单元的是否有数据包的标志为0。按媒体数据包信息描述数组单元队列的各单元存放的实时传输协议包头序列号的逐个递增顺序取包、解包,当排到51时,就按照信息描述数组单元86对应的缓存位置找到数据包。

视讯会议流媒体实时接收存储方法.pdf_第1页
第1页 / 共15页
视讯会议流媒体实时接收存储方法.pdf_第2页
第2页 / 共15页
视讯会议流媒体实时接收存储方法.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《视讯会议流媒体实时接收存储方法.pdf》由会员分享,可在线阅读,更多相关《视讯会议流媒体实时接收存储方法.pdf(15页珍藏版)》请在专利查询网上搜索。

一种视讯会议流媒体实时接收存储方法,该方法包含下列步骤:在初始化时,分配定长的缓存空间,建立媒体数据包信息描述数组;当有媒体数据包来时,存储在空闲缓存中,得到相应媒体数据包实时传输协议包头序列号;依据媒体数据包实时传输协议包头序列号,计算得到该媒体数据包对应的媒体数据包信息描述数组单元号,并刷新该单元数据;按媒体数据包信息描述数组单元队列中各单元存放的实时传输协议包头序列号的顺序取包、解包,进行格。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1