CN102098571B - 一种数据动态推送的方法及*** - Google Patents
一种数据动态推送的方法及*** Download PDFInfo
- Publication number
- CN102098571B CN102098571B CN200910258137.6A CN200910258137A CN102098571B CN 102098571 B CN102098571 B CN 102098571B CN 200910258137 A CN200910258137 A CN 200910258137A CN 102098571 B CN102098571 B CN 102098571B
- Authority
- CN
- China
- Prior art keywords
- data block
- time stamp
- data
- initial reproduction
- reproduction time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
Abstract
本发明公开一种数据动态推送的方法及***,该方法包括:获取流媒体数据每个数据块的起始播放时间戳和播放持续时间;建立数据块的起始播放时间戳与数据块ID的映射表;根据当前数据块的起始播放时间戳和播放持续时间获知推送下一个数据块的起始播放时间戳;通过下一个数据块的起始播放时间戳,从映射表中查找下一个数据块的起始播放时间戳对应的数据块ID,确定要推送的下一个数据块;以及根据播放持续时间确定的等待时间后,将下一个数据块推送给播放器。本发明通过获取当前数据块的播放时间戳和播放持续时间,并根据上述两项参数对推送器推送下一个数据块的推送时机进行控制,从而能够实现动态码率编码数据的动态推送、流畅播放。
Description
技术领域
本发明涉及流媒体技术领域,尤其涉及一种数据动态推送的方法及***。
背景技术
流媒体是采用流式传输方式、在Internet/Intranet播放的媒体格式。流式传输将整个音/视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。客户端无需下载完整视频即可播放视频。与单纯的下载方式相比,对多媒体文件边下载边播放的流式传输方式使启动延时大幅度缩短,***缓存容量需求大大降低,可以极大地减少用户等待时间。
微软流媒体服务(MMS,Microsoft Media Service)是微软公司开发的网络流媒体协议,已成为网络流媒体广泛采用的传输和控制协议。除广泛应用于个人电脑等计算机中,MMS协议也被应用于手机等移动终端的流媒体业务中。MMS协议承载的媒体流通常采用先进***格式(ASF,Advanced System Format)。基于MMS协议的流媒体数据传送到目标客户端后,需要进行还原图像和声音以进行还原播放;在实现数据的进行还原播放时需要考虑以下几个方面:
(1)数据的编码方式
当前,视频编码的方式分为固定比特率(CBR,Constant BitRate)编码和动态比特率(VBR,Variable Bit Rate)编码;其中,CBR的采样率为固定值,一段数据流从头到尾都采用固定的码率进行编码;而VBR采用了动态调节技术的压缩方法,当画面较为静态或者音频处在低音段时,则相应地降低码率;反之,当画面较为动态或音频处在高音段时,则相应地提升码率。
(2)数据的推送时机
直播数据流是对数据的实时传输,对数据的实时性要求比较高,因此,确定数据的推送时机是还原直播流数据的关键。
(3)数据的推送数量
推送数据量的大小会影响还原播放的流畅度,数据量小了,播放不流畅;数据量太大,会使得媒体播放器的缓冲区溢出,导致异常。
现有技术中,常规的数据推送方法是采用固定的速率将数据推送到媒体播放器,由媒体播放器对数据进行还原;例如,首先解析当前MMS直播数据流的码率(如得出的码率为500kbps),然后按照数据块ID的顺序向媒体播放器推送数据(如每秒钟推送500kb的数据),这样就能够确定数据推送时机以及数据推送数量。
但上述方法只适用于CBR编码方式的视频文件,对于动态码率编码的视频文件,解析出的码率为平均码率,因此,***会按照平均码率匀速推送数据。当画面变化较大时,实际所需的码率会提升,但由于推送速度不变,将导致数据量不足,从而发生视频播放不流畅的问题。
发明内容
本发明要解决的一个技术问题是提供一种数据动态推送的方法及***,能够实现动态码率编码数据的动态推送。
本发明的一个方面提供了一种数据动态推送的方法,该方法包括:获取流媒体数据每个数据块的起始播放时间戳和播放持续时间;建立数据块的起始播放时间戳与数据块ID的映射表;根据当前数据块的起始播放时间戳和播放持续时间获知推送下一个数据块的起始播放时间戳;通过下一个数据块的起始播放时间戳,从映射表中查找下一个数据块的起始播放时间戳对应的数据块ID,确定要推送的下一个数据块;以及根据播放持续时间确定的等待时间后将下一个数据块推送给播放器。
本发明提供的数据动态推送的方法的一个实施例中,该方法进一步包括:将下一个数据块推送给播放器后,判断流媒体数据的所有数据块推送是否结束;如果流媒体数据的所有数据块推送没有完成,则继续根据播放器的播放进度获知推送下一个数据块的下一个数据块的起始播放时间戳。
本发明提供的数据动态推送的方法的一个实施例中,该方法进一步包括:将下一个数据块推送给播放器后,对实际等待时间进行补偿以使下一个数据块的下一个数据块在其起始播放时间戳被推送。
本发明提供的数据动态推送的方法的一个实施例中,实际等待时间由刚推送的下一个数据块的播放持续时间减去查找和推送的时间。
本发明提供的数据动态推送的方法的一个实施例中,查找和推送的时间是由已获取的查找和推送的时间的均值决定的。
本发明的一个方面提供了一种数据动态推送的***,该***包括:解析模块,用于从网络侧设备接收流媒体数据,解析流媒体数据获取每个数据块的起始播放时间戳和播放持续时间,并向存储模块发送数据块的起始播放时间戳和播放持续时间;存储模块,用于接收数据块的起始播放时间戳和播放持续时间,存储数据块的起始播放时间戳和数据块ID;获取模块,用于根据当前数据块的起始播放时间戳和播放持续时间获知推送下一个数据块的起始播放时间戳;通过下一个数据块的起始播放时间戳从存储模块查找下一个数据块的数据块ID,确定要推送的下一个数据块;根据当前数据块的播放持续时间确定等待时间;以及推送模块,用于在等待时间后,将下一个数据块推送给播放器。
本发明提供的数据动态推送的***的一个实施例中,该***还包括:判断模块,用于推送模块将数据块推送给播放器后,判断流媒体数据的所有数据块推送是否结束;如果流媒体数据的所有数据块推送没有完成,则向获取模块下发指令,由获取模块继续根据播放器的播放进度获知推送下一个数据块的下一个数据块的起始播放时间戳。
本发明提供的数据动态推送的***的一个实施例中,该***还包括:补偿模块,用于推送模块将数据块推送给播放器后,对推送模块的实际等待时间进行补偿以使数据块的下一个数据块在其起始播放时间戳被推送。
本发明提供的数据动态推送的***的一个实施例中,推送模块的实际等待时间由刚推送的下一个数据块的播放持续时间减去获取模块获取数据块ID的查找时间和推送模块推送数据块的发送时间。
本发明提供的数据动态推送的***的一个实施例中,查找时间和发送时间是由已获取的查找时间和发送时间的均值决定的。
本发明提供的数据动态推送的方法及***,通过获取当前数据块的播放时间戳和播放持续时间,并根据上述两项参数对推送器推送下一个数据块的推送时机进行控制,从而克服了现有技术推送VBR编码的视频会造成播放不流畅的问题。
附图说明
图1示出ASF格式数据中数据块ID、SRC和Duration与播放时间的对应关系图;
图2示出本发明提供的一种数据动态推送的方法的一个实施例的流程图;
图3示出本发明提供的一种数据动态推送的方法的另一个实施例的流程图;
图4示出本发明提供的一种数据动态推送的***的一个实施例的结构示意图;
图5示出本发明提供的一种数据动态推送的***的另一个实施例的结构示意图;
图6示出推送器理论工作时间轴与其实际工作时间轴之间的效果对比图;
图7示出本发明提供的一种数据动态推送的方法的再一个实施例的流程图;
图8示出本发明提供的一种数据动态推送的方法中推送器理论工作时间轴与其实际工作时间轴之间的效果对比图;
图9示出本发明提供的一种数据动态推送的方法的一个具体实施例的流程图;
图10示出本发明提供的一种数据动态推送的***的再一个实施例的结构示意图;
图11示出本发明提供的一种数据动态推送的***的一个具体实施例的结构示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。
图1示出ASF格式数据中数据块ID、SRC和Duration与播放时间的对应关系图。基于MMS协议编码的流媒体文件,每个数据块都具有一个数据块ID,此ID用于标识各个数据块的播放顺序。如图1所示,一个基于MMS协议的视频的播放时长为30秒,并且分为8个ASF数据块,每个数据块都具有各自的ID(如图1中的数字1-8)、SRC(Source的缩写,如图1中的字符“S”)以及Duration(如图1中的字符“D”);其中,SRC表示当前数据块基于启示播放时间轴的播放时间戳,Duration表示当前数据块播放所持续的时间。所有数据块的Duration相加得出数据流播放的总时长。根据前述介绍可以知晓还原播放需要确定数据的推送时机以及推送数据量。
图2示出本发明提供的一种数据动态推送的方法的一个实施例的流程图。
如图2所示,数据动态推送的方法流程200中,步骤202,获取流媒体数据中每个数据块的起始播放时间戳和播放持续时间。例如,以基于MMS协议所承载的ASF格式的流媒体数据为例,当该流媒体数据从网络传送至客户端时,推送器接收并解析该ASF格式的流媒体数据,以获取每个数据块的两个参数:起始播放时间戳(SRC)和播放持续时间(Duration)。本发明中推送器可以位于本地的客户端,可以是P2P的播放软件中一个组件,生成的映射表也是存在本地;一个例子就是PPLive的播放客户端,数据块被推送至播放器后,数据块可以立即播放。
步骤204,建立数据块的起始播放时间戳与数据块ID的映射表。例如,对ASF格式的数据块进行解析后,获取每个数据块的SCR和ID参数,并建立两者对应的映射表,以便推送器从映射表中根据SCR查找到数据块ID,进而查找到具体数据块。
步骤206,根据当前数据块的起始播放时间戳和播放持续时间获知推送下一个数据块的起始播放时间戳。例如,根据播放器的播放进度(包含当前数据块的起始播放时间戳和播放持续时间等信息),能够知晓当前正在播放的数据块的持续时间;根据已经播放的数据块的持续时间和正在播放的数据块所要持续的时间能够获知待推送的下一个数据块的起始播放时间戳(即当前播放的数据块的下一个待推送的数据块的起始播放时间戳)。
步骤208,通过下一个数据块的起始播放时间戳,从映射表中查找下一个数据块的起始播放时间戳对应的数据块ID,确定要推送的下一个数据块和下一个数据块的播放持续时间。例如,根据该下一个数据块的起始播放时间戳,通过查询映射表,从而获取该下一个数据块的起始播放时间戳对应的数据块ID,进而查找到该下一个数据块及其播放持续时间。
步骤210,根据播放持续时间确定的等待时间后将该下一个数据块推送给播放器。例如,推送器按照该下一个数据块的起始播放时间戳,将该下一个数据块推送给播放器,随后由播放器播放该下一个数据块。
针对VBR编码的视频播放不流畅的问题,本发明提供的数据动态推送的方法,通过获取当前数据块的播放时间戳和播放持续时间,并根据上述两项参数对推送器推送下一个数据块的推送时机进行控制,从而能够实现动态码率编码数据的动态推送。
图3示出本发明提供的一种数据动态推送的方法的一个实施例的流程图。
如图3所示,数据动态推送的方法流程300中,步骤302-步骤310可以分别执行与图2所示的步骤202-步骤210相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图3所示,在步骤310“根据播放持续时间确定的等待时间后将下一个数据块推送给播放器”之后,执行步骤312,判断流媒体数据的所有数据块推送是否结束。例如,推送器根据播放持续时间确定的等待时间将该下一个数据块推送给播放器后,判断流媒体数据的所有数据块推送是否结束;可能的场景包括:用户提前结束视频播放,因此,无需再继续传送该视频文件的数据块;针对这种情形,客户端或推送器可以通过捕捉用户的操作(如停止、暂停等)来判断;第二种情形是视频的自然结束,可以通过各个数据块的播放持续时间(Duration)和视频的实际播放总时间长度来判断。如果流媒体数据的所有数据块都推送结束,则推送器停止数据块推送,处于idle状态;否则,跳转到步骤306,重复执行步骤306-步骤310。
图4示出本发明提供的一种数据动态推送的***的一个实施例的结构示意图。
如图4所示,数据动态推送的***400包括:解析模块402、存储模块404、获取模块406和推送模块408。
其中,解析模块402,用于从网络侧设备401接收流媒体数据(如ASF格式的流媒体数据),解析该ASF格式的流媒体数据,获取每个数据块的起始播放时间戳和播放持续时间,并向存储模块404发送数据块的起始播放时间戳和播放持续时间等信息。
存储模块404,用于接收解析模块402发送的所述数据块的起始播放时间戳和播放持续时间,存储每个数据块的起始播放时间戳和数据块ID(如建立起始播放时间戳和数据块ID的映射表)。
获取模块406,用于根据播放器409的当前数据块的起始播放时间戳和播放持续时间获知推送下一个数据块的起始播放时间戳;通过下一个数据块的起始播放时间戳,向存储模块404发起查询请求,并从映射表中查找下一个数据块的起始播放时间戳对应的数据块ID,确定要推送的下一个数据块;根据当前数据块的播放持续时间确定等待时间。
推送模块408,用于在获取模块406确定的等待时间后,将该下一个数据块推送给播放器409。
图5示出本发明提供的一种数据动态推送的***的一个实施例的结构示意图。
如图5所示,数据动态推送的***500主要包括:解析模块502、存储模块504、获取模块506、推送模块508和判断模块910;其中,解析模块502、存储模块504、获取模块506和推送模块508分别可以是与图4所示解析模块402、存储模块404、获取模块406和推送模块408具有相同或相似的功能模块;为简洁起见,这里不再赘述。
如图5所示,判断模块510,用于推送模块508将数据块推送给播放器509后,判断流媒体数据的所有数据块推送是否结束(例如,推送模块508推送的当前数据块是否是流媒体数据的最后一个数据块)。如果数据块推送没有完成,则向获取模块506下发指令,由获取模块506继续根据播放器509的播放进度获知推送下一个数据块的起始播放时间戳。如果数据块推送完成(例如,用户结束或暂停视频播放或者视频播放自然结束),则推送模块508停止推送数据块。
采用本发明前述提及的数据动态推送的方法及***,在推送器按照数据块ID顺序以及SCR时间戳向客户端推送数据的过程中,推送器需要查找数据块,推送器向客户端推送数据都会消耗一定的时间。如果推送器在向客户端推送数据后,再按照Duration所规定的时间进行等待,实际的每个数据块持续的时间会比理论时间大。图6示出推送器理论工作时间轴与其实际工作时间轴之间的效果对比图。如图6所示,第一行代表推送器向播放器推送数据块的理论工作时间状态,推送器按照SRC时间戳和Duration规定的持续时间顺序推送所示数据块;但是在实际推送的过程中,由于推送器查找到数据块ID和推送该数据块ID对应的数据块要消耗一定的时间(如图6所示的查找和推送时间),因此,在推送器向播放器推送一个数据块后,如果再等待Duration所持续的播放时间,将会导致下一个数据块的推送时间被延后(如图6第二行所示的推送器实际工作时间轴,即查找和推送时间段和休眠/等待时间段),从而导致在理论时刻点应该播放下一个数据块时,播放器的播放数据量不足,从而造成视频播放不流畅的问题。为进一步解决推送器准确推送数据块的技术问题,本发明给出了如下技术方案,用以对推送器查找数据块及推送数据块的时间进行补偿,从而避免数据块推送的延迟问题。
图7示出本发明提供的一种数据动态推送的方法的一个实施例的流程图。本发明以直播互联网上基于MMS协议和ASF格式封装的流媒体为例进行说明,适用于Peer to Peer架构和Client-Server架构的***。
如图7所示,数据动态推送的方法流程900中,步骤902-步骤710可以分别执行与图2所示的步骤202-步骤210相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图7所示,在步骤710“根据播放持续时间确定的等待时间后将下一个数据块推送给播放器”之后,执行步骤712,对推送器的实际等待时间进行补偿。例如,推送器根据播放持续时间确定的等待时间将该下一个数据块推送至播放器后,播放器对当前接收到的数据块进行播放,并持续播放相应的播放时间(Duration),此时,推送器进入等待状态。如果再等待当前数据块所持续的播放时间(Duration),将会导致下一个数据块的推送时间延后;为避免数据块推送的延迟所造成的播放不流畅的问题,需要对推送器等待的时间进行补偿。具体来说,补偿后推送器等待的时长不再是刚推送的数据块的播放持续时间(Duration),而是由刚推送数据块的播放持续时间(Duration)减去所需要补偿的时间t得到,其中,所需要补偿的时间t主要由推送器完成查找和推送操作的速度决定,这与推送器所在客户端的计算机性能密切相关。补偿的时间t可以通过在客户端所在的计算机上预装软件的方式来动态测量获得,从而计算出推送器在该计算机上进行查找和推送操作所花费的时间t。
本发明提供的数据动态推送的方法的一个实施例中,对推送器的实际等待时间进行补偿进一步包括:测量推送器查找下一个数据块ID以及将该下一个数据块推送给播放器所花费的时间t;由该下一个数据块播放持续时间(Duration)减去推送器所花费的时间t即可获得推送器在该下一个数据块播放持续时间段内实际等待的时间。
本发明提供的数据动态推送的方法的一个实施例中,也可以根据前面所获取的需要补偿的时间的平均值作为下一次推送器所需要补偿的时间t。
本发明提供的数据动态推送的方法中,在推送器查找到数据块ID,并将该数据块ID对应的数据块推送给播放器之后,对推送器处于休眠/等待状态的时间进行补偿;其休眠/等待的时间不再是对应数据块持续播放的时间,而是该数据块持续播放的时间减去推送器查找和推送的时间;从而保证在下一个数据块的起始播放时间戳时,推送器能够准确开始向播放器查找和推送下一个数据块,从而实现播放器对直播等实时性要求较高的视频进行流程播放。
图8示出本发明提供的一种数据动态推送的方法中推送器理论工作时间轴与其实际工作时间轴之间的效果对比图。
如图8所示,第一行代表推送器向播放器推送数据块的理论工作时间状态,推送器按照SRC时间戳和Duration规定的持续时间顺序推送所示数据块;但是在实际推送的过程中,推送器查找到数据块ID和推送该数据块ID对应的数据块消耗一定的时间,为避免由于推送器查找和推送消耗的时间造成推送器推送下一个数据块的推送时间被延后;本发明提供的一种数据动态推送的方法对推送器处于休眠/等待的时间进行补偿处理,如图8第二行所示的推送器实际工作时间轴(即查找和推送时间段和休眠/等待时间段)所示,在理论时刻点应该播放下一个数据块时,推送器能够准时开始推送下一个数据块,从而保证播放器能够及时接收到播放数据,解决了视频播放不流畅的问题。
图9示出本发明提供的一种数据动态推送的方法的一个具体实施例的流程图。
如图9所示,数据动态推送的方法流程900中,步骤902,获取流媒体数据每个数据块的起始播放时间戳和播放持续时间。例如,以基于MMS协议所承载的ASF格式的流媒体数据为例,当该流媒体数据从网络传送至客户端时,推送器接收并解析该ASF格式的流媒体数据,以获取每个数据块的两个参数:起始播放时间戳(SRC)和播放持续时间(Duration)。
步骤904,建立数据块的起始播放时间戳与数据块ID的映射表。例如,对ASF格式的数据块进行解析后,获取每个数据块的SCR和ID参数,并建立两者对应的映射表,以便推送器从映射表中根据SCR查找到数据块ID,进而查找到具体数据块。
步骤906,根据当前数据块的起始播放时间戳和播放持续时间获知推送下一个数据块的起始播放时间戳。例如,根据播放器的播放进度(如当前数据块的起始播放时间戳和播放持续时间),能够知晓当前正在播放的数据块的持续时间;根据已经播放的数据块的持续时间和正在播放的数据块所要持续的时间能够获知待推送的下一个数据块的起始播放时间戳(即当前播放的数据块的下一个待推送的数据块的起始播放时间戳)。
步骤908,通过下一个数据块的起始播放时间戳,从映射表中查找下一个数据块的起始播放时间戳对应的数据块ID,确定要推送的下一个数据块和下一个数据块的播放持续时间。例如,根据该下一个数据块的起始播放时间戳,通过查询映射表,从而获取该下一个数据块的起始播放时间戳对应的数据块ID,进而查找到该下一个数据块及其播放持续时间。
步骤910,根据播放持续时间确定的等待时间后将该下一个数据块推送给播放器。例如,推送器根据播放持续时间确定的等待时间后(也就是按照该下一个数据块的起始播放时间戳),将该下一个数据块推送给播放器,随后由播放器播放该下一个数据块。
步骤912,对推送器的实际等待时间进行补偿。例如,推送器将该下一个数据块推送至播放器后,播放器对当前接收到的数据块进行播放,并持续播放相应的播放时间(Duration),此时,推送器进入等待状态。为避免数据块推送的延迟所造成的播放不流畅的问题,需要对推送器等待的时间进行补偿,补偿后推送器等待的时长不再是刚推送的数据块的播放持续时间(Duration),而是由刚推送数据块的播放持续时间(Duration)减去推送器进行查找和推送操作所花费的时间t。
步骤914,判断流媒体数据的所有数据块推送是否结束。例如,推送器将该下一个数据块推送给播放器后,判断流媒体数据的所有数据块推送是否结束(用户是否提前结束视频播放或者是视频的自然结束)。如果流媒体数据的所有数据块都推送结束,则推送器停止数据块推送,处于idle状态;否则,跳转到步骤906,重复执行步骤906-步骤914。
图10示出本发明提供的一种数据动态推送的***的一个实施例的结构示意图。
如图10所示,数据动态推送的***1000主要包括:解析模块1002、存储模块1004、获取模块1006、推送模块1008和补偿模块1010;其中,解析模块1002、存储模块1004、获取模块1006和推送模块1008分别可以是与图4所示解析模块402、存储模块404、获取模块406和推送模块408具有相同或相似的功能模块;为简洁起见,这里不再赘述。
如图10所示,补偿模块1010,用于推送模块1008将数据块推送给播放器1009后,对推送模块1008的实际等待时间进行补偿以使数据块的下一个数据块在其起始播放时间戳被推送。
本发明提供的一种数据动态推送的***的一个实施例中,推送模块1008的实际等待时间由刚推送的下一个数据块的播放持续时间减去获取模块1006查找数据块ID的查询时间和推送模块1008推送数据块的推送时间。
本发明提供的一种数据动态推送的***的一个实施例中,获取模块1006查找数据块ID的查询时间和推送模块1008推送数据块的推送时间可以由已获取的查找时间和推送时间的均值决定。
图11示出本发明提供的一种数据动态推送的***的一个具体实施例的结构示意图。
如图11所示,数据动态推送的***1100主要包括:解析模块1102、存储模块1104、获取模块1106、推送模块1108、判断模块1110和补偿模块1112。
其中,解析模块1104,用于从网络侧设备1101接收流媒体数据(如ASF格式的流媒体数据),解析该ASF格式的流媒体数据,获取每个数据块的起始播放时间戳和播放持续时间,并向存储模块1104发送数据块的起始播放时间戳和播放持续时间等信息。
存储模块1104,用于接收解析模块1102发送的起始播放时间戳和播放持续时间,建立并存储每个数据块的起始播放时间戳与数据块ID的映射表。
获取模块1106,用于根据播放器1109的播放进度获知推送下一个数据块的起始播放时间戳;通过下一个数据块的起始播放时间戳,向存储模块1104发起查询请求,并从映射表中查找下一个数据块的起始播放时间戳对应的数据块ID,确定要推送的下一个数据块和下一个数据块的播放持续时间。
推送模块1108,用于根据获取模块1106确定的要推送的下一个数据块,将该下一个数据块推送给播放器1109。
判断模块1110,用于推送模块1108将数据块推送给播放器1109后,判断流媒体数据的所有数据块推送是否结束。如果流媒体数据的所有数据块推送没有完成,则向获取模块1106下发指令,由获取模块1106继续根据播放器1109的播放进度获知推送下一个数据块的起始播放时间戳。如果流媒体数据的所有数据块推送完成(例如,用户结束或暂停视频播放或者视频播放自然结束),则推送模块1108停止推送数据块。
补偿模块1112,用于推送模块1108将数据块推送给播放器1109后,对推送模块1108的实际等待时间进行补偿以使数据块的下一个数据块在其起始播放时间戳被推送;其中,推送模块1108的实际等待时间由刚推送的下一个数据块的播放持续时间减去获取模块1106查找数据块ID的查找时间和推送模块1108推送数据块的推送时间。
参考前述本发明示例性的描述,本领域技术人员可以清楚的知晓本发明具有以下优点:
1)针对现有技术推送VBR编码的视频会造成播放不流畅的问题,本发明提供的数据动态推送的方法及***,通过获取当前数据块的播放时间戳和播放持续时间,并根据上述两项参数对推送器推送下一个数据块的推送时机进行控制,从而能够实现动态码率编码数据的动态推送、流畅播放。
2)进一步地,本发明提供的数据动态推送的方法及***,在推送器向播放器推送一个数据块后,对推送器处于休眠/等待状态的时间进行补偿;其休眠/等待的时间不再是对应数据块持续播放的时间,而是该数据块持续播放的时间减去推送器查找和推送的时间,从而保证在下一个数据块的起始播放时间戳时,推送器能够准确开始向播放器查找和推送下一个数据块,从而实现播放器对直播等实时性要求较高的视频进行流程播放。
3)进一步地,本发明提供的数据动态推送的方法及***,能够动态适应数据流的码率变化,准确地推送流媒体的数据块,实现了视频的流畅播放,满足了用户观看直播等实时性视频节目;同时也有利于提高运营商的服务水平,有利于新业务的推广。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (6)
1.一种数据动态推送的方法,其特征在于,所述方法包括:
获取流媒体数据每个数据块的起始播放时间戳和播放持续时间;
建立所述数据块的起始播放时间戳与数据块ID的映射表;
根据当前数据块的起始播放时间戳和播放持续时间获知推送下一个数据块的起始播放时间戳;
通过所述下一个数据块的起始播放时间戳,从所述映射表中查找所述下一个数据块的起始播放时间戳对应的数据块ID,确定要推送的所述下一个数据块;以及
根据所述播放持续时间确定的等待时间后,将所述下一个数据块推送给所述播放器;
将所述下一个数据块推送给所述播放器后,对实际等待时间进行补偿以使所述下一个数据块的下一个数据块在其起始播放时间戳被推送;所述实际等待时间为所述下一个数据块的播放持续时间减去所述查找和推送的时间;
其中,流媒体数据为ASF格式。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:将所述下一个数据块推送给所述播放器后,判断所述流媒体数据的所有数据块推送是否结束;
如果所述流媒体数据的所有数据块推送没有完成,则继续根据所述播放器的播放进度获知推送所述下一个数据块的下一个数据块的起始播放时间戳。
3.根据权利要求1所述的方法,其特征在于,所述查找和推送的时间是由已获取的所述查找和推送的时间的均值决定的。
4.一种数据动态推送的***,其特征在于,所述***包括:
解析模块,用于接收流媒体数据,解析所述流媒体数据获取每个数据块的起始播放时间戳和播放持续时间,并向存储模块发送所述数据块的起始播放时间戳和播放持续时间;
所述存储模块,用于接收所述数据块的起始播放时间戳和播放持续时间,存储所述数据块的起始播放时间戳和数据块ID;
获取模块,用于根据当前数据块的起始播放时间戳和播放持续时间获知推送下一个数据块的起始播放时间戳;通过所述下一个数据块的起始播放时间戳从所述存储模块查找所述下一个数据块的数据块ID,确定要推送的所述下一个数据块;根据所述当前数据块的播放持续时间确定等待时间;以及
推送模块,用于在所述等待时间后,将所述下一个数据块推送给所述播放器;
补偿模块,用于对所述推送模块的实际等待时间进行补偿以使所述数据块的下一个数据块在其起始播放时间戳被推送;
所述推送模块的实际等待时间由刚推送的所述下一个数据块的播放持续时间减去所述获取模块获取所述数据块ID的查找时间和所述推送模块推送所述数据块的推送时间;
其中,流媒体数据为ASF格式。
5.根据权利要求4所述的***,其特征在于,所述***还包括:判断模块,用于判断所述流媒体数据的所有数据块推送是否结束;如果所述流媒体数据的所有数据块推送没有完成,则向所述获取模块下发指令,由所述获取模块继续根据所述播放器的播放进度获知推送所述下一个数据块的下一个数据块的起始播放时间戳。
6.根据权利要求4所述的***,其特征在于,所述查找时间和所述发送时间是由已获取的所述查找时间和所述推送时间的均值决定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910258137.6A CN102098571B (zh) | 2009-12-14 | 2009-12-14 | 一种数据动态推送的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910258137.6A CN102098571B (zh) | 2009-12-14 | 2009-12-14 | 一种数据动态推送的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102098571A CN102098571A (zh) | 2011-06-15 |
CN102098571B true CN102098571B (zh) | 2013-06-19 |
Family
ID=44131404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910258137.6A Active CN102098571B (zh) | 2009-12-14 | 2009-12-14 | 一种数据动态推送的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102098571B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102325264A (zh) * | 2011-09-14 | 2012-01-18 | 华为技术有限公司 | 一种媒体内容分发和点播的方法、机顶盒及*** |
KR20130040090A (ko) | 2011-10-13 | 2013-04-23 | 삼성전자주식회사 | 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법 |
CN103905846B (zh) * | 2012-12-25 | 2017-12-08 | 中国电信股份有限公司 | 基于iptv的内容推送方法与服务器 |
CN103327420A (zh) * | 2013-06-28 | 2013-09-25 | 北京奇艺世纪科技有限公司 | 基于数据分块的流媒体文件传输方法和装置 |
CN103745737B (zh) * | 2013-12-23 | 2017-12-08 | 乐视致新电子科技(天津)有限公司 | 一种获取媒体文件总时长的方法和设备 |
CN104199992B (zh) * | 2014-09-28 | 2018-03-09 | 北京奇虎科技有限公司 | 数据拖取的方法和装置 |
CN106470350B (zh) * | 2015-08-21 | 2019-10-08 | 中国电信股份有限公司 | 基于动态比特率的码率自适应方法及装置 |
CN106656938B (zh) * | 2015-11-02 | 2020-03-03 | 腾讯科技(深圳)有限公司 | 一种流媒体文件处理方法及装置 |
CN107426629B (zh) * | 2017-06-19 | 2020-06-23 | 网宿科技股份有限公司 | 一种流媒体文件处理方法及直播*** |
CN107360424B (zh) | 2017-07-28 | 2019-10-25 | 深圳岚锋创视网络科技有限公司 | 一种基于视频编码器的码率控制方法、装置及视频服务器 |
CN109951446B (zh) * | 2019-01-30 | 2022-04-12 | 亦非云互联网技术(上海)有限公司 | 直播流的稳流方法、***、计算机存储介质及电子设备 |
CN111651417B (zh) * | 2020-07-09 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 日志处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101084678A (zh) * | 2004-12-22 | 2007-12-05 | 英国电讯有限公司 | 防止缓冲器下溢的速率控制 |
CN101340570A (zh) * | 2008-08-22 | 2009-01-07 | 天柏宽带网络科技(北京)有限公司 | 一种流媒体播放时实现跳转的方法 |
-
2009
- 2009-12-14 CN CN200910258137.6A patent/CN102098571B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101084678A (zh) * | 2004-12-22 | 2007-12-05 | 英国电讯有限公司 | 防止缓冲器下溢的速率控制 |
CN101340570A (zh) * | 2008-08-22 | 2009-01-07 | 天柏宽带网络科技(北京)有限公司 | 一种流媒体播放时实现跳转的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102098571A (zh) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102098571B (zh) | 一种数据动态推送的方法及*** | |
US10511646B2 (en) | System and method for delivering content | |
RU2622621C2 (ru) | Система и способ для потоковой передачи воспроизводимого контента | |
KR100492567B1 (ko) | 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법 | |
KR101702562B1 (ko) | 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치 | |
CA2841377C (en) | Video transcoding services provided by searching for currently transcoded versions of a requested file before performing transcoding | |
CN108600784B (zh) | 向客户端设备流传输媒体内容的方法、装置及存储介质 | |
AU2010210639B2 (en) | Server-side support for seamless rewind and playback of video streaming | |
CN103002274B (zh) | 一种基于离线下载的移动多媒体实时转码播放***及方法 | |
CN105916058B (zh) | 一种流媒体缓冲播放方法、装置及显示设备 | |
CN102714602B (zh) | 通过网络传输用来播放的多媒体内容的***和方法 | |
US9282131B2 (en) | System and method for splicing media files | |
CN102256162B (zh) | 基于实时文件格式转换的优化流媒体点播的方法和*** | |
CN101917613B (zh) | 一种流媒体采集编码服务*** | |
WO2008061416A1 (fr) | Procédé et système permettant d'accepter des données media de divers formats de codage | |
WO2013159703A1 (en) | Offline download method, multimedia file download method and system thereof | |
CN101202613B (zh) | 一种用于时钟同步的终端 | |
WO2018014691A1 (zh) | 一种媒体数据的获取方法和装置 | |
WO2019014574A1 (en) | PROCESSING MULTIMEDIA DATA USING FILE TRACKS FOR WEB CONTENT | |
CN110381340A (zh) | 视频文件处理*** | |
KR101397551B1 (ko) | Http에 기초한 동적 적응적 스트리밍 시스템 | |
AU2011233856A1 (en) | Method and apparatus for providing timeshift service in digital broadcasting system and system thereof | |
EP2494758A1 (en) | Client entity, network entity and data replacement entity | |
CN100544448C (zh) | 一种移动多媒体网络的时钟同步*** | |
CN101540756A (zh) | 顺序流式传输的随机播放和数据发送方法、***及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |