CN1798097A - 一种缓存流媒体数据的方法 - Google Patents
一种缓存流媒体数据的方法 Download PDFInfo
- Publication number
- CN1798097A CN1798097A CNA2004101028513A CN200410102851A CN1798097A CN 1798097 A CN1798097 A CN 1798097A CN A2004101028513 A CNA2004101028513 A CN A2004101028513A CN 200410102851 A CN200410102851 A CN 200410102851A CN 1798097 A CN1798097 A CN 1798097A
- Authority
- CN
- China
- Prior art keywords
- buffer memory
- medium data
- stream medium
- play
- buffer
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000003139 buffering effect Effects 0.000 title claims description 8
- 230000015654 memory Effects 0.000 claims abstract description 137
- 230000015572 biosynthetic process Effects 0.000 claims description 44
- 238000004321 preservation Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 5
- 238000000151 deposition Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/266—Stopping or restarting the source, e.g. X-on or X-off
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2401—Monitoring of the client buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
- H04N21/4392—Processing of audio elementary streams involving audio buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17318—Direct or substantially direct transmission and handling of requests
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明为一种缓存流媒体数据的方法,在该方法中,判断播放缓存中是否有空闲缓存块,如果是,则将从网络下载的流媒体数据缓存到播放缓存中,否则,停止下载;并且,判断播放缓存中是否已经有足够数量的保存有流媒体数据的缓存块,如果是,则播放保存有流媒体数据的缓存块,否则,停止播放缓存块。该方法能够控制流媒体数据的下载速度和播放速度,以避免由于速度不一致而造成的数据被覆盖或者播放不连贯的问题。由此,能够保证数据缓存的和播放过程中不会出现错误,并能保证流媒体数据的播放质量。
Description
技术领域
本发明涉及媒体通信技术领域,尤其涉及一种缓存流媒体数据的方法。
背景技术
当前,流媒体已经在网络上得到广泛的使用,人们可以通过流媒体在网络上实时观看或收听节目。流媒体,又称流式媒体,允许浏览者一边下载流媒体文件,一边播放该文件,而不需要等到整个流媒体文件下载完成后再进行播放,从而大大节省了使用者的下载时间。流媒体技术并不是一项单一的技术,在实现流媒体下载和播放的过程中,具体会涉及到流媒体数据的采集、压缩、传输、缓存以及播放等多项技术。本发明所涉及的就是有关流媒体数据的缓存技术。
在现有技术中,流媒体播放器从网络下载流媒体数据,将该数据缓存在自身的播放缓存中,通过该播放缓存播放下载得到的流媒体数据。在此过程中,涉及到两个速度,一个是流媒体数据的下载速度,该速度由网络状况决定,另一个是流媒体数据的本地播放速度,该速度由流媒体播放器自身所决定。由于流媒体数据的播放速度与网络状况无关,因此,会造成流媒体数据的下载速度与播放速度之间存在差异,具体可包括如下两种情况:
一、流媒体数据的下载速度快于播放速度:
在此情况下,会造成播放缓存中的媒体数据尚未被播出,而新下载的媒体数据已经到达播放缓存的情况,由此,会导致播放缓存中的部分尚未播出的流媒体数据被新下载的流媒体数据所覆盖,从而造成流媒体数据的损失,产生播放错误;
二、流媒体数据的下载速度慢于播放速度:
在此情况下,会造成播放缓存已经将全部缓存的流媒体播放数据播放完毕,而新的流媒体数据仍未到达播放缓存的情况,从而会造成流媒体数据播放的不连贯,影响播放质量。
由于流媒体数据的下载速度和播放速度分别由不同的因素所决定,因此,这两个速度之间的大小关系必然难以相等,由此,以上所述由于速度不一致所产生的问题也就必然会出现。在现有技术中,并没有提供解决该问题的方法。
发明内容
有鉴于此,本发明的主要目的在于提供一种缓存流媒体数据流的方法,利用该方法,能够使得流媒体数据的下载速度和播放速度相一致,从而避免由于速度一致所产生的覆盖播放缓存中的数据以及数据播放不连贯的问题。
为实现上述目的,本发明提供了一种缓存流媒体数据的方法,该方法包括:
在播放缓存接收流媒体数据的一侧,执行以下操作:
步骤a:播放缓存按照下载速度,通过网络下载一块流媒体数据;
步骤b:判断播放缓存中当前是否还有空闲缓存块,如果是,则从播放缓存中取出一个空闲缓存块,否则,播放缓存停止通过网络下载流媒体数据,返回本步骤,直至播放缓存中出现空闲缓存块;
步骤c:将步骤a所述的流媒体数据存放到步骤b所取出的空闲缓存块中,并将该保存流媒体数据的缓存块返回给播放缓存,然后,返回步骤a,直至流媒体数据下载完毕;
在播放缓存播放流媒体数据的一侧,执行以下操作:
步骤A:判断播放缓存中保存流媒体数据的缓存块个数是否大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数,如果是,则执行步骤B;否则,播放缓存停止播放缓存块,返回本步骤,直至播放缓存中保存流媒体数据的缓存块个数大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数;
步骤B:按照播放速度,从播放缓存中顺序取出一个保存流媒体数据的缓存块并播放,并将进行播放后得到的空闲缓存块返回给播放缓存,然后,返回步骤A,直至流媒体数据播放完毕。
其中,在播放缓存中引入空闲缓存队列和数据缓存队列,其中,空闲缓存队列用于管理播放缓存中所有未被流媒体数据占用的空闲缓存块,数据缓存队列用于管理播放缓存中所有已经被流媒体数据所占用的缓存块;
步骤b包括:
对空闲缓存队列执行取空闲缓存块操作,判断该操作返回值是否为空,如果是,则判断得到播放缓存中当前没有空闲缓存块,播放缓存停止从网络下载流媒体数据块,然后,返回步骤b,否则,判断得到播放缓存中当前有空闲缓存块,执行所述步骤c;
步骤c包括:将步骤a所述流媒体数据保存到步骤b所取出的空闲缓存块中,然后,通过执行数据队列的存数据缓存块操作,将该保存流媒体数据的缓存块返回到播放缓存的数据缓存队列中,然后,返回步骤a,直至流媒体数据下载结束;
步骤A包括:
步骤A1:判断数据缓存队列中的缓存块个数是否大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数,如果是,则执行步骤A2,否则,停止播放缓存播放保存有流媒体数据的缓存块,然后返回本步骤,直至数据缓存队列中的缓存块个数大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数;
步骤A2:播放缓存按照播放速度,对其中的数据缓存队列执行取数据缓存块操作,将从数据缓存队列中所取出的缓存块播放,然后,对空闲缓存队列执行存空闲缓存块操作,将进行播放后所得到的空闲缓存块返回到播放缓存的空闲缓存队列中,返回步骤A1,直至媒体数据播放完毕。
其中,预先设置一个下载缓存,该下载缓存被配置为:不能用从网络上下载的流媒体数据覆盖那些仍未被播放缓存取走的流媒体数据;步骤a包括:
下载缓存通过网络从流媒体服务器获取流媒体数据,播放缓存再从该下载缓存中得到流媒体数据;
步骤b所述播放缓存停止通过网络下载流媒体数据为:
播放缓存停止从下载缓存获取流媒体数据块,下载缓存由于其中的数据未被取走且不能被新下载的数据所覆盖,停止通过网络从流媒体服务器下载流媒体数据。
其中,该方法进一步包括:
预先计算缓存总时长除以缓存块时间长度的值,将该值作为所述流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数。
其中,所述缓存总时长为6秒,所述缓存块时间长度为2秒。
可见,在本发明中,判断播放缓存中是否有空闲缓存块,以及判断播放缓存中是否已经有足够数量的保存有流媒体数据的缓存块,并根据判断结果确定是否继续下载和播放流媒体数据,从而能够控制流媒体数据的下载速度和播放速度,以避免由于速度不一致而造成的数据被覆盖或者播放不连贯的问题。由此,能够保证数据缓存的和播放过程中不会出现错误,并能保证流媒体数据的播放质量。
附图说明
图1为本发明一实施例中,播放缓存接收流媒体数据一侧所执行步骤的流程图。
图2为本发明一实施例中,播放缓存播放流媒体数据一侧所执行步骤的流程图。
具体实施方式
本发明为一种缓存流媒体数据的方法,该方法对流媒体数据的下载和播放速度进行控制,从而使得这两个速度相一致,以避免由于速度不一致而造成的覆盖播放缓存中的数据和数据播放不连贯的问题。
实现本发明,需要执行以下步骤:
在播放缓存接收流媒体数据的一侧,执行以下步骤:
步骤a:播放缓存按照下载速度,通过网络下载一块流媒体数据;
步骤b:判断播放缓存中当前是否还有空闲缓存块,如果是,则从播放缓存中取出一个空闲缓存块,否则,播放缓存停止通过网络下载流媒体数据块,返回本步骤,直至播放缓存中出现空闲缓存块;
步骤c:将步骤a所述的流媒体数据存放到步骤b所取出的空闲缓存块中,并将该保存流媒体数据的缓存块返回给播放缓存,然后,返回步骤a,直至流媒体数据下载完毕;
在播放缓存播放流媒体数据的一侧,执行以下步骤:
步骤A:判断播放缓存中保存流媒体数据的缓存块个数是否大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数,如果是,则执行步骤B;否则,播放缓存停止播放缓存块,返回本步骤,直至播放缓存中保存流媒体数据的缓存块个数大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数;
步骤B:按照播放速度,从播放缓存中顺序取出一个保存流媒体数据的缓存块并播放,并将进行播放后得到的空闲缓存块返回给播放缓存,然后,返回步骤A,直至流媒体数据播放完毕。
下面结合具体实施例,并参照附图对本发明进行详细描述。
在进行具体描述之前,首先对本发明实施例中所涉及的几个变量进行描述:
播放缓存的缓存块总个数,ChunkNum,用于表示流媒体播放器中用于缓存流媒体数据流的缓存块的总个数;
缓存块时间长度,ChunkDuration,用于表示每个流媒体数据在一个缓存块中所缓存的时间;
缓存总时长,BufferTime,用于表示每个流媒体数据块在播放缓存中的缓存总时长,只有数据块在播放缓存中的缓存时间达到该缓存总时长时,该数据块才被允许从播放缓存中实际播放。
上述三个变量可以在实际测试中进行调节,以选取最优值。在产品的实际测试中,可选取ChunkNum为10,ChunkDuration为2秒,BufferTime为6秒;也可根据实际需要,为以上三个变量分别选取其它值,并不影响本发明的实现。
在本发明实施例中,为了实现对下载速度和播放速度的控制,在播放缓存中引入空闲缓存队列和数据缓存队列,其中,空闲缓存队列用于管理播放缓存中所有未被流媒体数据占用的空闲缓存块,数据缓存队列用于管理播放缓存中所有已经被流媒体数据所占用并等待实际播放的缓存块;针对这两个缓存队列,按照流媒体数据先进先出的原则,分别设计各自的操作,其中,针对空闲缓存队列的操作为:
取空闲缓存块(GetFreeBuffer)操作,用于从空闲缓存队列中取出一个缓存块,执行该操作的同时,将空闲缓存队列的当前缓存块个数减1;如果执行该操作时,空闲缓存队列中没有空闲缓存块,则该操作返回为空;
存空闲缓存块(PutFreeBuffer)操作,用于将播放缓存中的一个空闲缓存块返回给空闲缓存队列,执行该操作的同时,将空闲缓存队列的当前缓存块个数加1;
针对数据缓存队列的操作为:
取数据缓存块(GetMediaBuffer)操作,用于从数据缓存队列中取出一个存放有流媒体数据的缓存块,以使得该缓存块中的流媒体数据能够从播放缓存中被实际播放,执行该操作的同时,将数据缓存队列中的当前缓存块个数减1;如果执行该操作时,数据缓存队列中没有缓存块,则该操作返回空;
存数据缓存块(PutMediaBuffer)操作,用于将一个保存有流媒体数据的缓存块存入数据缓存队列,以等待实际播放该流媒体数据,执行该操作的同时,将数据缓存队列的当前缓存块个数加1;
其中,在进行流媒体数据缓存之前,播放缓存中的所有缓存块都保存在空闲缓存队列中,也就是,空闲缓存队列的缓存块个数等于ChunkNum,数据缓存队列的缓存块个数等于0。
在进行了如上设置后,在本发明一实施例中,可以通过如下步骤实现以上所述本发明的各个步骤:
(一)参见图1,播放缓存接收流媒体数据一侧执行以下步骤:
步骤101:判断流媒体数据下载是否已经结束,如果是,则结束本流程,否则,执行步骤102;
步骤102:播放缓存从网络下载一块流媒体数据;其中,本发明实施例中,为了实现方便,设计一个下载缓存,用于接收并缓存从网络上下载得到的流媒体数据,该下载缓存通过网络从流媒体服务器获取流媒体数据,播放缓存再从该下载缓存中得到流媒体数据;其中,对于所述下载缓进行如下限制:不能用从网络上下载的流媒体数据覆盖那些仍未被播放缓存取走的流媒体数据,以通过该限制并结合后续的具体流程,实现对下载速度的控制;
在本发明其它实施例中,播放缓存也可直接通过网络从流媒体服务器获取流媒体数据块,并不影响本发明的实现;
步骤103~步骤104:对空闲缓存队列执行取空闲缓存块操作,判断该操作返回值是否为空,如果是,表明空闲缓存队列中当前没有空闲缓存队列,相应地,也就表明播放缓存中的各个缓存块当前都存有流媒体数据,为了避免当前从网络获取的流媒体数据块覆盖播放缓存中仍未播放的数据,执行步骤105,否则,表明当前播放缓存中还有空闲的缓存块可以保存接收到的流媒体数据,则执行步骤106;
步骤105:播放缓存停止从网络下载流媒体数据块,然后,返回步骤103,直至对空闲缓存队列执行取空闲缓存块的操作返回值不再为空;
其中,在本发明实施例中,播放缓存停止从下载缓存获取流媒体数据块,根据上述对下载缓存所进行的限制,播放缓存停止从下载缓存获取数据块之后,下载缓存会由于其中的数据未被取走且不能被新下载的数据所覆盖,而停止通过网络从流媒体服务器下载流媒体数据,从而能够达到控制下载速度的目的;
在本发明其它实施例中,播放缓存也可直接停止通过网络从流媒体服务器下载流媒体数据,从而控制下载速度,采用此种方式并不影响本发明的实现;
步骤106~步骤107:将步骤102所下载的流媒体数据保存到步骤103中所取出的空闲缓存块中,然后,通过执行数据队列的存数据缓存块操作,将该保存流媒体数据的缓存块返回到播放缓存的数据缓存队列中,然后,返回步骤101,直至流媒体数据下载结束。
(二)参见图2,播放缓存接收流媒体数据一侧执行以下步骤:
步骤201:播放缓存判断流媒体数据是否已经播放完毕,如果是,则结束本流程,否则,执行步骤202;
步骤202:播放缓存判断数据缓存队列中的缓存块个数是否大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数,如果是,则执行步骤203,否则,停止播放缓存播放保存有流媒体数据的缓存块,然后返回本步骤,直至数据缓存队列中的缓存块个数大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数;
其中,在进行流媒体数据缓存之前,该方法预先计算所述流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数,该个数等于BufferTime/ChunkDuration;
步骤203:播放缓存按照播放速度,对其中的数据缓存队列执行取数据缓存块操作;
步骤204~步骤205:将从数据缓存队列中所取出的缓存块播放,以实现播放流媒体数据,然后,对空闲缓存队列执行存空闲缓存块操作,将进行播放后所得到的空闲缓存块返回到播放缓存的空闲缓存队列中,返回步骤201,直至媒体数据播放完毕。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1、一种缓存流媒体数据的方法,其特征在于,该方法包括:
在播放缓存接收流媒体数据的一侧,执行以下操作:
步骤a:播放缓存按照下载速度,通过网络下载一块流媒体数据;
步骤b:判断播放缓存中当前是否还有空闲缓存块,如果是,则从播放缓存中取出一个空闲缓存块,否则,播放缓存停止通过网络下载流媒体数据,返回本步骤,直至播放缓存中出现空闲缓存块;
步骤c:将步骤a所述的流媒体数据存放到步骤b所取出的空闲缓存块中,并将该保存流媒体数据的缓存块返回给播放缓存,然后,返回步骤a,直至流媒体数据下载完毕;
在播放缓存播放流媒体数据的一侧,执行以下操作:
步骤A:判断播放缓存中保存流媒体数据的缓存块个数是否大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数,如果是,则执行步骤B;否则,播放缓存停止播放缓存块,返回本步骤,直至播放缓存中保存流媒体数据的缓存块个数大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数;
步骤B:按照播放速度,从播放缓存中顺序取出一个保存流媒体数据的缓存块并播放,并将进行播放后得到的空闲缓存块返回给播放缓存,然后,返回步骤A,直至流媒体数据播放完毕。
2、根据权利要求1所述的方法,其特征在于,在播放缓存中引入空闲缓存队列和数据缓存队列,其中,空闲缓存队列用于管理播放缓存中所有未被流媒体数据占用的空闲缓存块,数据缓存队列用于管理播放缓存中所有已经被流媒体数据所占用的缓存块;
步骤b包括:
对空闲缓存队列执行取空闲缓存块操作,判断该操作返回值是否为空,如果是,则判断得到播放缓存中当前没有空闲缓存块,播放缓存停止从网络下载流媒体数据块,然后,返回步骤b,否则,判断得到播放缓存中当前有空闲缓存块,执行所述步骤c;
步骤c包括:将步骤a所述流媒体数据保存到步骤b所取出的空闲缓存块中,然后,通过执行数据队列的存数据缓存块操作,将该保存流媒体数据的缓存块返回到播放缓存的数据缓存队列中,然后,返回步骤a,直至流媒体数据下载结束;
步骤A包括:
步骤A1:判断数据缓存队列中的缓存块个数是否大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数,如果是,则执行步骤A2,否则,停止播放缓存播放保存有流媒体数据的缓存块,然后返回本步骤,直至数据缓存队列中的缓存块个数大于等于流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数;
步骤A2:播放缓存按照播放速度,对其中的数据缓存队列执行取数据缓存块操作,将从数据缓存队列中所取出的缓存块播放,然后,对空闲缓存队列执行存空闲缓存块操作,将进行播放后所得到的空闲缓存块返回到播放缓存的空闲缓存队列中,返回步骤A1,直至媒体数据播放完毕。
3、根据权利要求1或2所述的方法,其特征在于,预先设置一个下载缓存,该下载缓存被配置为:不能用从网络上下载的流媒体数据覆盖那些仍未被播放缓存取走的流媒体数据;步骤a包括:
下载缓存通过网络从流媒体服务器获取流媒体数据,播放缓存再从该下载缓存中得到流媒体数据;
步骤b所述播放缓存停止通过网络下载流媒体数据为:
播放缓存停止从下载缓存获取流媒体数据块,下载缓存由于其中的数据未被取走且不能被新下载的数据所覆盖,停止通过网络从流媒体服务器下载流媒体数据。
4、根据权利要求1所述的方法,其特征在于,该方法进一步包括:
预先计算缓存总时长除以缓存块时间长度的值,将该值作为所述流媒体数据在播放缓存中所需的缓存时间所对应的缓存块个数。
5、根据权利要求4所述的方法,其特征在于,所述缓存总时长为6秒,所述缓存块时间长度为2秒。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101028513A CN100393068C (zh) | 2004-12-24 | 2004-12-24 | 一种缓存流媒体数据的方法 |
PCT/CN2005/002301 WO2006066513A1 (fr) | 2004-12-24 | 2005-12-23 | Procede et appareil destines a mettre en memoire tampon des flux de donnees multimedia |
KR20077017078A KR100874696B1 (ko) | 2004-12-24 | 2005-12-23 | 스트리밍 미디어 데이터의 버퍼링 방법 및 장치 |
EP20050822563 EP1833253A4 (en) | 2004-12-24 | 2005-12-23 | METHOD AND APPARATUS FOR STAMPING STAMP OF MULTIMEDIA DATA STREAMS |
JP2007547151A JP4955571B2 (ja) | 2004-12-24 | 2005-12-23 | ストリーミングメディアをバッファリングする方法及び装置 |
US11/766,320 US20070283035A1 (en) | 2004-12-24 | 2007-06-21 | Method And Apparatus For Buffering Streaming Media |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101028513A CN100393068C (zh) | 2004-12-24 | 2004-12-24 | 一种缓存流媒体数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1798097A true CN1798097A (zh) | 2006-07-05 |
CN100393068C CN100393068C (zh) | 2008-06-04 |
Family
ID=36601394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004101028513A Active CN100393068C (zh) | 2004-12-24 | 2004-12-24 | 一种缓存流媒体数据的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070283035A1 (zh) |
EP (1) | EP1833253A4 (zh) |
JP (1) | JP4955571B2 (zh) |
KR (1) | KR100874696B1 (zh) |
CN (1) | CN100393068C (zh) |
WO (1) | WO2006066513A1 (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009033345A1 (fr) * | 2007-09-11 | 2009-03-19 | Zte Corporation | Procédé pour télécharger et lire simultanément des supports en flux de transfert hypertexte |
CN100593928C (zh) * | 2006-09-30 | 2010-03-10 | 中国科学院计算技术研究所 | 一种基于数据特征的流媒体内容下载方法 |
CN101141368B (zh) * | 2006-09-05 | 2010-05-12 | 硅谷数模半导体(北京)有限公司 | 用于控制流媒体数据回放处理速率的方法和装置 |
CN101282348B (zh) * | 2007-04-06 | 2011-03-30 | 上海晨兴电子科技有限公司 | 运用http协议实现流媒体功能的方法 |
CN102170459A (zh) * | 2010-12-22 | 2011-08-31 | 青岛海信宽带多媒体技术有限公司 | 播放器网络资源下载与播放的实现方法及播放器 |
CN101155132B (zh) * | 2006-09-27 | 2012-07-04 | 中兴通讯股份有限公司 | 一种间接实时流量控制***及其方法 |
CN102761523A (zh) * | 2011-04-27 | 2012-10-31 | 宏碁股份有限公司 | 网络串流内容播放方法及*** |
CN103051955A (zh) * | 2012-12-21 | 2013-04-17 | 华为技术有限公司 | 流媒体播放方法及装置 |
CN103096133A (zh) * | 2013-01-11 | 2013-05-08 | 乐视网信息技术(北京)股份有限公司 | 一种数据的获取方法及装置 |
CN103108257A (zh) * | 2011-11-10 | 2013-05-15 | 中国科学院声学研究所 | 一种用于嵌入式终端改善流媒体播放质量的方法及*** |
CN102117271B (zh) * | 2009-12-31 | 2013-06-19 | Tcl集团股份有限公司 | 一种播放封装错位音视频文件的方法及装置 |
CN103391468A (zh) * | 2012-05-08 | 2013-11-13 | 安凯(广州)微电子技术有限公司 | 一种基于移动终端的网络视频数据的缓冲控制方法及*** |
CN105245940A (zh) * | 2015-10-08 | 2016-01-13 | 北京时医康科技发展有限公司 | 一种窄带宽在线播放高清视频的方法及播放器 |
CN105338022A (zh) * | 2014-07-07 | 2016-02-17 | 深圳市云帆世纪科技有限公司 | 基于p2p的数据传输方法及*** |
CN105450873A (zh) * | 2015-12-08 | 2016-03-30 | 深圳天珑无线科技有限公司 | 一种温度控制方法和终端设备 |
CN110895515A (zh) * | 2018-09-12 | 2020-03-20 | 中兴通讯股份有限公司 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
CN113079394A (zh) * | 2021-03-27 | 2021-07-06 | 深圳市研强物联技术有限公司 | Asr平台语音助手实现流媒体播放的方法、***及终端 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009044416A (ja) * | 2007-08-08 | 2009-02-26 | Sony Corp | コンテンツ再生装置、コンテンツ再生方法、プログラム、およびコンテンツ再生システム |
US8775566B2 (en) * | 2008-06-21 | 2014-07-08 | Microsoft Corporation | File format for media distribution and presentation |
US8176193B2 (en) * | 2009-06-17 | 2012-05-08 | Microsoft Corporation | Dynamic media asset delivery |
US8745259B2 (en) | 2012-08-02 | 2014-06-03 | Ujam Inc. | Interactive media streaming |
CN103023754A (zh) * | 2012-12-06 | 2013-04-03 | 苏州阔地网络科技有限公司 | 一种网页上数据流控制的方法及*** |
CN103916414B (zh) * | 2012-12-31 | 2017-09-05 | 华为技术有限公司 | 传输速率配置方法、终端设备、服务器及*** |
WO2015074623A1 (zh) * | 2013-11-25 | 2015-05-28 | 乐视致新电子科技(天津)有限公司 | 视频播放方法和装置、智能终端 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758076A (en) * | 1995-07-19 | 1998-05-26 | International Business Machines Corporation | Multimedia server system having rate adjustable data retrieval based on buffer capacity |
US5931922A (en) * | 1996-07-01 | 1999-08-03 | Sun Microsystems, Inc. | Media server system for preventing FIFO buffer underflow during multiple channel startup by waiting until buffer receives plurality of data blocks before enabling buffer to transmit received data |
US6665751B1 (en) * | 1999-04-17 | 2003-12-16 | International Business Machines Corporation | Streaming media player varying a play speed from an original to a maximum allowable slowdown proportionally in accordance with a buffer state |
CN1201541C (zh) * | 1999-09-27 | 2005-05-11 | 皇家菲利浦电子有限公司 | 仿真流的文件分区 |
US6423892B1 (en) * | 2001-01-29 | 2002-07-23 | Koninklijke Philips Electronics N.V. | Method, wireless MP3 player and system for downloading MP3 files from the internet |
US20020120747A1 (en) * | 2001-02-23 | 2002-08-29 | Frerichs David J. | System and method for maintaining constant buffering time in internet streaming media delivery |
US20020194609A1 (en) * | 2001-06-18 | 2002-12-19 | Tran Thanh T. | Video client with dynamically allocable video buffer for efficiently streaming video |
US6792449B2 (en) * | 2001-06-28 | 2004-09-14 | Microsoft Corporation | Startup methods and apparatuses for use in streaming content |
US20030005455A1 (en) * | 2001-06-29 | 2003-01-02 | Bowers J. Rob | Aggregation of streaming media to improve network performance |
US7047308B2 (en) * | 2001-08-31 | 2006-05-16 | Sharp Laboratories Of America, Inc. | System and method for simultaneous media playout |
US20030221014A1 (en) * | 2002-05-24 | 2003-11-27 | David Kosiba | Method for guaranteed delivery of multimedia content based on terminal capabilities |
CN1210956C (zh) * | 2002-06-19 | 2005-07-13 | 华为技术有限公司 | 视讯会议流媒体实时接收存储方法 |
US7548585B2 (en) * | 2003-02-10 | 2009-06-16 | At&T Intellectual Property I, L.P. | Audio stream adaptive frequency scheme |
US9191702B2 (en) * | 2003-04-17 | 2015-11-17 | Thomson Licensing | Data requesting and transmitting devices and processes |
US9612965B2 (en) * | 2003-06-24 | 2017-04-04 | Hewlett-Packard Development Company, L.P. | Method and system for servicing streaming media |
-
2004
- 2004-12-24 CN CNB2004101028513A patent/CN100393068C/zh active Active
-
2005
- 2005-12-23 EP EP20050822563 patent/EP1833253A4/en not_active Withdrawn
- 2005-12-23 KR KR20077017078A patent/KR100874696B1/ko active IP Right Grant
- 2005-12-23 JP JP2007547151A patent/JP4955571B2/ja active Active
- 2005-12-23 WO PCT/CN2005/002301 patent/WO2006066513A1/zh active Application Filing
-
2007
- 2007-06-21 US US11/766,320 patent/US20070283035A1/en not_active Abandoned
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141368B (zh) * | 2006-09-05 | 2010-05-12 | 硅谷数模半导体(北京)有限公司 | 用于控制流媒体数据回放处理速率的方法和装置 |
CN101155132B (zh) * | 2006-09-27 | 2012-07-04 | 中兴通讯股份有限公司 | 一种间接实时流量控制***及其方法 |
CN100593928C (zh) * | 2006-09-30 | 2010-03-10 | 中国科学院计算技术研究所 | 一种基于数据特征的流媒体内容下载方法 |
CN101282348B (zh) * | 2007-04-06 | 2011-03-30 | 上海晨兴电子科技有限公司 | 运用http协议实现流媒体功能的方法 |
WO2009033345A1 (fr) * | 2007-09-11 | 2009-03-19 | Zte Corporation | Procédé pour télécharger et lire simultanément des supports en flux de transfert hypertexte |
CN102117271B (zh) * | 2009-12-31 | 2013-06-19 | Tcl集团股份有限公司 | 一种播放封装错位音视频文件的方法及装置 |
CN102170459A (zh) * | 2010-12-22 | 2011-08-31 | 青岛海信宽带多媒体技术有限公司 | 播放器网络资源下载与播放的实现方法及播放器 |
CN102761523A (zh) * | 2011-04-27 | 2012-10-31 | 宏碁股份有限公司 | 网络串流内容播放方法及*** |
CN103108257A (zh) * | 2011-11-10 | 2013-05-15 | 中国科学院声学研究所 | 一种用于嵌入式终端改善流媒体播放质量的方法及*** |
CN103108257B (zh) * | 2011-11-10 | 2016-03-30 | 中国科学院声学研究所 | 一种用于嵌入式终端改善流媒体播放质量的方法及*** |
CN103391468A (zh) * | 2012-05-08 | 2013-11-13 | 安凯(广州)微电子技术有限公司 | 一种基于移动终端的网络视频数据的缓冲控制方法及*** |
CN103391468B (zh) * | 2012-05-08 | 2016-12-14 | 安凯(广州)微电子技术有限公司 | 一种基于移动终端的网络视频数据的缓冲控制方法及*** |
CN103051955A (zh) * | 2012-12-21 | 2013-04-17 | 华为技术有限公司 | 流媒体播放方法及装置 |
CN103051955B (zh) * | 2012-12-21 | 2016-08-03 | 华为技术有限公司 | 流媒体播放方法及装置 |
CN103096133B (zh) * | 2013-01-11 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种数据的获取方法及装置 |
CN103096133A (zh) * | 2013-01-11 | 2013-05-08 | 乐视网信息技术(北京)股份有限公司 | 一种数据的获取方法及装置 |
CN105338022A (zh) * | 2014-07-07 | 2016-02-17 | 深圳市云帆世纪科技有限公司 | 基于p2p的数据传输方法及*** |
CN105245940A (zh) * | 2015-10-08 | 2016-01-13 | 北京时医康科技发展有限公司 | 一种窄带宽在线播放高清视频的方法及播放器 |
CN105450873A (zh) * | 2015-12-08 | 2016-03-30 | 深圳天珑无线科技有限公司 | 一种温度控制方法和终端设备 |
CN110895515A (zh) * | 2018-09-12 | 2020-03-20 | 中兴通讯股份有限公司 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
CN113079394A (zh) * | 2021-03-27 | 2021-07-06 | 深圳市研强物联技术有限公司 | Asr平台语音助手实现流媒体播放的方法、***及终端 |
Also Published As
Publication number | Publication date |
---|---|
KR100874696B1 (ko) | 2008-12-18 |
JP4955571B2 (ja) | 2012-06-20 |
JP2008526057A (ja) | 2008-07-17 |
CN100393068C (zh) | 2008-06-04 |
KR20070092750A (ko) | 2007-09-13 |
EP1833253A1 (en) | 2007-09-12 |
EP1833253A4 (en) | 2009-07-01 |
WO2006066513A1 (fr) | 2006-06-29 |
US20070283035A1 (en) | 2007-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1798097A (zh) | 一种缓存流媒体数据的方法 | |
US11374995B2 (en) | Multimedia file processing | |
CN1277405C (zh) | 一种网络多媒体信息快速播放方法及相应的机顶盒设备 | |
CN101075949A (zh) | 一种改变流媒体文件播放速度的方法 | |
CN100336402C (zh) | Mpeg-2单节目传输流多路复用方法 | |
CN105025351B (zh) | 流媒体播放器缓冲的方法及装置 | |
CN101079721A (zh) | 一种在网络直播环境中轮播缓冲广告的方法及*** | |
CN1540919A (zh) | 流媒体运营的个性化广告实现方法 | |
CN1754370A (zh) | 用于广播多媒体内容的*** | |
CN1870717A (zh) | 一种网络电视用机顶盒 | |
WO2009033345A1 (fr) | Procédé pour télécharger et lire simultanément des supports en flux de transfert hypertexte | |
CN1826592A (zh) | 内容输出设备 | |
CN1551643A (zh) | 移动通信***的基于超文本传输协议的视频流设备和方法 | |
CN103596036B (zh) | 一种流媒体播放器智能缓冲方法 | |
CN101056385A (zh) | 视频通信方法、视频合成处理器、终端及服务器 | |
CN1801678A (zh) | 一种数字广播中的内容播放方法、***及接收装置 | |
CN1898962A (zh) | 通过适配编码特性以传送内容的方法 | |
CN1647480A (zh) | 将下载和流式传输组合的传输方法 | |
CN104202656B (zh) | 网络音频mp3流乱序分段解码方法 | |
CN108337553A (zh) | 一种多媒体数据预下载方法 | |
CN1623329A (zh) | 视频图像信息分发装置以及接收装置 | |
CN1540948A (zh) | 数据接收和重放装置、方法以及处理程序 | |
CN101047846A (zh) | 一种在流媒体***上使用书签的方法 | |
CN1133926C (zh) | 一种机顶盒软件动态升级的方法 | |
CN101047844A (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 |