一种接收处理数据的方法、装置及视频服务器的制作方法

文档序号:6370082阅读:153来源:国知局
专利名称:一种接收处理数据的方法、装置及视频服务器的制作方法
技术领域
本发明涉及数字电视领域,具体涉及一种接收处理数据的方法、装置及视频服务器。
背景技术
数字电视是一个从节目采集、节目制作、节目传输直到用户端都以数字方式处理信号的端到端的系统。基于DVB (Digital Video Broadcasting,数字视频广播)技术标准的广播式和交互式数字电视.采用先进用户管理技术能将节目内容的质量和数量做得尽善尽美并为用户带来更多的节目选择和更好的节目质量效果,与模拟电视相比,数字电视具有图像质量高、节目容量大和伴音效果好的特点。
由于节目容量大,通常很少把媒体文件存放于VS (Video Server,视频服务器)上面,而是一般存放于⑶N (Content Distribute Network,内容分发网络)各节点中,用于提高网络内容分发质量、降低骨干网络传输负载以及降低节目源的访问负载。在目前的NGOD (Next Generation On Demand,下一代视频点播)标准中,CDN是以chunked方式发送媒体文件数据到VS, VS接收解析chunked数据后再推流。chunked 编码是 HTTP(HyperText Transport Protocol,超文本传送)/1. I RFC 里定义的一种编码方式。通常情况下,HTTP消息头中的Transfer-Encoding域值为chunked,表明采用chunked编码方式来进行报文体的传输。消息体存放chunked编码,Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的Chunk标示结束。每个Chunk分为头部和正文两部分,头部内容指定下一段正文的字符总数(十六进制的数字)和数量单位(一般不写),正文部分指定长度的实际内容,两部分之间用回车换行(CRLF)隔开。在最后一个长度为0的Chunk中的内容是称为footer的内容,是一些附加的Header信息(通常可以直接忽略)。现有技术中,VS为每个点播会话申请两块内存,假设为A和B。对于同一块内存来说,同一时刻只能进行一种操作,读或写。VS把接收到的chunked数据解析后写入A内存,当A内存写满后,才可以对A进行读操作。在对写满数据的A内存进行读操作时,VS把接收到的chunked数据解析后写入B内存。上述方式对内存的利用率只有50%左右,而且容易造成chunked数据的处理延迟,因为只有其中一块内存写满了或所有数据接收解析完毕,另一块内存才能读出来进行处理(比如推流),导致VS可能处在等待的状态。此外,目前接收并解析chunked数据是不限速的。从⑶N获取到chunked数据,边接收边解析,解析完毕后再读出处理,从一定程度上来说,VS处理chunked数据的速率取决于⑶N传送数据的速率,在网络不稳定的情况下,VS推流将会很不稳定,影响用户体验。

