CN100393068C - 一种缓存流媒体数据的方法 - Google Patents

一种缓存流媒体数据的方法 Download PDF

Info

Publication number
CN100393068C
CN100393068C CNB2004101028513A CN200410102851A CN100393068C CN 100393068 C CN100393068 C CN 100393068C CN B2004101028513 A CNB2004101028513 A CN B2004101028513A CN 200410102851 A CN200410102851 A CN 200410102851A CN 100393068 C CN100393068 C CN 100393068C
Authority
CN
China
Prior art keywords
buffer memory
medium data
stream medium
play
cache
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
Application number
CNB2004101028513A
Other languages
English (en)
Other versions
CN1798097A (zh
Inventor
王麒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2004101028513A priority Critical patent/CN100393068C/zh
Priority to PCT/CN2005/002301 priority patent/WO2006066513A1/zh
Priority to KR20077017078A priority patent/KR100874696B1/ko
Priority to EP20050822563 priority patent/EP1833253A4/en
Priority to JP2007547151A priority patent/JP4955571B2/ja
Publication of CN1798097A publication Critical patent/CN1798097A/zh
Priority to US11/766,320 priority patent/US20070283035A1/en
Application granted granted Critical
Publication of CN100393068C publication Critical patent/CN100393068C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising 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/43072Synchronising 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/44004Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct 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秒。
CNB2004101028513A 2004-12-24 2004-12-24 一种缓存流媒体数据的方法 Active CN100393068C (zh)

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 CN1798097A (zh) 2006-07-05
CN100393068C true 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)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
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协议实现流媒体功能的方法
JP2009044416A (ja) * 2007-08-08 2009-02-26 Sony Corp コンテンツ再生装置、コンテンツ再生方法、プログラム、およびコンテンツ再生システム
CN101127989A (zh) * 2007-09-11 2008-02-20 中兴通讯股份有限公司 一种支持手机超文本传输流媒体业务的方法
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
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 宏碁股份有限公司 网络串流内容播放方法及系统
CN103108257B (zh) * 2011-11-10 2016-03-30 中国科学院声学研究所 一种用于嵌入式终端改善流媒体播放质量的方法及系统
CN103391468B (zh) * 2012-05-08 2016-12-14 安凯(广州)微电子技术有限公司 一种基于移动终端的网络视频数据的缓冲控制方法及系统
US8745259B2 (en) * 2012-08-02 2014-06-03 Ujam Inc. Interactive media streaming
CN103023754A (zh) * 2012-12-06 2013-04-03 苏州阔地网络科技有限公司 一种网页上数据流控制的方法及系统
CN103051955B (zh) * 2012-12-21 2016-08-03 华为技术有限公司 流媒体播放方法及装置
CN103916414B (zh) * 2012-12-31 2017-09-05 华为技术有限公司 传输速率配置方法、终端设备、服务器及系统
CN103096133B (zh) * 2013-01-11 2016-08-24 乐视网信息技术(北京)股份有限公司 一种数据的获取方法及装置
RU2016121189A (ru) * 2013-11-25 2018-01-09 Лэ Ши Чжи Синь Электроник Технолоджи (Тяньцзинь) Лимитэд Способ воспроизведения видео, устройство и интеллектуальный терминал
CN105338022B (zh) * 2014-07-07 2019-04-23 深圳市云帆世纪科技有限公司 基于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平台语音助手实现流媒体播放的方法、系统及终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1336064A (zh) * 1999-09-27 2002-02-13 皇家菲利浦电子有限公司 仿真流的文件分区
US20030005139A1 (en) * 2001-06-28 2003-01-02 Colville Scott E. Startup methods and apparatuses for use in streaming content
CN1466385A (zh) * 2002-06-19 2004-01-07 华为技术有限公司 视讯会议流媒体实时接收存储方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
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
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
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
US7548585B2 (en) * 2003-02-10 2009-06-16 At&T Intellectual Property I, L.P. Audio stream adaptive frequency scheme
DE602004013567D1 (de) * 2003-04-17 2008-06-19 Thomson Licensing Datenabrufende und -übertragende vorrichtungen und verfahren
US9612965B2 (en) * 2003-06-24 2017-04-04 Hewlett-Packard Development Company, L.P. Method and system for servicing streaming media

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1336064A (zh) * 1999-09-27 2002-02-13 皇家菲利浦电子有限公司 仿真流的文件分区
US20030005139A1 (en) * 2001-06-28 2003-01-02 Colville Scott E. Startup methods and apparatuses for use in streaming content
CN1466385A (zh) * 2002-06-19 2004-01-07 华为技术有限公司 视讯会议流媒体实时接收存储方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
连续媒体流的理论模型及缓冲对策研究. 吴飞,任鸿,陈福接.计算机学报,第22卷第1期. 1999
连续媒体流的理论模型及缓冲对策研究. 吴飞,任鸿,陈福接.计算机学报,第22卷第1期. 1999 *

Also Published As

Publication number Publication date
CN1798097A (zh) 2006-07-05
EP1833253A1 (en) 2007-09-12
JP2008526057A (ja) 2008-07-17
KR20070092750A (ko) 2007-09-13
US20070283035A1 (en) 2007-12-06
KR100874696B1 (ko) 2008-12-18
JP4955571B2 (ja) 2012-06-20
WO2006066513A1 (fr) 2006-06-29
EP1833253A4 (en) 2009-07-01

Similar Documents

Publication Publication Date Title
CN100393068C (zh) 一种缓存流媒体数据的方法
US11457088B2 (en) Adaptive transfer rate for retrieving content from a server
CN104205772B (zh) 具有缓冲器水位决策的改进的dash客户端和接收机
CN102549999B (zh) 使用协作式并行http和前向纠错的增强型块请求流送
CN106209892B (zh) 使用可伸缩编码的增强型块请求流送
CN105025351B (zh) 流媒体播放器缓冲的方法及装置
CN104967884B (zh) 一种码流切换方法和装置
US20130067052A1 (en) User adaptive http stream manager and method for using same
CN109565620A (zh) 低延迟http实时流传输
CN1980377A (zh) 一种智能插播素材的方法
CN101127989A (zh) 一种支持手机超文本传输流媒体业务的方法
CN106658054B (zh) 一种视频广告请求链路优化方法和装置
CN107196963A (zh) 使用url模板和构造规则的增强型块请求流送
CN102724585A (zh) 一种用于终端设备网络视频播放预加载的方法及装置
CN101636726A (zh) 包含连续播放的视频分配系统
CN105916058A (zh) 一种流媒体缓冲播放方法、装置及显示设备
CN101702676B (zh) 数据缓冲处理的方法和装置
CN102656897A (zh) 内容分发系统、内容分发装置、内容再生终端及内容分发方法
CN101068341B (zh) 流媒体调度系统及其媒体文件调度方法
WO2012146098A1 (zh) 一种流媒体存储、播放方法及相应系统
CN107690090A (zh) 视频播放方法以及使用所述视频播放方法的电子装置
US10917675B2 (en) System and method for intelligent delivery of segmented media streams
CN108574883A (zh) 实现多个cdn并行下载视频切片的方法
CN102196312A (zh) 音视频数据流的播放方法及装置
CN110225399A (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