CN100456284C - 用于流媒体的分散高速缓存 - Google Patents
用于流媒体的分散高速缓存 Download PDFInfo
- Publication number
- CN100456284C CN100456284C CNB038018497A CN03801849A CN100456284C CN 100456284 C CN100456284 C CN 100456284C CN B038018497 A CNB038018497 A CN B038018497A CN 03801849 A CN03801849 A CN 03801849A CN 100456284 C CN100456284 C CN 100456284C
- Authority
- CN
- China
- Prior art keywords
- media
- cache
- stream
- segment
- high speed
- 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.)
- Expired - Fee Related
Links
- 238000003860 storage Methods 0.000 claims abstract description 148
- 238000000034 method Methods 0.000 claims abstract description 61
- 239000012530 fluid Substances 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 32
- 230000009471 action Effects 0.000 claims description 10
- 230000014509 gene expression Effects 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims 1
- 238000013507 mapping Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/163—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
-
- 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/233—Processing of audio elementary streams
- H04N21/2335—Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- 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/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- 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/432—Content retrieval operation from a local storage medium, e.g. hard-disk
- H04N21/4325—Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
-
- 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
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6581—Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了系统,方法,和数据结构,允许一种方式的高速缓存流媒体文件,允许存储和检索流媒体文件的部分,它们是时间非连续的和/或以不同的比特率被编码的。
Description
技术领域
本发明涉及用于流媒体的分散(sparse)高速缓存。
背景技术
媒体流是用于经诸如因特网或内部网等网络发送来自流媒体文件或从活动的流体源的音频/视频呈现和其它数据从一个位置到另一个位置的处理过程。典型的,媒体流包括从服务器发送流媒体文件到客户,客户那里可以使用媒体播放器呈现流媒体文件(观看和/或收听)。此外,媒体流也可以对等的被实现。不像非流媒体传送技术那样,在可以被呈现之前需要被传送全部的媒体文件,媒体流允许呈现部分的流媒体文件,当被发送或流到客户时。
媒体流也可以是单路传送通信,其中流媒体文件从服务器流动到单个客户,或者多址通信,其中流媒体文件从服务器流动到多个客户。此外,媒流体也可以是活动的,其中包括表现活动事件的数据的流媒体文件随着它的出现流动,或是经要求的,其中当它被请求时流媒体文件被存储在流媒体文件中和流动。经要求的媒体流是典型的单路传送通信,具有发生在服务器和每个客户之间的独立的流动事件。
基本的流媒体典型的包括至少两个流:视频流和音频流。更为复杂的流媒体文件将包括多个视频和/或音频流,每个流以不同的比特率进行编码(即多比特率编码)。例如,视频的给定的部分或流体被存储在六个不同视频流的多比特率编码的流媒体文件中,每个流体在不同的比特率上进行编码。当客户从服务器请求流媒体文件时,作出有关服务器和客户之间进行带宽的链接的决定。然后,基于预定的带宽标准,六个视频流的其中之一和一个音频流被选择用于传输到客户。例如,可以选择视频和音频流以便它们组合的比特率小于可用链接带宽的预定的百分率。如果,在流体处理过程中的一些点上,服务器和客户之间的链接带宽增加或减少,则选择音频和视频流的不同的组合以满足预定的带宽标准。这种基于可用带宽的从多比特率编码的流媒体文件中的“流体选择”类型普遍被称作“智能流体”。
在一些客户系统中,通过在播放流体之前,在客户上高速缓存一些或所有接收的流媒体文件,从而增强流体验(experience)。在播放它们之前的高速缓存流体减少了在客户端中断播放流媒体文件的网络连接问题的可能性。而且,在一些系统中,利用高速缓存可以完成某些最小使用的流体导航(倒带,重放)。
对于多比特率编码和/或媒体流高速缓存来说,目前存在的一个问题是没有一种方法用于存储可变比特率的流体或非时间相邻的流体,并接着以无缝方式被访问。典型的,由于带宽的改变,当在流媒体文件中的媒体流之间作出切换时,先前的流媒体文件的高速缓存部分被丢弃同时建立新的流体高速缓存。同样的,当在流媒体文件中的暂时的非相邻位置之间作出转移(jump)时,比如搜索操作,丢弃任何先前高速缓存的流媒体文件的部分同时建立新的流高速缓存。
下面针对这些和其他的问题描述各种系统,方法,和数据结构。
发明内容
在此描述的有关高速缓存流媒体文件方式中的各种系统,方法,和数据结构允许存储和检索时间非相邻的和/或不同比特率上被编码的流媒体文件部分。
根据一种实现方式,使用高速缓存机制,利用独特的中间存储机制,允许在高速缓存文件中存储这样的时间非相邻的和/或各种流媒体文件的部分,并从其存取。根据另一种实现方式,使用独特的高速缓存文件结构,允许在公用文件中存储这样的时间非相邻的和/或各种流媒体文件的部分,并从其存取。
根据本发明的一种方法包括:接收流媒体文件的多个时间非连续部分,其中至少第一和第二非连续部分以不同的比特率编码;和在单一高速缓存文件中存储所述多个时间非连续部分。
根据本发明的一种方法包括:生成多个媒体高速缓存流,每个媒体高速缓存流与唯一比特率相关;接收流媒体文件的多个部分,每个部分与流媒体文件的唯一的时间部分相关;在与一比特率相关的媒体高速缓存流的媒体高速缓存段中存储每个部分,其中所述部分是依照所述比特率被编码的,至少两个部分被存储在位于不同媒体高速缓存流中的媒体高速缓存段中;在单一的高速缓存文件中存储每个媒体高速缓存流。
根据本发明的一种系统包括:数据存储模块;高速缓存模块,可操作的接收和在数据存储模块的高速缓存文件中存储流媒体文件的多个时间非连续的部分,多个时间非连续部分中的两个或多个以不同的比特率编码。
根据本发明的一种装置,包括:用于存储从高速缓存文件中的流媒体源接收的流媒体文件的多个时间非连续部分的设备,多个时间非连续部分中的每个以不同的比特率编码。
根据本发明的一种装置,包括:用于存储多个数据页面的设备,所述多个数据页面包括表示从流媒体源接收的流媒体文件的多个时间非连续部分的数据,至少两个时间非连续部分以不同的比特率编码。
根据本发明的一种装置,包括:处理器;和用于存储一个或多个字节高速缓存段的多个数据页面的设备,其中从流媒体文件的时间非连续部分导出每个字节高速缓存段,并且至少两个时间非连续部分是以不同的比特率编码;所述设备还存储首部页面,其包括描述数据页面的一个或多个特征的信息。
根据本发明的一种系统包括:用于接收流媒体文件的多个时间非连续部分的装置,其中至少两个时间非连续部分以不同的比特率被编码;和用于在数据结构中相关和存储多个时间非连续部分的装置,其中所述数据结构包括一个或多个字节高速缓存段的多个数据页面,其中从流媒体文件的时间非连续部分导出每个字节高速缓存段,所述数据结构还包括首部页面,其包括描述数据页面的一个或多个特征的信息。
附图说明
图1示例了网络环境,其中可以使用在此所述的各种系统,方法,和数据结构。
图2示例了客户和服务器装置。
图3示例了媒体流数据的安排和格式。
图4示例了高速缓存文件的数据结构。
图5示例了包括各种用于记录流媒体的操作流程图。
图6示例了包括各种用于播放流媒体的操作流程图。
图7示例了普通的计算机环境,能被用于实现在此所述的系统,方法,和数据结构。
具体实施方式
通常,在此描述的有关高速缓存流媒体文件方式中的各种系统,方法,和数据结构允许存储和检索时间非相邻的和/或在不同比特率上被编码的流媒体文件部分。如将要描述的,客户端高速缓存机制使用独特的中间存储机制和独特的高速缓存文件结构,允许在高速缓存文件中存取这种“不同的(dissimilar)”流媒体文件部分。
示例环境
图1示例了网络环境100。在环境100中,多个(x)客户装置102(1),102(2),.....102(x)经网络106被耦合到多个(y)服务器装置104(1),104(2),....104(y)。网络106意在表示任何各种常规的网络拓扑和类型(包括有线和/或无线网络)。网络106可以包括,例如,因特网,内部网,广域网(WAN),局域网(LAN),和/或任何这些或其他网络的各种组合。
应该理解,在此使用的服务器装置可以是任何流媒体文件的源的装置或处理过程,客户装置可以是任何接收流媒体文件的装置或处理过程(例如在客户装置上展现给用户)。例如,在对等网络中,流媒体文件的源的装置或处理过程可以被称作服务器装置,同时接收流媒体文件的装置或处理过程可以被称作客户装置。
根据在此所述的各种实施例,使用任何各种常规的通信协议(包括公共的和/或专用的协议),可以发生客户装置102和服务器装置104之间的通信。在一个实施过程中,使用超文本传输协议(HTTP)版本发生装置102和104之间的通信。在另一个实施过程中,使用实时流协议(RTSP)发生装置102和104之间的通信。换言之,可以使用其他的协议,比如对话启动协议(SIP),简单对象访问协议(SOAP),等等。
每个装置102和104都可以是任何常规的计算装置,包括台式PC,工作站,主机,因特网装置,游戏控制台,手提PC,蜂窝电话,个人数字助理(PDA),机顶盒等等。一个或多个装置102和104可以是相同类型的装置,或可替换的不同类型的装置。
尽管未显示,在客户装置102和服务器装置104之间可以设置一个或多个附加的装置(例如,防火墙,路由器,网关,桥,多个代理服务器等等)。应该注意的是,多个客户装置102可以访问单一的服务器装置104,并且单一的客户装置102可以访问多个服务器装置146。
图2示例了服务器装置104。如图所示,服务器装置104包括流体模块220和一个或多个流媒体文件222。例如,服务器装置104可以是图1中的源服务器装置104,或可替换的另一个装置(例如,代理装置)。通常,流体模块220起到接收用于流媒体文件的请求的功能,或者一部分流媒体文件,比如从客户装置102,和流到流媒体文件222或一部分文件到请求者。
“媒体文件”包括可以由媒体播放机反映的一个或多个数字流信息。典型的,媒体文件将包括时间同步的两个或多个流。媒体文件还可以包括独立的其他的流体。媒体文件的内容可能或不可能被压缩。在此所用的术语“流媒体文件”表示经网络提供给客户的媒体文件,并且在媒体文件以整体被传送之前可以开始媒体文件的重放(例如根据所需要的基础提供媒体文件而不是在重放之前以它的整体预传输数据)。流媒体文件可以是公共可用的或者有限可替换的(例如,限制到只有确定的用户,只有适当的付费才可用等等)。流媒体文件可以是各种一个或多个类型的基于时间的媒体文件的任何一种,其中流媒体文件内的信息规定整个重放过程中一些或所有文件的时间的展现,比如音频,视频,时间的文本展现,动画等等。进一步的,流媒体文件可以是预记录的或可替换的“存在(live)”(例如,当音乐会表演时被捕获的音乐会的数字表现以及在捕获之后立刻产生可用的流)。
流媒体文件222可以根据各种不同的流媒体文件格式被存储和/或流出。例如,流媒体文件可以被存储成静态的流媒体文件。另一方面,从一个或多个流媒体源或发生器的媒体文件222可以是流出“活动的”。在一个实施例中,媒体文件根据ASF格式(先进的系统格式或先进的流格式)被存储和/或流出。有关ASF的附加的信息可以从Redmond,华盛顿的微软公司获得。相同的技术也可以被应用于其它的格式,比如MPEG(运动图象专家组)-1,MPEG-2,MPEG-4,Quicktime等等。
如图所示,客户装置102包括流媒体播放器206,网络模块208,高速缓存模块210,和一个或多个高速缓存文件216。包括在高速缓存模块210中的是媒体高速缓存模块212和字节高速缓存模块214。如所示的,一个或多个高速缓存文件被存储在客户102上的数据存储模块218中。
通常,流媒体播放器206提供一个装置,通过它可以由用户选择流媒体文件222以便在客户装置102上展现。根据一个实施例,流媒体播放器206是客户装置102上的处理器执行的应用程序或Java程序(applet)。流媒体播放器206是可操作的用于接收和解码流媒体文件并把流媒体文件的内容传送到客户装置102上的适当的视频和音频输出装置。
通常,网络模块208起到是流媒体播放器206和各种流媒体文件源之间的一种“网关”类型的作用。在该容量上,网络模块208执行许多有关建立流媒体播放器206和各种流媒体源之间的连接的功能。例如,根据一个实施例,网络模块208建立流媒体播放器206和服务器装置104之间的网络连接。网络模块208还建立流媒体播放器206和高速缓存模块210之间的网络连接。
此外,网络模块208执行许多有关的功能,确定流媒体播放器206从许多可用流媒体源中的哪个接收数据。例如,根据一个实施例,对于所有或部分的特殊的流媒体呈现,响应于从流媒体播放器206接收的请求,通过从先前存储的高速缓存文件216中检索请求的数据网络模块208确定是否请求能被满足,或是否需要从服务器装置中检索请求的数据。
根据一个实施例,基于各种不同的因素,网络模块208确定流模块220和网络模块208之间的流媒体文件的流体率。这可以以任何各种常规的方式来确定,比如在装置102和104之间发送测试消息,监测在装置102和104之间的连接状态,从流模块220接收可用带宽指示等等。给定当前的可用带宽,网络模块208开始请求流体率,它是小于当前带宽的特殊量。该特殊量可以是固定的(例如总是50kbps)或动态的(例如当前可用带宽的15%,或当前可用带宽的5%和25%之间)。
根据一个实施例,网络模块208生成或示例了媒体高速缓存模块212,如下所述。根据该实施例,网络模块可以生成或示例单一的网络模块或多个网络模块。由网络模块208执行的其他的功能可以包括但没有限制为,确定是否有关特殊流媒体呈现的高速缓存文件被存储在数据存储模块中和在数据存储模块中生成高速缓存文件。作为客户装置102一部分的常规的元件可以有选择地用于辅助网络模块208。例如,在一个实施例中,微软因特网浏览器程序包括高速缓存管理功能性,比如监视高速缓存中项目的终止和/或无用信息的收集,而且在执行以上概述的网络模块的各种操作中网络模块208可以使用这种功能性。
根据一个实施例,数据存储模块218包括非易失性存储器。例如,但并非限制,数据存储模块218可以由一个或多个非易失性存储器装置组成,比如磁的或光的存储装置,磁光存储装置,非易失性RAM,或其它类型的非易失性存储装置。根据另一个实施例,数据存储模块218包括一个或多个类型的易失性存储装置。
高速缓存模块210提供一种机制,通过它流媒体文件可以被写到数据存储模块218中的高速缓存文件216并从中读取。如所示的,高速缓存模块210包括媒体高速缓存模块212和字节高速缓存模块214。如下面所详述的,媒体高速缓存模块212和字节高速缓存模块214的每个生成和/或管理一个或多个中间数据结构,其中存储了接收的流媒体的各种部分和安排。
媒体高速缓存模块212对接收的流媒体文件提供中间数据结构。特别的是,媒体高速缓存模块212生成一个或多个计算机可读介质五种类型的数据结构,媒体高速缓存流,媒体高速缓存段,媒体高速缓存首部段,字节高速缓存索引段,和字节高速缓存数据段。在操作中,媒体高速缓存模块212生成单一的媒体高速缓存首部段和许多媒体高速缓存流以及用于被接收的每个媒体文件的媒体高速缓存段。媒体高速缓存模块212生成和管理用于每个不同类型的媒体高速缓存流和编码通过客户装置102在流媒体文件中接收的流体的比特率。如在此所使用的,流的“类型”涉及流体的格式或功能(例如音频或视频)。应该理解,流体的编码比特率是一种比特率,其中流被原始地存储在流媒体文件中。比如,如果媒体高速缓存模块212从流媒体文件接收三个视频流,每个具有不同的比特率,和两个音频流,每个具有不同的比特率,媒体高速缓存模块212将产生五个不同的媒体高速缓存流。在操作中,媒体高速缓存模块212将生成新的媒体高速缓存流,每次通过媒体高速缓存模块212接收一个新的媒体流的类型或比特率。
当通过媒体高速缓存模块212接收流体时,接收的流体内的数据被存储在相同类型和比特率的媒体高速缓存流内的媒体高速缓存段中(例如逻辑相关的)而作为接收的流体。例如,如果通过媒体高速缓存模块212接收在X比特率上被编码的视频流,来自接收流的数据将被存储在“视频”类型的媒体高速缓存流中,具有相关的X比特率。如果还没有生成X比特率上被编码的类型“视频”的媒体高速缓存流,媒体高速缓存模块212将生成这样的媒体高速缓存流。一旦媒体高速缓存模块212已经生成了用于接收流的给定类型和比特率的媒体高速缓存流,媒体高速缓存模块212将生成单独的媒体高速缓存段来用于接收流的每个时间的非连续部分。在此所使用的,术语“时间非连续的”涉及接收流或流媒体文件的部分,在整个重放过程中,对于时间上展现它们的内容来说,它们彼此不相邻。同样,媒体高速缓存模块212将生成单独的给定媒体高速缓存流中的媒体高速缓存段来及时用于不直接相邻的接收流的每个部分,相对于接收流的时间结构,到给定媒体高速缓存流中的另一个媒体高速缓存流。
图3示例了媒体高速缓存流的一种安排的展现300和对于假设的流媒体文件的通过媒体高速缓存模块212生成的媒体高速缓存段。所示的媒体高速缓存流和段与时间轴340垂直对准,其中时间轴表示流媒体文件的播放时间。
如所示的,媒体高速缓存模块212已经生成了三个单独的媒体高速缓存视频流:媒体高速缓存视频流(1)310,媒体高速缓存视频流(2)312,和媒体高速缓存视频流(3)314,每个与不同的比特率相关。此外,媒体高速缓存模块212已经生成两个单独的媒体高速缓存音频流:媒体高速缓存音频流(1)316,和媒体高速缓存音频流(2)318,每个与不同的比特率相关。
如所示的,媒体高速缓存模块212已经生成:媒体高速缓存视频流(1)310内的两个时间非连续的媒体高速缓存视频段320和326;媒体高速缓存视频流(2)312内的一个媒体高速缓存视频段322;和媒体高速缓存视频流(3)内的一个媒体高速缓存视频段324。另外,媒体高速缓存模块212已经生成:媒体高速缓存音频流(1)内的一个媒体高速缓存音频段328;和媒体高速缓存音频流(2)内的一个媒体高速缓存段330。
所注意的,对于每个接收的流媒体文件,媒体高速缓存模块212还生成媒体高速缓存首部段数据结构媒体高速缓存首部段,包括文件识别符字段,媒体高速缓存段计数字段,一个或多个媒体高速缓存段信息字段,和/或流媒体文件说明。
根据一个实施例,文件识别符字段包括识别高速缓存文件的全球唯一识别符(GUID),其中存储给定流媒体文件的每个媒体高速缓存流和段的数据。媒体高速缓存段计数字段存储一个数,表示具有存储在高速缓存文件中的数据的全部数量的媒体高速缓存段。针对具有存储在高速缓存文件中的数据的每个媒体高速缓存段,每个媒体高速缓存段信息字段存储媒体高速缓存段信息数据结构。
媒体高速缓存段信息数据结构包括诸字段,包含一些或全部有关具有高速缓存文件中的数据的单一的媒体高速缓存段的下列信息:媒体高速缓存段的识别符;流识别符,规定包括媒体高速缓存段的媒体高速缓存流;段开始位置指示符,表明包括媒体高速缓存段的媒体高速缓存流中媒体高速缓存段的开始;段结束位置识别符,表明包括媒体高速缓存段的媒体高速缓存流中媒体高速缓存段的结束;流大小指示符,规定包括媒体高速缓存段的媒体高速缓存流的大小;先前段识别符,即使有的话,规定媒体高速缓存段直接在媒体高速缓存流中的媒体高速缓存段之前;下一个段识别符,即使有的话,规定媒体高速缓存段直接在媒体高速缓存流中的媒体高速缓存段之后,和段数据类型识别符,规定包括在媒体高速缓存段中的数据的类型(例如,音频,视频等等)。
包括在流媒体文件说明中的信息取决于流媒体文件的格式。然而,通常来说,流媒体文件说明可以包括诸如描述各种媒体文件的流体的信息,用于产生媒体文件内容的编解码器的说明,和/或有关内容的其他的元数据。
在操作中,对于媒体高速缓存模块生成的每个媒体高速缓存段,媒体高速缓存模块212生成字节高速缓存索引段和相关的字节高速缓存数据段。根据一个实施例,并非限制的,每个字节高速缓存数据段包括从其生成的媒体高速缓存段的可展现的数据(例如,音频或视频数据等等)。根据一个实施例,并非限制的,每个字节高速缓存索引包括下列的有关数据的信息,该数据在它的相关的字节高速缓存数据段中;开始时间,持续时间,对字节高速缓存数据段中的数据的补偿,和/或数据的大小。
根据一个实施例,媒体高速缓存模块212生成或例示字节高速缓存模块214,如下所述。根据该实施例,媒体高速缓存模块212可以生成或示例单一的字节高速缓存模块214或多个字节高速缓存模块。
根据预定的高速缓存文件数据结构格式,字节高速缓存模块214尤其用来串行化和存储来自高速缓存文件216中的字节高速缓存索引段和字节高速缓存数据段的数据。图4示例了用于高速缓存文件216的高速缓存文件数据结构格式的这样一个例子。如图所示,高速缓存文件216由许多页面410组成。包括在这些页面中的是首部页412和许多数据页面414-420。通常,数据页面414-420包括通过媒体高速缓存模块212生成的字节高速缓存索引和数据段,同时首部页面412包括描述数据页面一个或多个特性的信息。
如图4所示,首部页面412包括许多首部页面数据字段422。包括在首部页面数据字段422中的是高速缓存文件首部数据字段424和许多高速缓存文件控制记录数据字段426-432。高速缓存文件首部数据字段424进一步包括许多高速缓存首部字段436。包括在高速缓存首部字段436中的是高速缓存首部GUID字段438,标志字段440,自由页面记录442,许多CFCR数据字段444,和外部块ID字段446。高速缓存首部GUID字段438包括唯一的识别高速缓存文件216的全球唯一识别符。标志字段440包括指示符标志,规定是否高速缓存文件包括有效数据。
许多CFCR数据字段444包括识别符,规定包括在首部页面数据字段422中的高速缓存文件控制记录的数量。外部块ID字段446包括指向高速缓存文件中的页面的指示字,它包括附加的高速缓存文件控制记录。外部块ID字段446被用于例子中,其中高速缓存文件中所需要的高速缓存文件记录数大于可以被包括在首部页面412中的高速缓存文件控制记录数。
自由页面记录442包括许多图表记录数据字段441,包括许多自由页面数据字段443,第一外部块ID字段445,和自由页面记录字段447。自由页面数据字段443的数目包括指示高速缓存文件中自由页面数目的识别符。自由页面记录字段447包括一个图表,特别的识别高速缓存文件中各种自由数据页面。在此情况下,自由数据页面的数目超过自由页面记录字段447中能被规定的自由数据页面的数目,第一外部块ID包括指向包括识别附加自由数据页面的数据结构的页面的指针(pointer)。
每个高速缓存文件控制记录426-432与单一的字节高速缓存段相关。通常,每个高速缓存文件控制记录426-432包括定义高速缓存文件216中有关字节高速缓存的它的位置的信息。如图4所示,每个高速缓存文件控制记录包括许多CFCR数据字段448。包括在CFCR数据字段448中的是CFCR GUID字段450,第一页面索引字段452,第一页面补偿字段454,最后页面补偿字段456,和高速缓存页面图表记录458。每个CFCR数据字段448,和它其中包含的信息可以说是与单一的字节高速缓存段相关,与它们属于的高速缓存文件控制记录相关。
GUID字段450包括唯一识别包括高速缓存文件控制记录的全球唯一的识别符。通常,第一页面索引字段452,第一页面补偿字段454,和最后页面补偿字段456,包括定义窗口的地址或范围的地址,其中存储了来自字节高速缓存的数据。
根据一个实施例,第一页面索引字段452包括数据页面中第一页面的地址,数据页面包括它的相关的字节高速缓存字段。第一页面补偿字段454包括指向页面中位置的字,相对于由第一页面索引字段452指示的页面的开始,它的相关的字节高速缓存段的数据的开始。最后页面补偿字段456包括指向页面中位置的字,相对于第一页面索引字段452指示的页面的开始,它的相关的字节高速缓存段的数据的结束。
高速缓存页面图表记录458包括许多图表记录数据字段460,包括许多页面数据字段462,第一外部块ID464,和高速缓存页面记录466。页面数据字段462的数目包括指示数据页面的数目的识别符,数据页面包含来自它的相关字节高速缓存段的数据。高速缓存页面记录字段466包括图表,识别各种数据页面,数据页面包括来自它的相关字节高速缓存段的数据。在此情况下,其中包括来自它的相关字节高速缓存段的数据页面的数目超过高速缓存页面记录字段466中能被规定的数据页面的数目,第一外部块ID字段464包括指向包括识别附加数据页面的数据结构的页面的指针,数据页面包括来自它的相关字节高速缓存段的数据。
图5示例了包括各种操作500的操作流程图,用于接收和存储流媒体文件。根据一个实施例,通过客户装置实现操作流程,比如图2的客户装置102,并可以以软件,固件,硬件,或它们的组合来执行。
如图5所示,在操作流程500的开始,针对所有或部分的指定的流媒体文件作出一个请求510。例如,根据一个实施例,针对特殊的流媒体文件作出请求到服务器装置,比如图2的服务器装置104。跟随着请求510,确定操作512确定是否请求的流媒体文件是可用的。如果确定请求的流媒体文件不是可用的,操作流程500结束。然而,如果确定请求的流媒体文件是可用的,生成高速缓存文件操作514接着生成用于存储请求的流媒体文件的高速缓存文件。根据一个实施例,生成高速缓存文件操作514在数据存储模块中生成高速缓存文件,比如图2的数据存储模块218。
高速缓存文件的生成之后紧接着请求说明操作516从服务器装置请求流媒体文件的说明描述。存储说明操作518接着在生成的高速缓存文件中接收和存储媒体文件说明。接着,选择流媒体文件流操作520从服务器装置选择媒体流以便传送到客户装置。根据一个实施例,至少部分的基于客户装置和服务器装置之间的当前可用带宽,选择流媒体文件流操作520选择用于传送的流体。流确定操作522接着确定是否在高速缓存文件中存在用于选择的流的相应的媒体高速缓存流。就是说,流确定操作522确定是否在高速缓存文件中存在具有与选择的流具有相同类型和比特率的媒体高速缓存流。
如果确定相应的媒体高速缓存流不存在于用于所选流的高速缓存文件中,则生成媒体高速缓存流操作524生成高速缓存文件中相应的媒体高速缓存流。接着相应媒体高速缓存流的生成,生成媒体高速缓存段操作526生成相应于选择的流在操作524中生成的媒体高速缓存流中的媒体高速缓存段。返回到确定操作522,如果确定对于选择的流在高速缓存文件中已经存在于相应的高速缓存流,操作流程旁路生成流媒体高速缓存流操作524,并前进到生成媒体高速缓存段操作526,其中在相应的媒体高速缓存流中生成媒体高速缓存段。接着生成媒体段操作,流操作528接着从选择的流体流出数据到生成的媒体高速缓存段中。
随着来自选择流的数据正流入生成的媒体段高速缓存中,检测搜索操作530确定是否搜索操作正被请求。如果确定搜索操作正被请求,操作流程回到选择流媒体文件流操作。如果确定搜索操作没有正在被请求,操作流程前进到检测带宽操作中的改变532,确定是否由于执行了选择流媒体文件流操作而在客户装置和服务器装置之间的带宽已经发生了改变。如果确定已经出现了带宽中的改变,操作流程返回到流确定操作522。如果确定没有出现带宽中的改变,操作流程前进到流确定操作的末端,其中确定是否选择流媒体文件流操作520中的选择流的末端已经到达。如果确定还没有到达选择流的末端,操作流程500前进回到检测搜索操作530。如果确定已经到达了选择流的末端,操作流程500前进到请求的媒体文件完成确定操作536,其中确定是否在510上请求的媒体文件已经完全地被存储到高速缓存文件。根据一个实施例,如果在可接受的比特率上所有期望的流体已经被完全下载,则确定请求的媒体文件完成。如果确定请求的媒体文件还没有完全地被存储到高速缓存文件,操作流程500返回到选择的流媒体文件流操作520。然而,如果确定请求的媒体文件已经完全地被存储到高速缓存文件,操作流程500结束。
图6示例了操作流程600,包括用于检索和呈现流媒体的各种操作600。操作流程600包括用于选择的检索单一流体的操作,比如单一的视频或音频流,从高速缓存文件,比如高速缓存文件216。应该理解,来自流媒体文件和/或高速缓存文件的多个流体可以根据操作流程600被检索。根据一个实施例,通过客户装置实现操作流程600,比如图2的客户装置102,可以以软件,固件,硬件或它们的组合形式来执行。
如图6所示,在操作流程600的开始,从数据请求者(例如媒体播放器)接收请求以便在特殊类型的流中从期望的点播放数据。例如,对于存储在服务器中特殊的流媒体文件,可以接收请求以便及时的从特殊点开始播放视频流。然而,并非直接到服务器来服务请求,优选的比特率操作612确定是否在优选的比特率上请求的数据在高速缓存文件中是可用的。优选的比特率可以设置或以许多方式来确定。例如,但并非限制的,根据一个实施例,使用数据分组技术来确定优选的比特率。根据另一个实施例,用户可以明确的规定优选的比持率。
如果在优选的比特率上请求的数据在高速缓存文件中是不可用的,服务器请求操作614则从服务器请求该请求的数据和在高速缓存文件中存储请求的数据。接着服务器请求操作614,操作流程返回到优选的比特率操作612。根据一个实施例,在作出许多未成功的尝试以从服务器得到请求的数据之后,对于在低于优选比特率的比特率上是否请求的数据在高速缓存文件中是可用的作出确定。如果是,从高速缓存文件可以访问较低比特率上的请求的数据。
接着,开始点确定操作616确定高速缓存文件中的媒体高速缓存流包括请求的数据的开始点。数据可用操作618接着确定从开始点到流的末端是否请求的数据是可用的。换言之,数据可用操作618确定从开始点到流的末端在流的数据中是否具有任何时间上的断续。如果确定从流的开始点到末端数据是可用的,操作流程前进到确定高速缓存段操作622,确定在包括开始点的确定的媒体高速缓存流中的媒体高速缓存段。然而,如果确定从流的开始点到末端数据是不可用的,操作流程前进到服务器数据请求操作620,从服务器请求需要完成该流体的任何数据,以至于从流的开始点到末端没有时间上的断续。操作流程600接着前进到确定高速缓存段操作622。应该明白的是,在通过服务器数据请求操作620请求已经被作出到服务器之后,操作流程继续。就是说,操作流程不中止,直到操作620中请求的数据从服务器被接收和被存储为止。
接着确定高速缓存段操作622,播放操作624把数据从确定的媒体高速缓存段运送到数据请求者以便播放。当确定的媒体高速缓存段被传送到数据请求者时,搜索确定操作626确定是否搜索已经被请求到确定的媒体高速缓存流中的新的开始点。例如,这可以发生在通过数据请求者执行搜索操作到确定的媒体高速缓存流中的另一个时间位置的时候。如果搜索确定操作626确定搜索已经被请求,操作流程600返回到数据可用操作618。然而,如果搜索确定操作626确定搜索没有被请求,并在来自确定的媒体高速缓存段的数据已经完全被传送到数据请求者之后,高速缓存流末端确定操作628确定是否确定的媒体高速缓存流的末端已经到达。如果确定该确定的媒体高速缓存流的末端还没有到达,下一个高速缓存段操作630确定被访问的确定的媒体高速缓存流中的下一个媒体高速缓存段。然而,如果确定该确定的媒体高速缓存流的末端已经到达,操作流程600前进到文件的末端(EOF)确定操作632,其中确定是否高速缓存文件的末端已经到达。如果确定高速缓存文件的末端还没有到达,操作流程600返回到高速缓存流末端确定操作628。然而,如果确定高速缓存文件的末端已经到达,操作流程600结束。
图5和6已经示例了各种操作流程。应该注意的是,可以按所示的顺序执行图中示例的操作,或采用不同的顺序进行的替换。
图7示例了普通的计算机环境700,能用于实现在此所述的技术。计算机环境700只是计算环境的一个例子,对于计算机和网络结构体系的使用或功能性的范围并不意味着构成任何限制。对于例子计算机环境700所示例了的任何一个或元件的组合来说,也不能把计算机环境700解释成具有任何的依赖性或要求。
计算机环境700包括以计算机702形式的通用计算装置。例如,计算机702可以是图1或2的客户装置102或服务器装置104。计算机702的元件可以包括,但并非局限于,一个或多个处理器或处理单元704,系统存储器706,和耦合包括处理器704-系统存储器706的各种系统元件的系统总线708。
系统总线708表示一个或多个任何几种类型的总线结构,包括存储器总线或存储器控制器,外围装置总线,图像加速口,和使用任何各种总线结构体系的处理器或局部总线。通过示例的方式,这样的体系结构可以包括工业标准结构(ISA)总线,微通道结构总线(MCA),增强ISA总线(EISA),视频电子标准协会(VESA)局部总线,和周边元件扩展接口(PCI)总线以及熟知的的夹层(Mezzanine)总线。
计算机702典型的包括各种计算机可读媒体。该媒体可以是计算机702可访问的任何可用的媒体并包括易失性和非易失性媒体,可移动的和不可移动的媒体。
系统存储器706包括易失性存储器形式的计算机可读媒体,比如随机存取存储器(RAM)710,和/或非易失性存储器,比如只读存储器(ROM)712。基本输入/输出系统(BIOS)714存储在ROM712中,该系统包含诸如在启动期间,帮助计算机702内的元件之间传送信息的基本程序。RAM710典型的包含数据和/或程序模块,被直接地访问到和/或由处理单元704马上操作。
计算机702还可以包括其他的可移动/非移动,易失性/非易失性计算机存储媒体。通过示例方式,图7示例了硬盘驱动器716,用于从非移动,非易失性磁媒体(未显示)读取和写到它们,磁盘驱动718用于从移动,非易失性磁媒体720(例如“软盘”))读取和写到它们,和光盘驱动722用于从移动的,非易失性光盘724读取和写到它们,比如CD-ROM,DVD-ROM,或其他的光媒体。硬盘驱动716,磁盘驱动718,和光盘驱动722通过一个或多个数据媒体接口726的每个被连接到系统总线708。换言之,硬盘驱动716,磁盘驱动718,和光盘驱动722通过一个或多个接口(未显示)可以被连接到系统总线708。
磁盘驱动和它们相关的计算机可读媒体提供非易失性存储的计算机可读指令,数据结构,程序模块,和用于计算机702的其他的数据。尽管举例示例了硬盘驱动716,可移动磁盘驱动720,和可移动光盘驱动724,但应该理解,可以是能存储由计算机访问的数据的其它类型的计算机可读媒体,比如磁带或其他的磁存储装置,闪存卡,CD-ROM,数字化视频光盘(DVD),或者其他可选存储器,随机存储器(RAM),只读存储器(ROM),电可擦除编程的只读存储器(EEPROM),等等,也能被利用来实现示例的计算机系统和环境。
许多程序模块可以被存储在硬盘716,磁盘720,光盘724,ROM712,和/或RAM710,包括示例的方式,操作系统726,一个或多个应用程序728,其他的程序模块730,和程序数据732。
用户能经输入装置输入命令和信息到计算机702中,比如键盘734和指示装置736(例如“鼠标”)。其它的输入装置738(没有特别的显示)可以包括麦克风,控制杆,游戏手柄,卫星盘,序列口,扫描仪等等。这些和其它的输入装置只能经过被耦合到系统总线708的输入/输出接口740被连接到处理单元704,但可以通过其它的接口和总线结构被连接,比如并行口,游戏口,或通用串行总线(USB)。
监视器742或其它类型的显示装置经接口也能被连接到系统总线708,比如视频适配器744。除了监视器742之外,包括诸如扬声器(未显示)和打印机746的其他的输出外部装置经输入/输出接口740被连接到计算机702。
利用逻辑连接到一个或多个远程计算机,计算机702可以运行在网络环境中,比如远程计算装置装置748。通过示例的方式,远程计算装置748可以是个人计算机,便携计算机,服务器,路由器,网络计算机,同等装置装置或其他的公共网络节点等等。远程计算装置748被示例成便携计算机,并可以包括涉及计算机702的在此所述的许多或所有元件和特点。
计算机702和远程计算机748之间的逻辑连接被描述成局域网(LAN)750和普通的广域网(WAN)752。这样的网络环境是办公室中的公共场所,企业-广域计算机网络,内联网,和因特网。
当在LAN网络环境中实现时,计算机702可以经网络接口或适配器754被连接到局域网750。当在WAN网络环境中实现时,计算机702可以包括调制解调器756或其他的装置以便经广域网络752建立通信。可以是计算机702的内部或外部的调制解调器756可以经输入/输出接口740或其他适当的机制被连接到系统总线708。应该理解的是,示例的网络连接是示例性的,可以使用计算机702和748之间建立通信链接的其他的装置。
在网络环境中,比如示例的计算环境700,相对于计算机702所述的程序模块,或其中的部分,可以被存储在远程存储器存储装置中。通过示例的方式,远程应用程序758位于远程计算机748的存储装置上。出于示例的目的,诸如操作系统的应用程序和其他的可执行程序元件在被示例成离散块,尽管这些程序和元件时被认为常可以位于计算装置702的不同的存储元件中,并通过计算机的数据处理器来执行。
在计算机可执行指令的这里所述一般前后关系中可以描述各种模块和技术,比如通过一个或多个计算机或其它装置所执行的程序模块。通常,程序模块包括例程,程序,对象,元件,数据结构等等,执行特殊的任务或实现特殊的抽象数据类型。典型的,程序模块的功能性可以以各个实施例所期望的形式被组合或分配。
这些模块和技术的实现可以通过一些形式的计算机可读媒体来存储或传输。计算机可读媒体可以是计算机可访问的任何的可用媒体。通过示例的方式,但并非限制,计算机可读媒体可以包括“计算机存储媒体”和“通信媒体”。
“计算机存储媒体”包括易失性的和非易失性的,可移动的和不可移动的媒体,以实现在任何方式或技术下的信息存储,比如计算机可读指令,数据结构,程序模块,或其他的数据。计算机存储媒体包括,但不限制,RAM,ROM,EEPROM,闪存或其他的存储器技术,CD-ROM,数字化视频光盘(DVD)或其他的光存储,磁带,磁盘存储或其他的磁存储装置,或任何其他的媒介,能用于存储期望的信息和能被计算机所访问。
“通信媒体”典型的具体实现为计算机可读指令,数据结构,程序块,或模块的数据信号中的其他的数据,比如载波或其它传输机制。通信媒体还可以包括任何信息传送媒体。术语“已调制数据信号”意味着一种信号,具有一个或多个特征集或以以这种方式改变以便在信号中编码信息。通过示例的方式,但不限制,通信媒体包括有线媒体,比如有线网络或直达线路连接,和无线媒体,比如声学的,RF,红外线,和其他的无线媒体。上述的任何组合也可以被包括在计算机可读媒体的范围内。
尽管上述使用了具体的结构特征和/或方法动作的语言,但应该明白,所附权利要求中定义的系统和方法不限于具体的特征或所述的动作。相反,具体的特征和动作被公开作为实现本发明的示例形式。
Claims (36)
1.一种用于存储流媒体文件的方法,包括:
接收流媒体文件的多个时间非连续部分,其中至少第一和第二非连续部分以不同的比特率编码;和
在单一高速缓存文件中存储所述多个时间非连续部分。
2.权利要求1定义的方法,其中第一非连续部分和第二非连续部分包括视频数据。
3.权利要求1定义的方法,其中第一非连续部分和第二非连续部分包括视频数据而第三非连续部分包括音频数据。
4.权利要求1的方法,其中高速缓存文件被存储在非易失性存储器中。
5.权利要求1定义的方法,其中存储的动作包括:
生成多个媒体高速缓存流,每个媒体高速缓存流与唯一的比特率相关;
在与第一非连续部分的比特率相关的媒体高速缓存流中存储第一非连续部分;
在与第二非连续部分的比特率相关的媒体高速缓存流中存储第二非连续部分;和
在高速缓存文件中存储所述的媒体高速缓存流。
6.权利要求1定义的方法,其中存储的动作包括:
生成与第一非连续部分的比特率相关的第一媒体高速缓存流;
在第一媒体段流的媒体高速缓存段中存储第一非连续部分;
生成与第二非连续部分的比特率相关的第二媒体高速缓存流;
在第二媒体高速缓存流的媒体高速缓存段中存储第二非连续部分;
生成用于每个媒体高速缓存段的字节高速缓存索引段和字节高速缓存数据段;和
在高速缓存文件中存储字节高速缓存索引段和字节高速缓存数据段。
7.一种用于存储流媒体文件的方法,包括:
生成多个媒体高速缓存流,每个媒体高速缓存流与唯一比特率相关;
接收流媒体文件的多个部分,每个部分与流媒体文件的唯一的时间部分相关;
在与一比特率相关的媒体高速缓存流的媒体高速缓存段中存储每个部分,其中所述部分是依照所述比特率被编码的,至少两个部分被存储在位于不同媒体高速缓存流中的媒体高速缓存段中;
在单一的高速缓存文件中存储每个媒体高速缓存流。
8.权利要求7定义的方法,其中存储的动作包括:
生成用于每个媒体高速缓存段的字节高速缓存索引段和字节高速缓存数据段;和
在高速缓存文件中存储字节高速缓存索引段和字节高速缓存数据段。
9.权利要求7定义的方法,其中存储的动作包括:
生成用于每个段的字节高速缓存索引段和字节高速缓存数据段;和
在所述高速缓存文件中串行化字节高速缓存索引段和字节高速缓存数据段。
10.权利要求7定义的方法,其中所述高速缓存文件是以非易失性方式存储的。
11.一种用于存储流媒体文件的系统,包括:
数据存储模块;
高速缓存模块,可操作的接收和在数据存储模块的高速缓存文件中存储流媒体文件的多个时间非连续的部分,多个时间非连续部分中的两个或多个以不同的比特率编码。
12.权利要求11定义的系统,其中数据存储模块包括非易失性数据存储装置。
13.权利要求11定义的系统,进一步包括:
处理器;和
其中高速缓存模块包括处理器可执行代码。
14.权利要求11定义的系统,其中高速缓存模块包括:
可操作的媒体高速缓存模块,用于:
存储多个时间非连续部分中的每个作为多个媒体高速缓存流中之一的媒体高速缓存段;和
把每个媒体高速缓存段解析成字节索引段和字节高速缓存数据段。
15.权利要求11定义的系统,其中高速缓存模块包括:
可操作的媒体高速缓存模块,用于:
存储多个时间非连续部分中的每个作为多个媒体高速缓存流中之一的媒体高速缓存段,每个媒体高速缓存流与不同的比特率相关;和
把每个媒体高速缓存段解析成字节索引段和字节高速缓存数据段;
还包括字节高速缓存模块,该模块可操作地在高速缓存文件中存储字节高速缓存索引段和字节高速缓存数据段。
16.权利要求11定义的系统,其中高速缓存模块包括:
可操作的媒体高速缓存模块,用于:
生成多个媒体高速缓存流,每个媒体高速缓存流与唯一的比特率相关;和
在与比特率相关的媒体高速缓存流的媒体高速缓存段中存储每个时间非连续部分,其中时间非连续部分被编码;和
把每个媒体高速缓存段解析成字节高速缓存索引段和字节高速缓存数据段;和
可操作的高速缓存模块,用于:
在所述高速缓存文件中存储字节高速缓存索引段和字节高速缓存数据段。
17.权利要求11定义的系统,其中两个或多个时间非连续部分包括以第一比特率编码的第一视频部分,以第二比特率编码的第二视频部分,和音频部分,和其中第一视频部分,第二视频部分,以及音频部分被存储在不同的媒体高速缓存流中。
18.权利要求11定义的系统,其中:
流媒体文件包括不同的数据类型;和
高速缓存模块可操作地用于:
生成多个媒体高速缓存流,每个媒体高速缓存流与流媒体数据类型以及流媒体编码比特率相关;
在与所述时间非连续部分的流媒体数据类型和流媒体编码比特率相关的媒体高速缓存流中存储每个接收的流媒体数据的时间非连续部分;和
在高速缓存文件中存储媒体高速缓存流。
19.权利要求11定义的系统,其中:
流媒体文件包括不同的数据类型;和
高速缓存模块可操作地用于:
生成多个媒体高速缓存流,每个媒体高速缓存流与流媒体数据类型以及流媒体编码比特率相关;和
在与所述时间非连续部分的流媒体数据类型和流媒体编码比特率相关的媒体高速缓存流中存储每个接收的流媒体数据的时间非连续部分作为媒体高速缓存段;
把每个媒体高速缓存段解析成字节高速缓存索引段和字节高速缓存数据段;和
在高速缓存文件中存储字节高速缓存索引段和字节高速缓存数据段。
20.权利要求11定义的系统,其中高速缓存模块可操作地用于:
存储多个时间非连续部分中的每个作为多个媒体高速缓存流中之一的媒体高速缓存段;
生成映射指定媒体高速缓存段和流体的段/流体图,其中存储了每个时间非连续部分;和
把每个媒体高速缓存段解析成字节高速缓存索引段和字节高速缓存数据段。
21.一种用于存储流媒体文件的装置,包括:
用于存储从高速缓存文件中的流媒体源接收的流媒体文件的多个时间非连续部分的设备,多个时间非连续部分中的每个以不同的比特率编码。
22.权利要求21定义的装置,所述用于存储多个时间非连续部分的设备还包括:
用于接收以第一比特率编码的流媒体文件的第一视频部分的设备;
用于在与第一比特率相关的媒体高速缓存视频流中存储第一视频部分的设备;
用于接收以第二比特率编码的流媒体文件的第二视频部分的设备;
用于在与第二比特率相关的媒体高速缓存视频流中存储第二视频部分的设备;
用于接收流媒体文件的第一音频部分的设备;
用于在媒体高速缓存音频流中存储第一音频部分的设备;和
用于在高速缓存文件中存储音频和视频媒体高速缓存流的设备。
23.权利要求21定义的装置,所述用于存储多个时间非连续部分的设备还包括:
用于接收以第一比特率编码的流媒体文件的第一视频部分的设备;
用于在与第一比特率相关的媒体高速缓存视频流中存储第一视频部分的设备;
用于接收以第二比特率编码的流媒体文件的第二视频部分的设备;
用于在与第二比特率相关的媒体高速缓存视频流中存储第二视频部分的设备;
用于接收以第一比特率编码的流媒体文件的第三视频部分的设备,其中来自第一视频部分的第三视频部分是时间非连续的;
用于在与第一比特率相关的媒体高速缓存视频流中存储第三视频部分的设备;
用于接收流媒体文件的第一音频部分的设备;和
用于在媒体高速缓存音频流中存储第一音频部分的设备;和
用于在高速缓存文件中存储音频和视频媒体高速缓存流的设备。
24.权利要求21定义的装置,所述用于存储多个时间非连续部分的设备还包括:
用于在唯一媒体高速缓存段中存储每个时间非连续部分的设备;
用于形成来自每个媒体高速缓存段的至少两个字节高速缓存段的设备;和
用于在高速缓存文件中存储字节高速缓存段的设备。
25.权利要求21定义的装置,所述用于存储多个时间非连续部分的设备还包括:
用于在至少两个字节高速缓存段中存储每个时间非连续部分的设备;和
用于在高速缓存文件中存储字节高速缓存段设备。
26.一种用于存储流媒体文件的装置,包括:
用于存储多个数据页面的设备,所述多个数据页面包括表示从流媒体源接收的流媒体文件的多个时间非连续部分的数据,至少两个时间非连续部分以不同的比特率编码。
27.一种用于存储流媒体文件的装置,包括:
处理器;和
用于存储一个或多个字节高速缓存段的多个数据页面的设备,其中从流媒体文件的时间非连续部分导出每个字节高速缓存段,并且至少两个时间非连续部分是以不同的比特率编码;
所述设备还存储首部页面,其包括描述数据页面的一个或多个特征的信息
28.权利要求27定义的装置,其中首部页面包括多个高速缓存文件控制记录,每个高速缓存文件控制记录包括描述单一字节高速缓存段在数据页面中的位置的信息。
29.权利要求27定义的装置,其中首部页面包括多个高速缓存文件控制记录,每个高速缓存文件控制记录包括描述数据页面内单一字节高速缓存段位置的信息和表示包括单一字节高速缓存记录的页面数目的信息。
30.权利要求27定义的装置,其中首部页面包括多个高速缓存文件控制记录,每个高速缓存文件控制记录包括描述数据页面内单一字节高速缓存段的开始和结束点的信息。
31.权利要求27的装置,其中:
首部页面包括多个高速缓存文件控制记录;和
至少一个高速缓存文件控制记录包括一个阵列,所述阵列包括高速缓存文件内每个页面的位置。
32.权利要求27定义的装置,其中:
首部页面包括多个高速缓存文件控制记录;和
至少一个高速缓存文件控制记录包括指示包含单一字节高速缓存段的开始的页面的信息,所述至少一个高速缓存文件控制记录还包括指定页面内单一字节高速缓存段的开始索引信息。
33.权利要求27定义的装置,其中:
首部页面包括多个高速缓存文件控制记录;和
至少一个高速缓存文件控制记录包括定义数据页面中单一字节高速缓存段的开始和结束位置的信息。
34.权利要求27定义的装置,其中首部页面包括多个高速缓存文件控制记录,每个高速缓存文件控制记录与单一的字节高速缓存段相关,每个高速缓存文件控制记录识别预定数量的页面,所述预定数量的页面至少包括与高速缓存文件控制记录相关的字节高速缓存段的一部分,每个高速缓存文件控制记录包括指向一个页面的指针,所述被指针指向的页面包括用于识别除所述的至少包括与高速缓存文件控制记录相关的字节高速缓存段的一部分的预定数量的页面之外的预定数量的页面的信息。
35.权利要求27的装置,其中首部页面包括:
预定数量的高速缓存文件控制记录,每个高速缓存文件控制记录包括描述数据页面中单一字节高速缓存段的位置的信息;和
指向高速缓存文件控制记录扩展页面的指针,扩展页面包括除了预订数量高速缓存文件控制记录之外的高速缓存文件控制记录。
36.一种用于存储流媒体文件的系统,包括:
用于接收流媒体文件的多个时间非连续部分的装置,其中至少两个时间非连续部分以不同的比特率被编码;和
用于在数据结构中相关和存储多个时间非连续部分的装置,其中所述数据结构包括一个或多个字节高速缓存段的多个数据页面,其中从流媒体文件的时间非连续部分导出每个字节高速缓存段,所述数据结构还包括首部页面,所述首部页面包括描述数据页面的一个或多个特征的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/632,767 US7941554B2 (en) | 2003-08-01 | 2003-08-01 | Sparse caching for streaming media |
US10/632,767 | 2003-08-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1692353A CN1692353A (zh) | 2005-11-02 |
CN100456284C true CN100456284C (zh) | 2009-01-28 |
Family
ID=34135554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038018497A Expired - Fee Related CN100456284C (zh) | 2003-08-01 | 2003-08-20 | 用于流媒体的分散高速缓存 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7941554B2 (zh) |
EP (1) | EP1676213A4 (zh) |
JP (1) | JP2007529121A (zh) |
KR (1) | KR20060082135A (zh) |
CN (1) | CN100456284C (zh) |
AU (1) | AU2003259936A1 (zh) |
BR (1) | BR0306692A (zh) |
CA (1) | CA2468057A1 (zh) |
MX (1) | MXPA04006412A (zh) |
RU (1) | RU2325686C2 (zh) |
WO (1) | WO2005017779A1 (zh) |
Families Citing this family (110)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6813690B1 (en) * | 2001-06-12 | 2004-11-02 | Network Appliance, Inc. | Caching media data using content-sensitive identifiers |
US7155531B1 (en) * | 2001-06-12 | 2006-12-26 | Network Appliance Inc. | Storage methods and apparatus for streaming media data |
US7386627B1 (en) | 2002-01-29 | 2008-06-10 | Network Appliance, Inc. | Methods and apparatus for precomputing checksums for streaming media |
US20040193609A1 (en) * | 2003-03-26 | 2004-09-30 | Sony Corporation | Master content directory service server for providing a consolidated network-wide content directory |
US20050055352A1 (en) * | 2003-09-08 | 2005-03-10 | Sony Corporation | Content directory and synchronization bridge |
US20050055722A1 (en) * | 2003-09-09 | 2005-03-10 | Sony Corporation | Intelligent routing of digital content |
US7925790B2 (en) | 2003-09-17 | 2011-04-12 | Sony Corporation | Middleware filter agent between server and PDA |
US20050060578A1 (en) * | 2003-09-17 | 2005-03-17 | Sony Corporation | Method of and system for authentication downloading |
US7735000B2 (en) * | 2003-09-25 | 2010-06-08 | Sony Corporation | Information and content exchange document type definitions to support content distribution |
US8472792B2 (en) | 2003-12-08 | 2013-06-25 | Divx, Llc | Multimedia distribution system |
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
US20050129196A1 (en) * | 2003-12-15 | 2005-06-16 | International Business Machines Corporation | Voice document with embedded tags |
US8689113B2 (en) | 2004-01-22 | 2014-04-01 | Sony Corporation | Methods and apparatus for presenting content |
US20050165941A1 (en) * | 2004-01-22 | 2005-07-28 | Edward Eytchison | Methods and apparatuses for streaming content |
US8234414B2 (en) | 2004-03-31 | 2012-07-31 | Qurio Holdings, Inc. | Proxy caching in a photosharing peer-to-peer network to improve guest image viewing performance |
US7337273B2 (en) * | 2004-03-31 | 2008-02-26 | Microsoft Corporation | Strategies for reading information from a mass storage medium using a cache memory |
US7818444B2 (en) | 2004-04-30 | 2010-10-19 | Move Networks, Inc. | Apparatus, system, and method for multi-bitrate content streaming |
US8868772B2 (en) | 2004-04-30 | 2014-10-21 | Echostar Technologies L.L.C. | Apparatus, system, and method for adaptive-rate shifting of streaming content |
US7860923B2 (en) * | 2004-08-18 | 2010-12-28 | Time Warner Inc. | Method and device for the wireless exchange of media content between mobile devices based on user information |
US7860922B2 (en) * | 2004-08-18 | 2010-12-28 | Time Warner, Inc. | Method and device for the wireless exchange of media content between mobile devices based on content preferences |
US7698386B2 (en) * | 2004-11-16 | 2010-04-13 | Qurio Holdings, Inc. | Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request |
US7937379B2 (en) * | 2005-03-09 | 2011-05-03 | Vudu, Inc. | Fragmentation of a file for instant access |
US8904463B2 (en) | 2005-03-09 | 2014-12-02 | Vudu, Inc. | Live video broadcasting on distributed networks |
US9176955B2 (en) * | 2005-03-09 | 2015-11-03 | Vvond, Inc. | Method and apparatus for sharing media files among network nodes |
US8219635B2 (en) * | 2005-03-09 | 2012-07-10 | Vudu, Inc. | Continuous data feeding in a distributed environment |
US20080022343A1 (en) * | 2006-07-24 | 2008-01-24 | Vvond, Inc. | Multiple audio streams |
US8370514B2 (en) | 2005-04-28 | 2013-02-05 | DISH Digital L.L.C. | System and method of minimizing network bandwidth retrieved from an external network |
US8683066B2 (en) * | 2007-08-06 | 2014-03-25 | DISH Digital L.L.C. | Apparatus, system, and method for multi-bitrate content streaming |
US8099511B1 (en) | 2005-06-11 | 2012-01-17 | Vudu, Inc. | Instantaneous media-on-demand |
US20070016611A1 (en) * | 2005-07-13 | 2007-01-18 | Ulead Systems, Inc. | Preview method for seeking media content |
US8688801B2 (en) * | 2005-07-25 | 2014-04-01 | Qurio Holdings, Inc. | Syndication feeds for peer computer devices and peer networks |
US7849163B1 (en) | 2005-08-11 | 2010-12-07 | Qurio Holdings, Inc. | System and method for chunked file proxy transfers |
US7558804B1 (en) * | 2005-08-26 | 2009-07-07 | American Megatrends, Inc. | Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory |
US8005889B1 (en) | 2005-11-16 | 2011-08-23 | Qurio Holdings, Inc. | Systems, methods, and computer program products for synchronizing files in a photosharing peer-to-peer network |
WO2007066993A1 (en) * | 2005-12-08 | 2007-06-14 | Electronics And Telecommunications Research Institute | Method and apparatus for providing software by functional units in a software streaming system |
US20080256178A1 (en) * | 2005-12-08 | 2008-10-16 | Electronics And Telecommunications Research Instit | Method and Apparatus for Providing Software by Functional Units in a Software Streaming System |
US8788572B1 (en) | 2005-12-27 | 2014-07-22 | Qurio Holdings, Inc. | Caching proxy server for a peer-to-peer photosharing system |
US8214516B2 (en) * | 2006-01-06 | 2012-07-03 | Google Inc. | Dynamic media serving infrastructure |
WO2007106844A2 (en) | 2006-03-14 | 2007-09-20 | Divx, Inc. | Federated digital rights management scheme including trusted systems |
US8832247B2 (en) * | 2006-03-24 | 2014-09-09 | Blue Coat Systems, Inc. | Methods and systems for caching content at multiple levels |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US20080016185A1 (en) * | 2006-07-11 | 2008-01-17 | Magix Ag | System and method for dynamically creating online multimedia slideshows |
JP2010503257A (ja) * | 2006-09-01 | 2010-01-28 | パクバイト ソフトウエア プロプライアタリー リミティド | データネットワーク上においてデータファイルを伝送する方法及びシステム |
US8296812B1 (en) | 2006-09-01 | 2012-10-23 | Vudu, Inc. | Streaming video using erasure encoding |
US20080104267A1 (en) * | 2006-11-01 | 2008-05-01 | Sony Corporation | Systems and methods for reducing display latency between streaming digital media |
US9602880B2 (en) * | 2006-12-29 | 2017-03-21 | Kip Prod P1 Lp | Display inserts, overlays, and graphical user interfaces for multimedia systems |
US11783925B2 (en) | 2006-12-29 | 2023-10-10 | Kip Prod P1 Lp | Multi-services application gateway and system employing the same |
US9569587B2 (en) | 2006-12-29 | 2017-02-14 | Kip Prod Pi Lp | Multi-services application gateway and system employing the same |
US8397264B2 (en) | 2006-12-29 | 2013-03-12 | Prodea Systems, Inc. | Display inserts, overlays, and graphical user interfaces for multimedia systems |
US20170344703A1 (en) | 2006-12-29 | 2017-11-30 | Kip Prod P1 Lp | Multi-services application gateway and system employing the same |
WO2008086313A1 (en) | 2007-01-05 | 2008-07-17 | Divx, Inc. | Video distribution system including progressive playback |
KR100815618B1 (ko) * | 2007-05-10 | 2008-03-24 | 주식회사 씬멀티미디어 | 이동통신 단말기에서 외부저장매체의 동영상 파일 재생장치및 방법 |
JP4970141B2 (ja) * | 2007-05-25 | 2012-07-04 | 株式会社東芝 | 情報再生装置および情報再生方法 |
US8103965B2 (en) * | 2007-06-28 | 2012-01-24 | Verizon Patent And Licensing Inc. | Media content recording and healing statuses |
US8161243B1 (en) | 2007-09-28 | 2012-04-17 | Intel Corporation | Address translation caching and I/O cache performance improvement in virtualized environments |
KR20100106327A (ko) | 2007-11-16 | 2010-10-01 | 디브이엑스, 인크. | 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조 |
US8325800B2 (en) | 2008-05-07 | 2012-12-04 | Microsoft Corporation | Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers |
US8379851B2 (en) * | 2008-05-12 | 2013-02-19 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
US7860996B2 (en) * | 2008-05-30 | 2010-12-28 | Microsoft Corporation | Media streaming with seamless ad insertion |
US8387150B2 (en) * | 2008-06-27 | 2013-02-26 | Microsoft Corporation | Segmented media content rights management |
US8265140B2 (en) * | 2008-09-30 | 2012-09-11 | Microsoft Corporation | Fine-grained client-side control of scalable media delivery |
US9009337B2 (en) | 2008-12-22 | 2015-04-14 | Netflix, Inc. | On-device multiplexing of streaming media content |
CN101771673B (zh) * | 2008-12-26 | 2013-10-09 | 华为技术有限公司 | 一种处理媒体数据的方法及装置 |
EP2219374A1 (en) * | 2009-02-13 | 2010-08-18 | Irdeto Access B.V. | Securely providing a control word from a smartcard to a conditional access module |
WO2010111261A1 (en) * | 2009-03-23 | 2010-09-30 | Azuki Systems, Inc. | Method and system for efficient streaming video dynamic rate adaptation |
US8489774B2 (en) | 2009-05-27 | 2013-07-16 | Spot411 Technologies, Inc. | Synchronized delivery of interactive content |
US8718805B2 (en) * | 2009-05-27 | 2014-05-06 | Spot411 Technologies, Inc. | Audio-based synchronization to media |
US8369328B2 (en) * | 2009-07-14 | 2013-02-05 | Saguna Networks Ltd. | System and method for efficient delivery of multi-unicast communication traffic |
CN101662472B (zh) * | 2009-09-16 | 2012-10-03 | 中兴通讯股份有限公司 | 机顶盒基于sip协议实现呼叫转移的方法及系统 |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
EP2507995A4 (en) | 2009-12-04 | 2014-07-09 | Sonic Ip Inc | SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL |
US9510029B2 (en) | 2010-02-11 | 2016-11-29 | Echostar Advanced Technologies L.L.C. | Systems and methods to provide trick play during streaming playback |
EP2362651A1 (en) * | 2010-02-19 | 2011-08-31 | Thomson Licensing | Multipath delivery for adaptive streaming |
US9634946B2 (en) * | 2010-04-08 | 2017-04-25 | Vassona Networks Inc. | Managing streaming bandwidth for multiple clients |
US8301794B2 (en) * | 2010-04-16 | 2012-10-30 | Microsoft Corporation | Media content improved playback quality |
US8904027B2 (en) | 2010-06-30 | 2014-12-02 | Cable Television Laboratories, Inc. | Adaptive bit rate for data transmission |
CN101977310A (zh) * | 2010-08-02 | 2011-02-16 | 中兴通讯股份有限公司 | 一种移动终端中流媒体文件保存的方法和系统 |
EP2437458A1 (en) * | 2010-09-30 | 2012-04-04 | British Telecommunications Public Limited Company | Content delivery |
US8997160B2 (en) * | 2010-12-06 | 2015-03-31 | Netflix, Inc. | Variable bit video streams for adaptive streaming |
US8914534B2 (en) | 2011-01-05 | 2014-12-16 | Sonic Ip, Inc. | Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol |
US20120194534A1 (en) * | 2011-02-02 | 2012-08-02 | Alcatel-Lucent Usa Inc. | System and Method for Managing Cache Storage in Adaptive Video Streaming System |
US9467708B2 (en) | 2011-08-30 | 2016-10-11 | Sonic Ip, Inc. | Selection of resolutions for seamless resolution switching of multimedia content |
US8787570B2 (en) | 2011-08-31 | 2014-07-22 | Sonic Ip, Inc. | Systems and methods for automatically genenrating top level index files |
US8909922B2 (en) | 2011-09-01 | 2014-12-09 | Sonic Ip, Inc. | Systems and methods for playing back alternative streams of protected content protected using common cryptographic information |
US8719440B2 (en) * | 2011-09-14 | 2014-05-06 | Mobitv, Inc. | Intelligent device media stream caching |
US8560719B2 (en) | 2011-09-14 | 2013-10-15 | Mobitv, Inc. | Fragment server directed device fragment caching |
US8661479B2 (en) | 2011-09-19 | 2014-02-25 | International Business Machines Corporation | Caching large objects with multiple, unknown, and varying anchor points at an intermediary proxy device |
EP2600257A1 (en) * | 2011-11-30 | 2013-06-05 | Thomson Licensing | Method and apparatus for processing digital content |
US8762452B2 (en) | 2011-12-19 | 2014-06-24 | Ericsson Television Inc. | Virtualization in adaptive stream creation and delivery |
US8850054B2 (en) * | 2012-01-17 | 2014-09-30 | International Business Machines Corporation | Hypertext transfer protocol live streaming |
RU2629001C2 (ru) * | 2012-04-26 | 2017-08-24 | Квэлкомм Инкорпорейтед | Система улучшенной потоковой передачи блоков по запросу для обработки потоковой передачи с малой задержкой |
US9191457B2 (en) | 2012-12-31 | 2015-11-17 | Sonic Ip, Inc. | Systems, methods, and media for controlling delivery of content |
US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
CA2908242A1 (en) * | 2013-04-19 | 2014-10-23 | Sony Corporation | Server device, client device, content distribution method, and computer program |
CN110087093A (zh) * | 2013-04-19 | 2019-08-02 | 索尼公司 | 信息处理装置和方法以及非暂态计算机可读介质 |
US20150039714A1 (en) | 2013-07-30 | 2015-02-05 | Opera Software Asa | Multimedia cache with dynamic segmenting |
CN103618911B (zh) * | 2013-10-12 | 2017-02-01 | 北京视博云科技有限公司 | 一种基于视频属性信息的视频流提供方法及装置 |
JPWO2015064210A1 (ja) | 2013-10-30 | 2017-03-09 | ソニー株式会社 | コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム |
EP2958301A1 (en) * | 2014-06-16 | 2015-12-23 | Thomson Licensing | Method for operating a cache arranged along a transmission path between a client terminal and at least one server, and corresponding cache |
US9531720B2 (en) * | 2014-09-02 | 2016-12-27 | Akamai Technologies, Inc. | System and methods for leveraging an object cache to monitor network traffic |
CN104202650B (zh) * | 2014-09-28 | 2017-11-17 | 西安诺瓦电子科技有限公司 | 流媒体播放系统及方法、led显示屏系统 |
ES2874748T3 (es) | 2015-01-06 | 2021-11-05 | Divx Llc | Sistemas y métodos para codificar y compartir contenido entre dispositivos |
WO2017056027A1 (en) * | 2015-10-01 | 2017-04-06 | Pacbyte Software Pty Ltd | Method and system for receiving a data file |
US10032034B2 (en) | 2015-10-06 | 2018-07-24 | Microsoft Technology Licensing, Llc | MPEG transport frame synchronization |
CN107544963A (zh) * | 2016-06-23 | 2018-01-05 | 南京中兴软件有限责任公司 | 多媒体文件存储方法及装置 |
US9712570B1 (en) * | 2016-09-28 | 2017-07-18 | Atlassian Pty Ltd | Dynamic adaptation to increased SFU load by disabling video streams |
EP3410728A1 (en) * | 2017-05-30 | 2018-12-05 | Vestel Elektronik Sanayi ve Ticaret A.S. | Methods and apparatus for streaming data |
US10560726B2 (en) | 2017-07-26 | 2020-02-11 | CodeShop BV | System and method for delivery and caching of personalized media streaming content |
CN109903785B (zh) * | 2019-03-14 | 2020-05-15 | 北京字节跳动网络技术有限公司 | 用于缓存音频数据的方法和装置 |
CN112584186B (zh) * | 2020-11-30 | 2023-02-21 | 微梦创科网络科技(中国)有限公司 | 一种基于构建电商直播购物车服务的直播方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099694A1 (en) * | 2000-11-21 | 2002-07-25 | Diamond Theodore George | Full-text relevancy ranking |
CN1406070A (zh) * | 2002-11-01 | 2003-03-26 | 清华大学 | 一种基于实时流媒体的现场点播方法 |
US20030061371A1 (en) * | 2001-08-31 | 2003-03-27 | Deshpande Sachin G. | System and method for simultaneous media playout |
JP2003143583A (ja) * | 2001-06-28 | 2003-05-16 | Microsoft Corp | コンテンツのストリーミングに使用するための改善された起動方法および装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR8302084A (pt) * | 1983-04-22 | 1984-11-20 | Freyssinet Int Stup | Conjunto para ancoragem de membros tensores |
US5867230A (en) * | 1996-09-06 | 1999-02-02 | Motorola Inc. | System, device, and method for streaming a multimedia file encoded at a variable bitrate |
US6412004B1 (en) | 1997-03-27 | 2002-06-25 | Microsoft Corporation | Metaserver for a multimedia distribution network |
US5946697A (en) * | 1997-04-22 | 1999-08-31 | Microsoft Corporation | Rapid transfer of HTML files |
US6347094B1 (en) | 1998-07-21 | 2002-02-12 | Microsoft Corporation | Data rate smoothing |
US6314466B1 (en) | 1998-10-06 | 2001-11-06 | Realnetworks, Inc. | System and method for providing random access to a multimedia object over a network |
US6637031B1 (en) * | 1998-12-04 | 2003-10-21 | Microsoft Corporation | Multimedia presentation latency minimization |
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 |
US6463508B1 (en) | 1999-07-19 | 2002-10-08 | International Business Machines Corporation | Method and apparatus for caching a media stream |
US7028096B1 (en) * | 1999-09-14 | 2006-04-11 | Streaming21, Inc. | Method and apparatus for caching for streaming data |
AU7735300A (en) | 1999-09-29 | 2001-04-30 | Loudeye Technologies, Inc. | Streaming media encoding agent for temporal modifications |
CN100442393C (zh) | 1999-10-21 | 2008-12-10 | 松下电器产业株式会社 | 半导体存储卡的访问装置、初始化方法和半导体存储卡 |
US6675174B1 (en) | 2000-02-02 | 2004-01-06 | International Business Machines Corp. | System and method for measuring similarity between a set of known temporal media segments and a one or more temporal media streams |
US7373413B1 (en) * | 2000-06-28 | 2008-05-13 | Cisco Technology, Inc. | Devices and methods for minimizing start up delay in transmission of streaming media |
US6859840B2 (en) * | 2001-01-29 | 2005-02-22 | Kasenna, Inc. | Prefix caching for media objects |
US20020170068A1 (en) | 2001-03-19 | 2002-11-14 | Rafey Richter A. | Virtual and condensed television programs |
US20020169926A1 (en) | 2001-04-19 | 2002-11-14 | Thomas Pinckney | Systems and methods for efficient cache management in streaming applications |
FI115418B (fi) | 2001-09-20 | 2005-04-29 | Oplayo Oy | Adaptiivinen mediavirta |
US20030099364A1 (en) * | 2001-11-28 | 2003-05-29 | Thompson Mark R. | Playback manipulation of HTTP streamed content objects |
US9144737B2 (en) * | 2003-08-01 | 2015-09-29 | Turbine, Inc. | Securing goal-activated game content |
-
2003
- 2003-08-01 US US10/632,767 patent/US7941554B2/en not_active Expired - Fee Related
- 2003-08-20 AU AU2003259936A patent/AU2003259936A1/en not_active Abandoned
- 2003-08-20 WO PCT/US2003/026036 patent/WO2005017779A1/en active Application Filing
- 2003-08-20 JP JP2005507910A patent/JP2007529121A/ja active Pending
- 2003-08-20 CA CA002468057A patent/CA2468057A1/en not_active Abandoned
- 2003-08-20 CN CNB038018497A patent/CN100456284C/zh not_active Expired - Fee Related
- 2003-08-20 KR KR1020047010432A patent/KR20060082135A/ko not_active Application Discontinuation
- 2003-08-20 BR BR0306692-4A patent/BR0306692A/pt not_active IP Right Cessation
- 2003-08-20 EP EP03813047A patent/EP1676213A4/en not_active Withdrawn
- 2003-08-20 RU RU2004119842/09A patent/RU2325686C2/ru not_active IP Right Cessation
- 2003-08-20 MX MXPA04006412A patent/MXPA04006412A/es active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099694A1 (en) * | 2000-11-21 | 2002-07-25 | Diamond Theodore George | Full-text relevancy ranking |
JP2003143583A (ja) * | 2001-06-28 | 2003-05-16 | Microsoft Corp | コンテンツのストリーミングに使用するための改善された起動方法および装置 |
US20030061371A1 (en) * | 2001-08-31 | 2003-03-27 | Deshpande Sachin G. | System and method for simultaneous media playout |
CN1406070A (zh) * | 2002-11-01 | 2003-03-26 | 清华大学 | 一种基于实时流媒体的现场点播方法 |
Also Published As
Publication number | Publication date |
---|---|
RU2004119842A (ru) | 2005-03-27 |
BR0306692A (pt) | 2005-04-05 |
EP1676213A1 (en) | 2006-07-05 |
MXPA04006412A (es) | 2005-04-25 |
AU2003259936A1 (en) | 2005-03-07 |
CA2468057A1 (en) | 2005-02-01 |
WO2005017779A1 (en) | 2005-02-24 |
US7941554B2 (en) | 2011-05-10 |
KR20060082135A (ko) | 2006-07-18 |
CN1692353A (zh) | 2005-11-02 |
RU2325686C2 (ru) | 2008-05-27 |
EP1676213A4 (en) | 2009-12-30 |
JP2007529121A (ja) | 2007-10-18 |
US20050066063A1 (en) | 2005-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100456284C (zh) | 用于流媒体的分散高速缓存 | |
CN101203827B (zh) | 用于媒体流的流量控制 | |
US20210250627A1 (en) | Systems and Methods for Encoding and Streaming Video Encoded Using a Plurality of Maximum Bitrate Levels | |
CN1756369B (zh) | 在带宽有限网络上的媒体速率变换 | |
JP5840702B2 (ja) | 適応ストリーミングのための様々なビットのビデオストリーム | |
WO2018076952A1 (zh) | 一种视频文件的存储、定位播放方法及装置 | |
JP4592749B2 (ja) | セッション記述メッセージ拡張子 | |
US8301697B2 (en) | Adaptive streaming of conference media and data | |
US20130124697A1 (en) | Optimized client side rate control and indexed file layout for streaming media | |
CN102246533A (zh) | 用于代码转换后的媒体内容的渐进递送的系统和方法 | |
CN102045338A (zh) | 内容再现系统、内容再现装置、程序及内容再现方法 | |
KR20110103953A (ko) | 화상 회의 레이트 매칭 | |
US8407565B2 (en) | System and method for producing importance rate-based rich media, and server applied to the same | |
CN102868908A (zh) | 高效流媒体播放方法和装置 | |
KR20040005919A (ko) | 프리젠테이션의 재생 속도 실시간 제어 | |
US20160212054A1 (en) | Multiple Protocol Media Streaming | |
JP2007523524A (ja) | マルチメディアデータを記録した情報保存媒体、その再生方法及び再生装置 | |
US7779159B2 (en) | Apparatus and method for providing high speed download service of multimedia contents | |
JP6258168B2 (ja) | 配信装置、再生装置および配信システム | |
KR101663769B1 (ko) | 실시간 부호화 되는 스케일러블 비디오를 다중 송신그룹으로 보내기 위한 소스 버퍼링을 수행하는 시스템 및 방법 | |
JP2005110024A (ja) | データ送信装置、データ送受信システム、及びデータ送受信方法 | |
JP2006295601A (ja) | 通信システム、送信装置および方法、受信装置および方法、並びにプログラム | |
JP2004221756A (ja) | 情報処理装置および情報処理方法、並びにコンピュータ・プログラム | |
JP4392378B2 (ja) | 音声符号化選択制御方法 | |
JP4461875B2 (ja) | 映像配信システム及び方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090128 Termination date: 20130820 |