发明内容
有鉴于此,本发明的目的在于提供一种接收处理数据的方法,该方法自定义一种内存文件的方式在一块内存上既读又写,提高了内存利用率,平衡了读写速度,使得数据处理比较平稳,从而使推流平稳。本发明的目的在于提 供一种接收处理数据的装置,该装置自定义一种内存文件的方式在一块内存上既读又写,提高了内存利用率,平衡了读写速度,使得数据处理比较平稳,从而使推流平稳。本发明的目的还在于提供一种视频服务器,该视频服务器自定义一种内存文件的方式在一块内存上既读又写,提高了内存利用率,平衡了读写速度,使得数据处理比较平稳,从而使推流平稳。为达到上述目的,本发明的技术方案具体是这样实现的,提供一种接收处理数据的方法,包括
A、预先定义内存文件模型,所述内存文件模型封装有读指针、读查询方法、写指针、写查询方法和内存文件长度;
B、根据所述预先义的内存文件模型,在内存空间上为每个点播会话创建一个内存文
件;
C、调用所述内存文件的写查询方法获取所述内存文件当前的可写数据长度,若所述可写数据长度大于零,则转入步骤D,否则,则转入步骤G ;
D、根据点播请求向内容分发网络发送数据请求,请求发送数据长度不大于所述可写数据长度的数据;
E、接收所述内容分发网络返回的数据并对所述数据进行解析;
F、将解析后的数据写入到所述内存文件,并更新写指针指向的位置;
G、在超过预置的等待时间后再转到步骤C。进一步,所述步骤B之后还包括
C’、调用所述内存文件的读查询方法获取所述内存文件当前的可读数据长度,若所述可读数据长度大于零,则转入步骤D’,否则,转入步骤E’ ;
D’、从所述读指针指向位置读取数据长度不大于所述可读数据长度的数据,更新读指针指向的位置;
E’、在超过预置的等待时间后再转到步骤C’。进一步,所述写查询方法包括
计算写指针与读指针的差值;
若差值大于零,则写指针在前,读指针在后,返回可写数据长度为内存文件长度一写指针+读指针一 I ;
若差值等于零,则读写指针在同一位置,返回可写数据长度为内存文件长度一 I ;
若差值小于零,则写指针在后,读指针在前,返回可写数据长度为读指针一写指针一
I ;
所述读查询方法包括
计算写指针与读指针的差值;
若差值大于零,则写指针在前,读指针在后,返回可读数据长度为写指针一读指针;
若差值等于零,则读写指针在同一位置,返回可读数据长度为零;
若差值小于零,则写指针在后,读指针在前,返回可读数据长度为文件长度一写指针+读指针。进一步,所述内存文件模型还包括读写指针偏移值,当未读数据的长度大于等于所述读写指针偏移值时,所述写查询方法返回可写数据长度为零。进一步,所述步骤F之后还包括
判断本次文件接收是否完成,若未完成,则转到步骤C ;
所述步骤D ’之后还包括
判断本次文件读取是否完成,若未完成,则转到步骤C’。本发明的另一目的在于提供一种接收处理数据的装置,包括
预定义模块,预先定义内存文件模型,所述内存文件模型封装有读指针、读查询方法、 写指针、写查询方法和内存文件长度;
创建模块,用于根据所述预先义的内存文件模型,在内存空间上为每个点播会话创建一个内存文件;
写查询模块,用于调用所述内存文件的写查询方法获取所述内存文件当前的可写数据长度;
第一判断模块,用于判断所述可写数据长度是否大于零;
数据请求模块,用于当所述可写数据长度大于零时,根据点播请求向内容分发网络发送数据请求,请求发送数据长度不大于所述可写数据长度的数据;
数据接收解析模块,用于接收所述内容分发网络返回的数据并对所述数据进行解析; 写数据模块,用于将将解析后的数据写入到所述内存文件,并更新写指针指向的位
置;
第一等待模块,用于当所述可写数据长度为零时,计时等待预置的时间。进一步,所述装置还包括
读查询模块,用于调用所述内存文件的读查询方法获取所述内存文件当前的可读数据长度;
第二判断模块,用于判断所述可读数据长度是否大于零;
读数据模块,用于当所述可读数据长度大于零,从所述读指针指向位置读取数据长度不大于所述可读数据长度的数据,更新读指针指向的位置;
第二等待模块,用于当所述可读数据长度为零时,计时等待预置的时间。进一步,所述写查询方法包括
计算写指针与读指针的差值;
若差值大于零,则写指针在前,读指针在后,返回可写数据长度为内存文件长度一写指针+读指针一 I ;
若差值等于零,则读写指针在同一位置,返回可写数据长度为内存文件长度一 I ;
若差值小于零,则写指针在后,读指针在前,返回可写数据长度为读指针一写指针一
I ;
所述读查询方法包括
计算写指针与读指针的差值;
若差值大于零,则写指针在前,读指针在后,返回可读数据长度为写指针一读指针;
若差值等于零,则读写指针在同一位置,返回可读数据长度为零;若差值小于零,则写指针在后,读指针在前,返回可读数据长度为文件长度一写指针+读指针。进一步,所述内存文件模型还包括读写指针偏移值,当未读数据的长度大于等于所述读写指针偏移值时,所述写查询方法返回可写数据长度为零。本发明的又一目的还在于提供一种视频服务器,包括上述所述的接收处理数据的
装直。由上述的技术方案可见,通过在一块内存上创建一个内存文件,该内存文件中封装读指针、读查询方法、写指针、写查询方法及内存文件长度,读查询方法用来查询内存文件中尚未读取的数据长度,写查询方法用来查询内存文件中当前可写的数据长度,可以实现对同一块内存的既读又写。采用内存文件的方式边写边读,每次都按照可写数据长度向内容分发网络申请数据,按照可读数据长度读取数据进行处理,既保证了读写的准确,又不会使读操作处于等待,提高了内存使用率和整体处理效率。此外,通过引入读写指针偏移值,当写指针与读指针距离太大时,限制写数据的速度,从而限制内容分发网络发送数据的速度,在视频点播应用中,可使得推流更平稳,不容易造成网络拥堵或空闲。


图I为本发明实施例提供的一种接收处理数据的方法流程 图2为本发明实施例提供的视频点播应用中接收处理chunked数据的方法流程 图3为本发明实施例提供的一种接收处理数据的装置的结构图。
具体实施例方式为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。如图I为本发明实施例提供的一种接收处理数据的方法流程图,包括
步骤S101,预先定义内存文件模型,该内存文件模型封装有读指针、读查询方法、写指针、写查询方法和内存文件长度。在这个内存文件模型里,读指针指向读的位置,写指针指向写的位置。读查询方法用来查询内存文件当前可读数据长度,写查询方法用来查询内存文件当前可写数据长度。操作读指针可以对可读数据进行读取,操作写指针可以写入新的数据到内存文件中。当读写指针操作到内存文件末尾时,可再从内存文件头开始新的操作。在循环读写的过程中,须保证读指针不能越过写指针,写指针也不能越过读指针。为了区分写满与全空两种状态,在写入数据的时候,写指针不能追上读指针,即至少要相差一个位置(此时为写满状态);在读取数据的时候,读指针可以追上写指针,即可以指向同一位置(此时为全空状态)。步骤S102,根据所述预先义的内存文件模型,在内存空间上为每个点播会话创建一个内存文件。视频服务器根据终端的点播请求,为每个点播会话创建一个内存文件,新创建的内存文件的读指针和写指针均指向此块内存文件的起始地址,内存文件长度为内存空间的大小。步骤S103,调用内存文件的写查询方法获取该内存文件当前的可写数据长度。
具体的,写查询方法包括
计算写指针与读指针的差值;
若差值大于零,则写指针在前,读指针在后,返回可写数据长度为内存文件长度-写指针+读指针一 I ;
若差值等于零,则读写指针在同一位置,返回可写数据长度为内存文件长度一 I ; 若差值小于零,则写指针在后,读指针在前,返回可写数据长度为读指针一写指针一 I。步骤S104,判断可写数据长度是否大于零,若大于零,则转入步骤S105,否则,转入步骤S108。步骤S105,根据点播请求向内容分发网络发送数据请求,请求发送数据长度不大 于可写数据长度的数据。内容分发网络收到请求后,将不大于可写数据长度的数据进行编码打包后发送到视频服务器。步骤S106,接收内容分发网络返回的数据并对该数据进行解析。步骤S107,将解析后的数据写入到内存文件,并更新写指针指向的位置。具体的,视频服务器将从内容分发网络接收到的数据进行解析之后,操作内存文件的写指针将解析后的数据写入到内存文件,并更新写指针指向的位置。步骤S108,等待预置的时间后,转到步骤S103。具体的,预先设置后等待的时间,创建一个定时器进行等待,超过预置的等待时间就转到步骤S103。步骤S109,调用内存文件的读查询方法获取该内存文件当前的可读数据长度。具体的,读查询方法包括
计算写指针与读指针的差值;
若差值大于零,则写指针在前,读指针在后,返回可读数据长度为写指针一读指针;
若差值等于零,则读写指针在同一位置,返回可读数据长度为零;
若差值小于零,则写指针在后,读指针在前,返回可读数据长度为文件长度一写指针+读指针。步骤S110,判断该可读数据长度是否大于零,若是,则转入步骤S110,若否,则转入步骤S112。步骤S111,从读指针指向位置读取数据长度不大于可读数据长度的数据,更新读指针指向的位置。步骤S112,等待预置的时间后,转到步骤S109。上述实施例中,步骤S103至步骤S108为写数据流程,步骤S109至步骤SI 12为读数据流程,在实际应用中,写数据流程和读数据流程是相对独立的两个过程,不存在必然的先后顺序。上述实施例,通过在一块内存上创建一个内存文件,该内存文件中封装读指针、读查询方法、写指针、写查询方法及内存文件长度,读查询方法用来查询内存文件中尚未读取的数据长度,写查询方法用来查询内存文件中当前可写的数据长度,可以实现对同一块内存的既读又写。采用内存文件的方式边写边读,每次都按照可写数据长度向内容分发网络申请数据,按照可读数据长度读取数据进行处理,既保证了读写的准确,又不会使读操作处于等待,提高了内存使用率和整体处理效率。更优的,在本发明另一实施例中,还可以在内存文件模型中设置读写指针偏移值来平衡读写的速度,使接收数据和处理数据能更好地同步。该内存文件模型还包括读写指针偏移值。当未读数据的长度大于等于该读写指针偏移值时,表明写操作过快,此时不可写,需要进入等待,控制写查询方法返回可写数据长度为零。具体的,写查询方法在计算出写指针与读指针的差值之后,判断该差值是否大于零,如果大于零,则写指针在前,读指针在后,未读数据长度为差值;如果差值小于零,则写指针在后,读指针在前,未读数据长度为内存文件长度一(读指针一写指针),即(内存文件长度一读指针+写指针)。当差值大于等于读写指针偏移值,返回可写数据长度为零;
或者当差值小于零,且(内存文件长度一读指针+写指针)大于等于读写指针偏移值时,返回可写数据长度为零。通过引入读写指针偏移值,当写指针与读指针距离太大时,限制写数据的速度,从而限制内容分发网络发送数据的速度,在视频点播应用中,可使得推流更平稳,不容易造成网络拥堵或空闲。
图2是本发明实施例提供的视频点播应用中接收处理chunked数据的方法流程图,包

步骤S201, STB (Set Top Box,机顶盒)向VS发送点播视频文件A的请求;
步骤S202,VS接收到点播请求后,解析出视频文件A的标识、文件长度等信息,并为此次点播会话创建一个内存文件;
步骤S203,VS调用内存文件的写查询方法,判断内存文件是否可写,若可写,转到步骤S204,否则,转到步骤S208 ;
步骤S204,VS根据写查询方法返回的可写数据长度,向CDN发送数据请求,请求发送数据长度不大于可写数据长度的数据;
步骤S205,⑶N根据数据请求,将不大于可写数据长度的数据编码打包后发送至VS ;此处,⑶N是以chunked方式发送媒体文件数据到VS的,其编码方式在前文已有描述,此处不再赘述。步骤S206,VS接收⑶N返回的打包数据,将正文数据解析出来写入到内存文件; 步骤S207,VS判断视频文件A是否传送完毕,若否,则转到步骤S204,若是,则结束写
操作;
步骤S208,等待一段时间,转到步骤S204 ;
步骤S209,VS调用内存文件的读查询方法,判断内存文件是否可读,若可读,则转到步骤S210,否则,转到步骤S212 ;
步骤S210,VS根据读查询方法返回的可读数据长度从内存文件读取数据进行处理后推送至STB ;
步骤S211,判断视频文件A是否已推送完毕,若否,则转到步骤S209,若是,则结束读操
作;步骤S212,等待一段时间,转到步骤S209。本实施例中VS为每个点播会话创建一个内存文件,通过内存文件的写查询方法控制向CDN请求数据的时机和请求数据的长度,通过内存文件的读查询方法控制向STB推流的速度。每次点播会话只有一个内存文件,内存利用率大大提高。另外,内存文件中也可引入读写指针偏移值,当CDN发送数据过快时,让写操作等待一段时间,CDN发送数据过慢时,让读操作等待一段时间,从宏观上看,数据的接收和处理比较平稳,从而使推流平稳。
图3为本发明实施例提供的接收处理数据的装置的结构图,包括
预定义模块301,用于预先定义内存文件模型,该内存文件模型封装有读指针、读查询 方法、写指针、写查询方法和内存文件长度;
创建模块302,用于根据预定义模块301先义的内存文件模型,在内存空间上为每个点播会话创建一个内存文件;
写查询模块303,用于调用内存文件的写查询方法获取内存文件当前的可写数据长
度;
第一判断模块304,用于判断写查询模块303返回的可写数据长度是否大于零;
数据请求模块306,用于当第一判断模块304判断出可写数据长度大于零时,根据点播请求向内容分发网络发送数据请求,请求发送数据长度不大于可写数据长度的数据;
数据接收解析模块307,用于接收内容分发网络返回的数据并对所述数据进行解析;写数据模块308,用于将数据接收解析模块307解析出的数据写入到内存文件,并更新写指针指向的位置;
第一等待模块305,用于当第一判断模块304判断出可写数据长度为零时,计时等待预置的时间后通知写查询模块303重新查询;
读查询模块309,用于调用内存文件的读查询方法获取内存文件当前的可读数据长
度;
第二判断模块310,用于判断读查询模块309返回的可读数据长度是否大于零;
读数据模块311,用于当第二判断模块310判断出可读数据长度大于零时,从读指针指向位置读取数据长度不大于可读数据长度的数据,更新读指针指向的位置;
第二等待模块312,用于当第二判断模块310判断出读数据长度为零时,计时等待预置的时间后再通知读查询模块309重新查询。其中,写查询方法包括
计算写指针与读指针的差值;
若差值大于零,则写指针在前,读指针在后,返回可写数据长度为内存文件长度一写指针+读指针一 I ;
若差值等于零,则读写指针在同一位置,返回可写数据长度为内存文件长度一 I ;
若差值小于零,则写指针在后,读指针在前,返回可写数据长度为读指针一写指针一
I ;
读查询方法包括
计算写指针与读指针的差值;
若差值大于零,则写指针在前,读指针在后,返回可读数据长度为写指针一读指针;若差值等于零,则读写指针在同一位置,返回可读数据长度为零;
若差值小于零,则写指针在后,读指针在前,返回可读数据长度为文件长度一写指针+读指针。更优的,还可以在内存文件模型中设置读写指针偏移值来平衡读写的速度,使接收数据和处理数据能更好地同步。该内存文件模型还包括读写指针偏移值。当未读数据的长度大于等于该读写指针偏移值时,表明写操作过快,此时不可写,需要进入等待,控制写查询方法返回可写数据长度为零。具体的,写查询方法在计算出写指针与读指针的差值之后,判断该差值是否大于零,如果大于零,则写指针在前,读指针在后,未读数据长度为差值;如果差值小于零,则写指针在后,读指针在前,未读数据长度为内存文件长度一(读指针一写指针),即(内存文件 长度一读指针+写指针)。当差值大于等于读写指针偏移值,返回可写数据长度为零;
或者当差值小于零,且(内存文件长度一读指针+写指针)大于等于读写指针偏移值时,返回可写数据长度为零。本实施例在一块内存上创建一个内存文件,该内存文件中封装读指针、读查询方法、写指针、写查询方法及内存文件长度,通过读查询方法用来查询内存文件中尚未读取的数据长度,写查询方法用来查询内存文件中当前可写的数据长度,可以实现对同一块内存的既读又写。采用内存文件的方式边写边读,每次都按照可写数据长度向内容分发网络申请数据,按照可读数据长度读取数据进行处理,既保证了读写的准确,又不会使读操作处于等待,提高了内存使用率和整体处理效率。此外,通过引入读写指针偏移值,当写指针与读指针距离太大时,限制写数据的速度,从而限制内容分发网络发送数据的速度,在视频点播应用中,可使得推流更平稳,不容易造成网络拥堵或空闲。本发明还包括一种视频服务器,该视频服务器包括上述接收处理数据的装置。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种接收处理数据的方法,其特征在于,包括 A、预先定义内存文件模型,所述内存文件模型封装有读指针、读查询方法、写指针、写查询方法和内存文件长度; B、根据所述预先义的内存文件模型,在内存空间上为每个点播会话创建一个内存文件; C、调用所述内存文件的写查询方法获取所述内存文件当前的可写数据长度,若所述可写数据长度大于零,则转入步骤D,否则,则转入步骤G ; D、根据点播请求向内容分发网络发送数据请求,请求发送数据长度不大于所述可写数据长度的数据; E、接收所述内容分发网络返回的数据并对所述数据进行解析; F、将解析后的数据写入到所述内存文件,并更新写指针指向的位置; G、在超过预置的等待时间后再转到步骤C。
2.如权利要求I所述的方法,其特征在于,所述步骤B之后还包括 C’、调用所述内存文件的读查询方法获取所述内存文件当前的可读数据长度,若所述可读数据长度大于零,则转入步骤D’,否则,转入步骤E’ ; D’、从所述读指针指向位置读取数据长度不大于所述可读数据长度的数据,更新读指针指向的位置; E’、在超过预置的等待时间后再转到步骤C’。
3.如权利要求I或2所述的方法,其特征在于,所述写查询方法包括 计算写指针与读指针的差值; 若差值大于零,则写指针在前,读指针在后,返回可写数据长度为内存文件长度一写指针+读指针一 I ; 若差值等于零,则读写指针在同一位置,返回可写数据长度为内存文件长度一 I ; 若差值小于零,则写指针在后,读指针在前,返回可写数据长度为读指针一写指针一I ; 所述读查询方法包括 计算写指针与读指针的差值; 若差值大于零,则写指针在前,读指针在后,返回可读数据长度为写指针一读指针; 若差值等于零,则读写指针在同一位置,返回可读数据长度为零; 若差值小于零,则写指针在后,读指针在前,返回可读数据长度为文件长度一写指针+读指针。
4.如权利要求I或2所述的方法,其特征在于,所述内存文件模型还包括读写指针偏移值,当未读数据的长度大于等于所述读写指针偏移值时,所述写查询方法返回可写数据长度为零。
5.如权利要求2所述的方法,其特征在于,所述步骤F之后还包括 判断本次文件接收是否完成,若未完成,则转到步骤C ; 所述步骤D ’之后还包括 判断本次文件读取是否完成,若未完成,则转到步骤C’。
6.一种接收处理数据的装置,其特征在于,包括预定义模块,预先定义内存文件模型,所述内存文件模型封装有读指针、读查询方法、写指针、写查询方法和内存文件长度; 创建模块,用于根据所述预先义的内存文件模型,在内存空间上为每个点播会话创建一个内存文件; 写查询模块,用于调用所述内存文件的写查询方法获取所述内存文件当前的可写数据长度; 第一判断模块,用于判断所述可写数据长度是否大于零; 数据请求模块,用于当所述可写数据长度大于零时,根据点播请求向内容分发网络发送数据请求,请求发送数据长度不大于所述可写数据长度的数据; 数据接收解析模块,用于接收所述内容分发网络返回的数据并对所述数据进行解析; 写数据模块,用于将将解析后的数据写入到所述内存文件,并更新写指针指向的位置; 第一等待模块,用于当所述可写数据长度为零时,计时等待预置的时间。
7.如权利要求6所述的装置,其特征在于,所述装置还包括 读查询模块,用于调用所述内存文件的读查询方法获取所述内存文件当前的可读数据长度; 第二判断模块,用于判断所述可读数据长度是否大于零; 读数据模块,用于当所述可读数据长度大于零,从所述读指针指向位置读取数据长度不大于所述可读数据长度的数据,更新读指针指向的位置; 第二等待模块,用于当所述可读数据长度为零时,计时等待预置的时间。
8.如权利要求6或7所述的装置,其特征在于,所述写查询方法包括 计算写指针与读指针的差值; 若差值大于零,则写指针在前,读指针在后,返回可写数据长度为内存文件长度一写指针+读指针一 I ; 若差值等于零,则读写指针在同一位置,返回可写数据长度为内存文件长度一 I ; 若差值小于零,则写指针在后,读指针在前,返回可写数据长度为读指针一写指针一I; 所述读查询方法包括 计算写指针与读指针的差值; 若差值大于零,则写指针在前,读指针在后,返回可读数据长度为写指针一读指针; 若差值等于零,则读写指针在同一位置,返回可读数据长度为零; 若差值小于零,则写指针在后,读指针在前,返回可读数据长度为文件长度一写指针+读指针。
9.如权利要求6或7所述的装置,其特征在于,所述内存文件模型还包括读写指针偏移值,当未读数据的长度大于等于所述读写指针偏移值时,所述写查询方法返回可写数据长度为零。
10.一种视频服务器,其特征在于,所述视频服务器包括如权利要求6至9任意一项所述的接收处理数据的装置。
全文摘要
本发明提供了一种接收处理数据的方法、装置及视频服务器,其中,方法包括预先定义内存文件模型,所述内存文件模型封装有读指针、读查询方法、写指针、写查询方法和内存文件长度;在内存空间上为每个点播会话创建一个内存文件;调用写查询方法获取所述内存文件当前的可写数据长度,若所述可写数据长度大于零;根据点播请求向内容分发网络发送数据请求,请求发送数据长度不大于所述可写数据长度的数据;接收并解析所述内容分发网络返回的数据;将解析后的数据写入到所述内存文件,并更新写指针指向的位置。本发明自定义一种内存文件的方式在一块内存上既读又写,提高了内存利用率,平衡了读写速度,使得数据处理比较平稳,从而使推流平稳。
文档编号G06F17/30GK102708207SQ20121016086
公开日2012年10月3日 申请日期2012年5月23日 优先权日2012年5月23日
发明者朱江 申请人:深圳市龙视传媒有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1