CN102792291A - 基于http的流分发的方法和系统 - Google Patents
基于http的流分发的方法和系统 Download PDFInfo
- Publication number
- CN102792291A CN102792291A CN2010800466815A CN201080046681A CN102792291A CN 102792291 A CN102792291 A CN 102792291A CN 2010800466815 A CN2010800466815 A CN 2010800466815A CN 201080046681 A CN201080046681 A CN 201080046681A CN 102792291 A CN102792291 A CN 102792291A
- Authority
- CN
- China
- Prior art keywords
- stream
- fragment
- http
- http proxy
- format
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- 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, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/27—Server based end-user applications
- H04N21/274—Storing end-user multimedia data in response to end-user request, e.g. network recorder
- H04N21/2747—Remote storage of video programs received via the downstream path, e.g. from the server
-
- 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
Abstract
一种分发直播流的方法在内容分发网络(CDN)内被实现并包括用记录层记录流和用播放器层播放流的高级功能。记录流的步骤包括当流在CDN入口点以源格式被接收到时开始的一组子步骤。然后流被转换成中间格式(IF),其是用于在CDN内分发流的内部格式且包括流清单、一组一个或多个片段索引(FI)和一组IF片段。当请求客户端与CDN HTTP代理服务器相关时播放过程开始。响应于在HTTP代理接收到对流或其一部分的请求,HTTP代理检索流清单和至少一个片段索引(从档案库或数据存储器)。使用片段索引,IF片段被检索到HTTP代理,被转换成目标格式,然后响应于客户端请求而被提供。源格式可与目标格式相同或不同。优选地,通过HTTP由HTTP代理访问、缓冲和提供所有片段。在另一实施方式中,分发流点播(VOD)的方法使用转换层(代替记录层)来管理IF组件的创建和/或处理。
Description
本申请基于并且要求于2009年8月17日提交的序列号为61/234,371和于2009年12月31日提交的序列号为61/291,443的专利的优先权。
发明背景
技术领域
本申请一般涉及在广播听众规模将高清(HD)视频在线分发到流行的运行环境和移动设备。
相关技术的简述
在现有技术中,分布式计算机系统是众所周知的。一个这样的分布式计算机系统是由服务提供者操作和管理的“内容分发网络”或“CDN”。服务提供者通常代表第三方提供内容分发服务。这种类型的“分布式系统”通常是指通过一个网络或多个网络连接的一组自主计算机连同被设计成有助于各种服务如内容分发或外包网站基础设施的支持的软件、系统、协议和技术。通常,“内容分发”意味着代表内容提供者对内容、流媒体和应用——包括与其一起使用的辅助技术——的存储、缓存或发送,辅助技术包括但不限于DNS查询处理、供应、数据监控和报告、内容定位、个性化和商业智能。
虽然内容分发网络提供了明显的优势,通常它们包括专用平台以对多个第三方运行环境支持内容的分发,这些专用平台又基于它们自己的专有技术、媒体服务器和协议。这些不同平台实现和维护起来是昂贵的,尤其是全球地和在当最终用户的数量增加时的规模。而且,同时,内容提供者(如大规模广播电台、电影经销商等)期望他们的内容以补充传统媒介如广播TV(包括高清或“HD”电视)和DVD的方式被在线分发。也可以以不同的比特率提供这种内容。最终用户也期望与内容相互作用,正如他们现在可以与通过卫星或有线电视分发的传统的基于DVR的内容相互作用一样。另一个难题是,基于互联网的内容分发不再局限于固定线路环境如台式机,因为越来越多的最终用户现在使用移动设备如来在移动环境上接收和观看内容。
因此,需要提供一种集成的内容分发网络平台,这种网络平台能够在广播听众规模上将内容(如HD质量的视频)在线分发到最流行的运行环境(如等)以及移动设备如iPhone,以匹配观众从传统广播TV预期的用户体验。本文公开的技术解决这种需要。
简要概述
提供一种集成的基于HTTP的分发平台,其用于将HD视频和音频质量的内容在线分发到在固定线路和移动环境中的多种类型的客户端设备上操作的流行的运行环境。
在一个实施方式中,分发直播流的方法在内容分发网络(CDN)内实现,并且包括使用记录层来记录流和使用播放器层来播放流的高级功能。记录流的步骤包括当流以源格式在CDN入口点处被接收时开始的一组子步骤。然后流被转换成中间格式(IF),其是用于在CDN内分发流的内部格式并且包括流清单、一组一个或多个片段索引(FI)和一组IF片段。表示流的当前部分的所述片段以中间格式被存档于档案存储器中,而较旧(非当前)的部分被发送至数据存储器。当请求客户端与CDN HTTP代理相关联时,播放器过程开始。响应于在HTTP代理处收到对流或其一部分的请求,HTTP代理检索流清单和至少一个片段索引(从档案或数据存储器)。使用片段索引,IF片段被检索到HTTP代理,被转换成目标格式,并且然后响应于客户端请求而被提供。源格式可以与目标格式相同或不同。优选地,所有片段通过HTTP由HTTP代理访问、缓存和提供。
在另一实施方式中,分发流点播(VOD)的方法使用转换层来管理IF组件,即流清单、片段索引(FI)和IF片段的创建和/或处理。使用转换层来代替记录层(在直播分发网络中)。在一个VOD实施方式中,使用HTTP代理和转换过程来实现转换层。这种方法实现来自客户和基于CDN的存储源的VOD流式传输,提供单和多比特率(SMR和MBR)流式传输,提供对存储于多种不同类型的文件格式容器中的源内容的支持(支持的mp4/flv代码除了别的以外还包括用于音频的AAC、MP3、PCM和用于视频的H.264),并且最小化超出由最终用户直接请求的东西的内容的下载。
依据本公开的另一方面,中间格式(IF)生成和处理可能完全发生在HTTP代理内。在这种方法中,可以在整个下游HTTP分发链中将IF扩展——包括可选地——到客户端本身(如果客户端也具有HTTP代理接口的话)。
上文已经概述了本发明的一些更相关的特征。这些特征应该被解释为仅仅是说明性的。可以通过以不同的方式应用所公开的发明或通过修改本发明来获得许多其他的有益结果,如将被描述的。
附图简述
为了更加完整的理解本发明及其优势,现在参考结合附图理解的以下的描述,其中:
图1是示出被配置为内容分发网络(CDN)的已知的分布式计算机系统的框图;
图2是有代表性的CDN边缘机器配置;
图3示出了依据本公开的教导的在固定线路和移动环境中基于HTTP将高清(HD)“直播”视频分发到客户端的网络;
图4更加详细地示出了图3的网络;
图5示出了依据所公开的技术使用中间片段(IF)在图3的网络中从源格式(SF)到目标格式(TF)的有代表性的分组流;
图6示出了流入或流出流服务器架构的媒体分组的另一视图;
图7示出了基于HTTP的分发的网络如何用于提供视频点播(VOD)流分发;以及
图8示出了基于HTTP的分发网络的VOD部分的有代表性的转换机器配置。
详细描述
图1示出了已知的分布式计算机系统(如下所述),其通过本文的技术被扩展以提供单个基于HTTP的平台,其具有在广播听众规模将HD视频在线分发到最流行的运行环境和在固定线路和移动环境中的最先进的设备的能力。
在这个有代表性的实施方式中,分布式计算机系统100被配置为内容分发网络(CDN)并且被假设具有在互联网周围分布的一组机器102a-n。通常,大多数机器是位于互联网的边缘附近,即在最终用户接入网络处或邻近最终用户接入网络的服务器。网络操作控制中心(NOCC)104可以用于执行和管理系统中的各种机器的操作。第三方网站如网站106将内容分发(例如,HTML、嵌入式页面对象、流媒体、软件下载等)卸载到分布式计算机系统100,并且特别是“边缘”服务器。通常,内容提供者通过将给定的内容提供者域或子域替换为(例如,通过DNS CNAME)由服务提供者的权威性域名服务管理的域来卸载他们的内容分发。要求这类内容的最终用户可以被引导到所述分布式计算机系统以更可靠且更有效地获得该内容。虽然未详细地示出,所述分布式计算机系统还可以包括其他的基础结构,如分布式数据收集系统108,其从边缘服务器收集用法和其他数据、在一个区域或一组区域上聚集数据,并将数据传递至其他的后端系统110、112、114和116以有助于监控、记录、警告、开账单、管理以及其他的操作和管理功能。分布式网络代理118监控网络和服务器负载,并且将网络、业务和加载数据提供给DNS查询处理机构115,其对于由CDN管理的内容域名是权威的。分布式数据传输机构120可以用于将控制信息(例如,管理内容、便于负载平衡等的元数据)分布到边缘服务器。
如图2所示,在CDN中给定的机器200(有时在本文称作“边缘机器”)包括运行支持一个或多个应用206a-n的操作系统内核204(如Linux或变体)的商用硬件202(例如,英特尔奔腾处理器)。为了有助于内容分发服务,例如,给定的机器通常运行一组应用,如HTTP代理207、名称服务器208、本地监控进程210、分布式数据收集进程212等。HTTP代理207通常包括高速缓冲存储器以及用于管理高速缓冲存储器和内容从边缘机器的分发的管理进程。对于流媒体,所述机器通常包括一个或多个媒体服务器,如Windows媒体服务器(WMS)或Flash 2.0服务器,如所支持的媒体格式所需的。当被配置为CDN“边缘”机器(或“边缘服务器”)时,在图2中所示的机器可以被配置成优选地在域名特定、客户特定的基础上优选地使用利用配置系统分布到边缘服务器的配置文件来提供一个或多个扩展的内容分发特征。给定的配置文件优选地是基于XML的,并且包括有助于一个或多个高级内容处理特征的一组内容处理规则和指令。通过数据传输机构可以将配置文件分发至CDN边缘服务器。美国专利号7,111,057说明了用于分发和管理边缘服务器内容控制信息的一种有用的基础结构,并且这种和其他的边缘服务器控制信息(有时称作“元数据”)可以由CDN服务提供者本身提供,或(通过外联网或类似物)由操作源服务器的内容提供者客户提供。
CDN可以包括如在美国专利号7,472,178中所描述的存储子系统,该专利的公开通过引用被并入本文。
CDN可以操作服务器缓存层以提供客户内容的中间缓存;一个这样的缓存层子系统在美国专利号7,376,716中被描述,该专利的公开通过引用被并入本文。
对于直播流分发,CDN可以包括如在美国专利号7,296,082中所描述的直播分发子系统,该专利的公开通过引用被并入本文。
如将要描述的,本公开描述了以上确定的技术可以如何被扩展以提供集成的基于HTTP的分发平台,其具有将HD视频质量的内容在线分发到最流行的运行环境以及在固定线路和移动环境中的最先进的设备的能力。所述平台均支持“直播”和“点播”内容的分发。
直播流分发
如本文所使用的,以下的术语将具有以下有代表性的意义。仅为了说明的方便,接下来的描述(相对于直播流分发)是在Adobe Flash运行环境的背景中,但这不是限制,因为也可对其他的运行环境——固定路线和移动环境(包括但不限于Microsoft Silverlight,、Apple iPhone及其他)——实现类似类型的解决方案。
编码器是客户拥有或管理的机器,其获取以某种格式(流、卫星等)的某种原始直播视频网络输送的电视节目,并且将数据分发到被编码以用于流分发的入口点。入口点(EP)通常是在从客户的编码器接收视频数据并且使该数据对直播流的用户可用的CDN流机器上运行的进程。对于Adobe Flash,这是被配置成从编码器接受连接的Flash媒体服务器(FMS)。Flash媒体服务器是可从Adobe公司购买的Flash媒体的服务器进程。在本实施方式中,中间区域(IR)通常是Flash媒体服务器,CDN配置Flash媒体服务器以类似地对流设置反射器起作用,如在美国专利号7,296,082和美国专利号6,751,673中所描述的。这些机器将流从FMS EP分程传递到FMS边缘区域,提供输出端数(fan out)和路径分集。“区域”通常意味着一组协同定位并且彼此相互连接以用于一般在后端局域网上负载共享的机器(以及其相关的服务器进程)。Flash边缘机器是已被配置成接受客户端请求的Flash媒体服务器。在有代表性的实施方式中,这是在Flash EP、IR和边缘机器上运行的软件。中间格式(IF)是用于将流数据从EP发送至边缘服务器HTTP代理的内部格式(CDN内部)。如以下将更加详细地描述的,IF优选地包括若干不同的几块,包括“流清单(stream manifest)”、“片段索引”和“IF片段”。Live(直播)、DVR和VOD被定义如下:“直播”是指当事件发生时实时地提供的媒体;“DVR”是指从“直播”网络输送的电视节目获得的但在以后的时间提供的内容;“VOD”是指从单个完整的(即不递增地变化)文件或一组文件提供的媒体。实时消息传送协议(RTMP)是由Flash使用的流式传输和RPC协议。加密的实时消息传送协议(RTMPE)是RTMP的加密版本,其使用嵌入服务器和客户端中的秘密。“SWF”或“小Web格式”是Flash客户端应用的格式。SWF验证是指一种技术,通过此技术Flash播放器可以向FMS证实所述FMS通过发送SWF本身的无用数据连同嵌入客户端和服务器中的秘密来播放未更改的SWF。
图3示出了用于直播流分发的优选结构的概观。在图4中示出了该结构的简化版本。如在图3中可以看到的,该系统一般被分成两个独立的层:流记录层300和流播放器层302。如将要描述的,记录进程(由流记录层300提供)从编码器304向前发起。优选地,流被记录,即使当前没有查看者(因为稍后可能有DVR请求)。重放进程(由流播放器层302提供)在给定的时间开始播放给定的流。因此,“直播流”实际上相当于具有“现在”的开始时间的“DVR流”。
参考图3,直播流进程以从编码器304分发到入口点306的流开始。在EP区域中(未示出)的RTMP牵引器308(例如,在基于Linux的机器上运行)被指示来订阅在EP306上的流,并且将因而所生成的数据推到一个或多个档案存储器310的进程,其优选地在其他的机器上运行。如所示,档案存储器310中的一个可以作为“领导者”操作,作为在存档进程中执行领导者选举协议的结果。优选地,对于直播或近直播请求,档案存储器310充当对边缘服务器HTTP代理进程(其中一个被显示为312)的源服务器。边缘服务器HTTP代理312给请求的最终用户客户端提供HTTP分发,其中一个客户端是客户端314。“客户端”是包括合适的硬件和软件以连接到互联网、说出至少HTTP和包括内容再现引擎的设备。客户端设备类型将改变,取决于设备是否在固定线路环境或移动环境上连接到互联网。有代表性的客户端是包括浏览器的计算机,其通常具有对媒体播放器、编码解码器等的本地或插件支持。如果DVR被启动,内容也优选地被上传到存储子系统316,使得存储子系统作为DVR请求的起源,如将要描述的。
也如在图3中看到的,内容提供者可以选择分发流的两个副本,一个主要副本和一个备用副本,以在网络或其他问题的情况下允许流以最小的中断继续。优选地,在整个系统上主要流和备份流被视为独立地穿过边缘服务器HTTP代理,其优选地具有在主要流有困难时从主要流故障转移到备份流的能力,反之亦然。
内容请求(来自最终用户客户端314)优选地使用如在美国专利号6,108,703、7,240,100、7,293,093等中所描述的技术来指向CDN边缘机器HTTP代理312。当HTTP代理312接收对给定的流的HTTP请求时,HTTP代理312做出各种请求,其优选地通过HTTP代理元数据(如在美国专利号7,240,100和7,111,057等中所描述的)可能通过缓存层318驱动(参见例如美国专利号7,376,716等)以了解和下载流以服务于客户端314。优选地,流特定的知识由直接与客户端314连接的边缘机器HTTP代理312处理。任何前进的(高速缓存缺失)请求(从HTTP代理发出)优选地为标准的HTTP请求。在一个实施方式中,内容从HTTP代理312被分发到客户端314作为渐进式下载FLV文件。如上所述,在本文作为例子在此使用对Adobe FLV的提及,因为所公开的架构并不限于用在Adobe FLV上。对于安全流,优选地,客户端314首先使用边缘服务器认证技术和/或SWF验证反向通道来向HTTP代理312认证。
当客户端314请求特定的流时,HTTP代理312(客户端通常通过DNS指向HTTP代理312)通过检索“流清单”来开始流进程,流清单优选地仅包含流的缓慢变化的属性和HTTP代理所需的信息以追查实际的流内容。下载该清单的URL优选地从分发到HTTP代理的元数据(例如,通过图1的分布式数据传输机构)被确定性地构建。优选地,所述清单本身被存储成与流清单管理系统(未示出)相关联和/或被存储于存储子系统316中。优选地,流清单描述组成流的各种“轨道”,其中优选地,每一轨道构成比特率和类型的不同组合,其中类型是“音频”、“视频”或“交错的AV”。流清单优选地包括每一轨道的一系列“indexInfo(索引信息)”时间范围,其描述前向URL模板、流属性和HTTP代理请求在该时间范围内的内容所必需的各种其他的参数。
对于“直播”请求,HTTP代理开始请求关于“现在”的内容,“现在”通常近似等于在边缘机器HTTP代理进程上的时间。给定寻找时间,HTTP代理下载“片段索引”,其名称优选地基于在indexInfo范围内的信息和时代寻找时间(epoch seek time)来计算。优选地,片段索引覆盖给定的时间段(例如,每隔几分钟)。通过咨询片段索引,获得“中间格式(IF)片段”编号和该片段内的偏移量。然后HTTP代理可以开始下载文件(例如,通过缓存层318,或从CDN基础结构内的其它地方),跳过在指定偏移量之前的数据,并且然后从那里开始服务(于请求的客户端)。优选地,IF片段的大小适合于通过HTTP代理的最优缓存。通常,且除非流清单在其他方面指示有新的indexInfo范围,对于直播流,然后HTTP代理继续提供来自连续编号的IF片段的数据。
如本文所使用的,并且在基于HTTP的直播分发的背景中,中间格式(IF)描述用于从RTMP牵引器一直到边缘机器HTTP代理获得数据的流的内部表示。“源”格式(SF)是入口点306提供内容的格式,以及“目标”格式是边缘机器HTTP代理312将数据分发到客户端314的格式。依据本公开,这些格式不需要相同。因此,SF可以不同于TF,即,流可以以FLV格式被获得并且以动态或自适应(可变的比特率)格式被提供。格式是用于传送流的容器;通常,实际的原始音频和视频块被认为是不透明的数据,尽管在不同的编码解码器之间的代码转换也可以被实现。通过经由HTTP代理传递格式(并且通过常规的HTTP分发到客户端),可以改变用于分发内容的容器,只要适当地管理基础编码解码器。
现在参考图4,直播内容的HTTP流架构可以如下工作。在步骤1,内容提供者的编码器404将直播FLV流推至入口点(EP)406。在步骤2,RTMP牵引器408从EP406牵引流并且将其分解为中间格式(IF)文件片段和相应的索引信息。解复用器进程405有助于这一操作。牵引器408优选地使用来自流清单文件的元数据以确定多么大来产生每一单独的IF片段。优选地,并且如上所述,优化IF片段大小以在与边缘机器HTTP代理相关联的高速缓冲存储器中进行缓存。
在步骤3,档案存储器410从牵引器408检索IF片段及其相应的索引信息。档案存储器410将每一IF片段的索引信息附加到当前的片段索引(FI)文件。优选地,档案存储器410缓存预定数量的IF片段用于直播重放。当片段老化时,它们优选地从档案存储器410被删除,并且在步骤4,他们被存档到例如存储子系统416。因此,以设定的间隔(例如,每隔几分钟),档案存储器410关闭当前的FI文件,将其存档到存储子系统416,并且开始创建新的FI文件。
在步骤5,并且在最终用户客户端414已经与特定的边缘机器相关联之后,在该机器中的HTTP代理412从档案存储器410获得用于直播重放的片段以及有限的DVR时间段(可能通过高速缓存层418)。从存储子系统416检索在存储服务器410上不再可用的片段。与HTTP代理412结合来操作的复用器进程415有助于这一操作。优选地,每一IF片段是HTTP代理412的单独的对象,其可以是HTTP或通过HTTP而被访问。换句话说,依据本公开,直播流被分解为许多小对象/片段。HTTP代理412通常在单独的HTTP连接上从客户端播放器接收DVR命令。当客户端播放器请求从新的流位置开始播放时,HTTP代理使用来自流清单文件的元数据以计算哪些FI文件包含目标时间偏移量。FI文件从档案存储器410或存储子系统416(或可选地,从与边缘机器协同定位的对等系统)被检索,并且包含IF片段和比特偏移量以开始流到客户端播放器。
图5示出了从源格式(SF)至目标格式(TF)的有代表性的分组流,尽管可以省略转换进程(换句话说,源格式比特可被放置在IF片段中而没有额外的格式转换)。如上所述,优选地,每一视频流被分解为片段。在某个任意点(其可以通过咨询片段索引来确定)开始连续地给片段编号。在流清单indexInfo范围上该序列可以不连续。每一片段优选地包括描述所附数据的类型的头部信息。在这些头部信息之后是IF有效负载,如一序列FLV标签。目标格式也可以仅是基本音频/视频流的加密形式(如基于AESl28)。
片段索引使HTTP代理进程(特定的客户端与其相关)能够找到在期望的“寻找时间”附近的帧。优选地,每一片段索引文件包括涵盖固定时间量的索引信息。确切的间隔被存储于每一indexInfo范围的流清单中。期望的寻找时间(时代时间)可以被下舍入到最近的间隔边界以找到要请求的片段索引。
优选地,由流清单、片段索引和IF片段完全地表示每一流。在说明性的实施方式中,流清单是包含以下信息的XML文件:流时代时间(该时间可以是流开始时的时间或可以是仍可用的流的最老的存档部分);流属性(如比特率、视频大小、编码解码器信息等);关于片段索引和哪个URL模式用于请求FI文件的信息;以及片段的URL模式。片段索引(FI)通常包括以下项:关于在给定的时间片内哪个关键帧开始流出的信息;关键帧到片段编号映射,关键帧到时间映射,关键帧到该片段中的比特偏移量映射等。每一IF片段包括大约N秒的流,其优选地被优化以用于HTTP代理缓存并且不一定在时间边界上成片段。每一片段由片段头部、片段流头部和有效负载组成,并且每一片段通过片段编号被唯一地识别。片段编号递增地增加。
通常,并且返回来参考图4,档案存储器410具有最近N分钟的流的片段,并且其余的片段在存储子系统416上。档案存储器为每一流创建流清单XML文件。它放置HTTP代理可用于做出片段和片段索引请求的所有的必要信息。为了使档案存储器构建流清单,优选地,RTMP牵引器在下游发送流属性。优选地,IF片段用于提供时间相关的数据,即,实际视频/音频比特。此外,优选地,HTTP代理(客户端与其相关)仅做出对IF片段的请求。因此,使片段与具有流属性的分组分离是合乎需要的。
与HTTP代理相关联(或位于其内部)的复用器子系统415确定如何请求IF、将IF转换成输出流,并将该数据传递至HTTP代理服务器以服务于请求的客户端。另外,优选地,HTTP代理进程支持控制信道,通过该控制信道客户端可以做出对有效流的各种请求的任何组合,包括但不限于会话令牌(sessionToken)、寻找(seek)和切换(switch)。当在例如客户端缺少其自己的流控制设备的一些运行环境中工作时,控制信道有助于流控制。在这种情况下,控制信道传递可基于平均比特率的百分比(通过服务器到客户端连接)的节流(throttle)命令,以在该连接的客户端上帮助完全地维护目标缓冲器。会话令牌请求是对例如通过SWF认证提供附加认证信息的请求。“寻找”是对自流中的不同时间起开始发送数据的请求(包括“跳转到直播”)。“切换”是对开始发送来自相同流清单的不同轨道的数据的请求。这可能是比特率转换和/或角变化。
因此,HTTP代理优选地在单独的HTTP连接上从客户端播放器接收DVR命令。当客户端播放器请求从新的流位置开始重放时,HTTP代理使用来自流清单文件的元数据以计算哪些FI文件包含目标时间偏移量。FI文件被检索(例如,从档案存储器或存储子系统,或从对等机器)并且包含IF片段和比特偏移量以开始流到客户端播放器。
如所描述的,流清单优选地是XML文件并且包含关于片段索引和如何为FI文件构建URL、如何为“现在”请求构建URL、以及如何为片段构建URL的信息。HTTP代理缓存该清单,清单可以从档案存储器(其可被首先尝试)或存储子系统检索到代理。客户端播放器连接至HTTP代理以播放直播流(即连接至流的“现在”时间)。在响应中,HTTP代理做出对档案存储器的转发请求以取得在直播流上的“现在”时间。由HTTP代理使用流清单中的元数据以创建“现在”URL。
也如所描述的,流具有多个FI文件。每一FI文件包含给定时间片的流关键帧信息。片段索引允许时间偏移量被映射到片段编号和比特偏移量。流清单文件限定每一FI文件的时间片。
每一IF片段包括大约N秒的流。每一片段由头部和有效负载组成。HTTP代理理解头部中的数据,但是有效负载是不透明的。HTTP代理与复用器部件链接在一起以将IF格式的有效负载转换成流到客户端播放器的目标格式。片段被缓存在HTTP代理中以再使用,并且每一片段以它的流名称和递增增加的整数后缀来识别。如上所述,档案存储器具有最近N分钟的流的片段,并且其余的片段在存储子系统上。
对于未认证的内容,优选地,客户端播放器连接至http://URL以播放流。如果默认值不合适(如果流是是直播的则默认值是直播,或如果流不是直播则默认值是流的开始),查询字符串参数可以用于请求特定的寻找时间。对于已认证的内容,优选地,原始的http://URL额外地包含由客户源生成的共享的认证令牌查询字符串参数。这使HTTP代理进程能够在某个配置的时间量(例如,给定的秒数)内提供流。在该时间后,HTTP代理进程终止连接,除非例如带外控制POST接收到有符号的“会话令牌”。虽然并不意味着是限制性的,在一种方式中这种令牌优选地由客户端通过连接至可以执行SWF验证(如图3所示)的FMS(或等同物)边缘机器而生成。该机器将有符号的会话令牌返回给客户端以转发回HTTP代理进程作为控制信道POST。一旦会话令牌由HTTP代理接收,流优选地将无限地播放。也可以实现其他类型的流认证。
图6是媒体分组流入或流出用于直播流的本公开的流服务器架构的另一视图。如上所述,架构将输入的媒体分组处理(解复用)成中间格式(IF)。特别是,编码器将CDN客户内容推至入口点。然后牵引器从EP牵引内容并且将数据传递至与其相关联的解复用器,在将IF片段引入到档案存储器网络之前,解复用器将输入的源格式(SF,如FLV)转换成IF片段。档案存储器从RTMP牵引器接收数据并且将该数据递增地写入存储器,如RAM盘(或其他的数据存储器)。如果HTTP代理(客户端与其相关)请求当前处于从牵引器接收的进程中的片段或片段索引,档案存储器发送响应(优选地在块编码的HTTP响应中),以使数据一被接收到就可以被发送。一旦片段或片段索引是完整的,指定的主档案存储器(通过主选举进程来选择)试图将所生成的文件上传到存储子系统。如上所述,与边缘区域/服务器相关联的复用器部件在分组到达最终客户端之前将分组处理(复用)成期望的目标格式(TF)。
解复用器进程可以与牵引器成整体;同样地,复用器进程可以与HTTP代理进程成整体。对于多个牵引器可以有一个解复用器进程;对于多个HTTP代理可以有一个复用器进程(在特定区域内)。
如上所述,在功能方面,解复用器将常规的流分组转换成IF片段,并且复用器起相反的作用。按照定义,解复用器和复用器应当相互补充。如所述,解复用器可以是RTMP牵引器进程的一部分或可以是在RTMP牵引器机器上运行的单独的进程。解复用器通过RTMP牵引器接收输入。它负责做以下事情:生成IF片段头部,采用源格式并将其打包均成IF主体,添加片段流头部,将IF片段推至档案存储器,分析片段并且生成与给定的FLV分组内的关键帧位置有关的索引信息,将关键帧信息推至存储服务器。这可相对于IF片段传输被同时地/同步地做出。优选地,解复用器也负责确定片段的最优大小,片段大小应该对HTTP代理缓存是最优的。解复用器可以通过检查以下的流属性来以其决定(关于片段的最优大小)为基础:输入的直播流字节率/比特率;关键帧间隔,或两者的组合。除构建IF片段之外,解复用器也负责将流属性和关键帧信息推至档案存储器。然后档案存储器可以接着创建将由HTTP代理/复用器使用的流清单文件以产生片段索引和单独的片段请求。如上所述,复用器补充解复用器。当解复用器负责构建IF片段时,复用器负责解构IF片段并且将IF有效负载格式转换成客户端请求的目标格式(TF)。复用器也可以给HTTP代理提供以下信息:关于HTTP分发的流的统计信息;和客户端会话重放信息,如重放持续时间等,以及复用器健康状态数据。
解复用器和复用器允许动态多路复用转换器输出为其他的文件格式。这使得该系统能够对不同的设备能力以杠杆作用调整一组内容源,例如,使用MPEG-2TS段的iPhone 3.0流、Microsoft Silverlight 3(具有H.264重放)、Shoutcast,等等。
作为对在编码器和档案存储器之间操作的上述“牵引”模式的变形,也有可能使用“基于推”的方式。
视频点播(VOD)分发
以上描述的架构对直播流是有用的,特别是在格式如Flash上。以下章节描述将视频点播(VOD)支持添加到该平台。特别是,以下描述的解决方案提供来自客户和基于存储子系统的源的VOD流,提供单比特率和多比特率(SBR和MBR)流,提供对存储于flv和mp4/flv容器中的源内容的支持(所支持的mp4/flv代码除了别的以外还包括用于音频的AAC、MP3、PCM和用于视频的H.264),并且使超出由最终用户直接请求的内容的下载减到最少。
对于VOD分发,流记录器层300(图3中的)优选地用转换层来替换,如将要描述的。对于使用HTTP的VOD分发,片段索引可以从动态发展(on-the-fly)的(例如,通过扫描FLV或解析MP4MOOV原子)源内容而生成并且缓存这些索引。然后实际数据检索可以被实现,因为“局部对象缓存(POC)”直接从在边缘区域处的源材料或通过中间格式(例如,通过高速缓存-h根源(parent))的中间转换来检索。如本文所使用的,局部对象缓存是指HTTP代理仅根据需要取得片段中的内容对象而不是下载整个内容对象的能力。HTTP代理可以缓存这些片段以备将来使用而不是必须在从代理被提供之后将它们释放。以这种方式检索内容对象片段的源服务器必须支持HTTP范围请求的使用。
在详细描述VOD实施方式之前,以下章节描述了VOD内容被卸载以用于到CDN的HTTP分发的若干方式。在第一实施方式中,转换工具(脚本)用于将源内容flv转换成IF,然后所生成的IF文件上传到存储子系统。在这种方式中,元数据用于使HTTP代理转发到存储子系统以检索流清单,流清单然后对于剩下的内容参照存储子系统。在这种方式中,mp4/flv文件首先被转换成flv(例如,使用ffmpeg复制模式)以将容器改变成flv。另一方式是使CDN客户将原始媒体文件上传到存储子系统并且在那里运行转换工具。另一种选择是使客户(或编码器)直接产生以IF的内容。
现在描述转换层方式。在这种方式中,点播动态IF发生器机器获得对IF(清单、索引和片段)的请求,并且通过动态地检索flv或mp4/f4v输出文件范围(从存储子系统或客户源)来满足这些请求。从那里,HTTP代理处理本质上与以上描述的“转换工具”选项相同。该发生器机器优选地运行其自身的HTTP代理(“转换器HTTP代理”)以缓存各种输入和输出、以及接受请求(例如,从本地主机连接到转发器HTTP代理)并且基于通过相关联的缓存进程从HTTP代理检索到的数据来生成IF的转换器进程(以下描述的)。在可选方案中,转换器进程可以包括转换器HTTP代理的一部分,在这种情况下,IF生成发生在代理内。片段生成也可在边缘机器HTTP代理中或甚至另外的下游(在客户端本身内)被执行,例如在客户端维持与一个或多个对等客户端的会话连接的场合。
图7示出了优选方式的架构和请求流程。在仅仅是代表性的和非限制性的本实施方式中,转换层700位于起源702(例如,客户源、或存储子系统、或两者)和流播放器层704之间。在有代表性的实施方式中,转换层在CDN内的其自身的部分中(例如,Microsoft IIS或等效网络)执行,优选地在致力于此目的的区域中。可选地,转换器(如以下描述)可以在基于HTTP的边缘机器区域的子集上运行。
图8示出了有代表性的转换器机器800。该机器与在图2中示出的机器一样包括CPU、存储器、磁盘存储器和网络接口以提供可访问互联网的机器。另外,如图8所示,在本实施方式中,转换器机器的两个主要部件包括HTTP代理802和转换器进程804。HTTP代理802执行局部对象缓存(POC)并且与转换器进程804相互作用,这生成了流清单、索引和片段。代理和转换器部件通过下面更加详细地描述的共享存储器806和流缓存进程808通过接口相互连接。作为例子最好地提供转换机器的操作。以下章节描述了从客户端到起源的、单比特率(SBR)流请求的请求流程,和以上描述的部件如何促进这一进程。提供了示例性URL。
如以下所使用的,“C”是指客户端,“EG”是指边缘机器HTTP代理,“TG”是指转换器机器HTTP代理(如图8中的代理802),“T”是指转换器进程(如图8中的进程804),以及“O”是指起源(其可以是客户源或CDN存储子系统)。
C→EG:
当客户端向边缘机器HTTP代理服务器做出对期望内容的请求时,该进程开始。有代表性的URL可以是如下:URL:http://efvod.customer.com.akamaihd.net/foo/bar/baz.mp4。
EG→自身:
然后EG HTTP代理匹配请求模式,并且设置多个参数,如“事件”、“角度”、“比特率”和“streamed”。实际路径名是“事件”,并且“streamid”识别与请求相关联的客户配置。
EG→TG:
然后EG HTTP代理前进以从转换器机器检索流清单;优选地,HTTP代理通过(向CDN DNS)提供元数据配置的主机名来前进,元数据配置的主机名解决与转换器机器相关联的地址。优选地,请求路径加客户标识符作为前缀并且由每个用户秘密例如基于在HTTP代理之间操作的认证机制来保护。有代表性的URL可以是如下:http://translator.customer.com.akamaihd.net/custid1/translate/foo/bar/baz.mp4?object=manifest。
TG→T:
如果转换器HTTP代理已经产生流清单(或可以例如通过ICP找到流清单),该清单被返回到请求流清单的边缘HTTP代理。否则,转换器HTTP代理本身前进到本地主机(localhost)以检索该清单。优选地,保留客户标识符前缀。转换器HTTP代理也可以在清单请求上(对转换器进程)应用一个或多个主机头部(host header),清单请求然后在对源内容、元索引(metaindex)等的任何请求中被反射回至转换器HTTP代理。优选地,所有相互作用均携带有这些相同的头部。这些头部确保转换器HTTP代理仅实现对适当客户的请求,并且也有助于负载平衡。使用cookie和每个客户秘密也可以认证转换器请求。有代表性的URL可以是如下:http://translator.customer.com.akamaihd.net/custid1/translate/foo/bar/baz.mp4?object=manifest。
转发IP/端口:127.0.0.1:yyyy
T→TG:
转换器又使用流缓存进程和cookie从转换器HTTP代理检索流的“元索引”。(为了产生清单,通常仅检索元索引的开始部分)。转换器将客户特有的秘密(来自原始请求)应用于返回到HTTP代理的元索引请求。使用“在索引”中的信息,转换器生成流清单。有代表性的URL如下:http://translator.customer.com.akamaihd.net/custid1/metaindex/foo/bar/baz.mp4&format=mp4。
转发IP/端口:127.0.0.1:80
TG→T:
如果转换器HTTP代理服务器没有被已经缓存的元索引,它再次前进到转换器(与清单的程序相同的程序)。有代表性的URL如下:http://translator.customer.com.akamaihd.net/custid1/metaindex/foo/bar/baz.mp4&format=mp4。
转发IP/端口:127.0.0.1:yyyy
T→TG:
当转换器接收到对元索引的请求时,它检索原始内容的小子集(通过流缓存进程使用以上与清单的程序相同的程序),转换器HTTP代理能够优选地使用局部对象缓存(POC)从起源检索原始内容的小子集。对于flv文件,优选地将仅读取起始和最后的块。对于mp4/f4v文件,优选地在文件开头部分的“moov”原子被全部处理。优选地沿着这整个路径传递客户特有的前缀和秘密。有代表性的URL如下:http://translator.customer.com.akamaihd.net/custid1/origin/foo/bar/baz.mp4。
转发IP/端口:127.0.0.1:80
TG→O:
转换器HTTP代理服务器最终前进到POC缺失上的合适的起源。有代表性的URL如下:URL:http://some.origin.com/some/customer/prefix/foo/bar/baz.mp4。
EG→TG→...→O:
此时,边缘机器HTTP代理具有清单并且需要索引。边缘机器HTTP代理再次前进到对索引的转换器。该进程以本质上与对清单的方式相同的方式进行。对于“mp4/f4v”文件,优选地所有索引被预先计算并且逐字地存储于元索引中,以便不需要mp4/f4v内容访问。然而,这不是要求。对于“flv”文件,产生完整的索引信息通常需要读取整个文件;因此,对于这种类型的内容,优选地例如在flv内容上使用二进制搜索并且然后仅下载内容的窗口来生成小索引(例如,每一个几秒钟)。来自HTTP代理的转发请求(如在流清单中的指定的)可以如下:http://translator.customer.com.akamaihd.net/custid1/translate/foo/bar/baz.mp4?object=index&number=1234&etag=3-1234567890ab。
附加的查询字符串参数可以从清单被传递回到索引或片段请求,以确保在清单生成和索引/片段检索之间可能已经改变的任何参数之间的一致性。
EG→TG→...→O:
最后类型的请求是针对实际片段。对于mp4/f4v文件,元索引包括足以产生任何所请求的IF片段的指令而没有重新解析或另外咨询原始“moov”原子。优选地,实际的原始数据通过POC和/或流缓存进程来被检索并且组合成有效的IF片段。对于flv文件,通过直接寻找“desired_fragment_size*(fragment_number-1)”并且然后向前扫描第一个有效的flv标签来生成片段。片段的结尾刚好是在文件偏移量“desired_fragment_size*(fragment_number)”处或之后的第一个标签边界。有代表性的URL如下:http://translator.customer.com.akamaihd.net/custid1/translate/foo/bar/baz.mp4?object=fragment&number=1234&etag=3-1234567890ab。
这完成了对SBR流请求的客户端到起源请求流程的描述。以下提供关于VOD实现的附加的细节。
元索引是二进制格式,其优选地包括优选地以下列顺序的多个部分:(i)每个流信息的固定大小的全局头部;(ii)用于识别哪些文件被加索引的附加的“内容检验器”信息,例如ETags;(iii)流的“onMetaData”标签;(iv)每个轨道信息,包括flv编码解码器标识符和AAC和H.264所需的可选的编码解码器配置参数;(v)(仅mp4/f4v)将片段编号映射到以下的“sample_info”的查找表;(vi)(仅mp4/f4v)IF索引;(vii)(仅mp4/f4v)“sample_info”,其描述要交错到输出中的每一单独的样本。“sample_info”本质上是从mpeg-4容器的许多复杂性提取的“moov”原子的优化版本。总之,这应该是相当紧凑的表示,常常小于相应的“moov”原子。
流清单可以包括多比特率(MBR)流的所有比特率。为了产生MBR流清单,该清单请求可以参照SMIL文件,其又包括单独的比特率和flv或mp4/f4v源文件。对于MBR分发,为了产生实际的清单,转换器下载每一比特率的元索引。索引和片段请求仅需要边缘机器HTTP代理想要播放的特定比特率的元索引文件。MBR片段和索引请求类似于它们的SBR对应物,除了它们还包括通过清单中的<locationInfo>标签中的模式添加至C→EG→TG→T链中的每一路径的“smil=...”查询字符串变元。
优选地,实际的格式(“mp4”与“flv”)被包括在元索引、片段和索引URL中作为“格式”查询字符串变元。
如上所述,IF生成可以发生在HTTP代理内或与HTTP代理相关联,甚至包括边缘机器。这允许在接近于请求最终用户的边缘本身创建内容。事实上,这种方式(在HTTP代理中的IF生成或与HTTP代理相关联的IF生成)可以更进一步在下游移动,即在客户端机器本身内。如果客户端包括便于与对等(P2P)网络的基于对等的网络会话连接的软件,这是可能的,对等网络的至少一些部分基于CDN资源,包括运行HTTP代理的边缘机器。如上所述,在HTTP代理中(或在与其相关联的复用器进程中)生成IF是可能的。当这种P2P网络会话软件在客户端内执行时,可能在下游将扩展HTTP代理接口一直扩展到客户端机器本身。在这个方法中,复用发生在客户端本身中,在这种情况下,边缘机器仅成为在包括客户端分发机构的缓存层中的“根源”高速缓冲存储器。这种方式还可以与具有有限带宽的移动设备一起使用。
以上描述的方式提供许多优势。本文描述的技术有助于在HTTP-边缘网络上分发高清视频和音频(包括先进的视频特征,如DVR),在典型的CDN中,HTTP-边缘网络是具有最大覆盖区的网络。通过实现这些技术,提供者可以以杠杆作用调整其现有的基于HTTP的服务器,而不必实现和维持专用服务器网络以支持多个第三方运行环境。另外,由于分发是基于HTTP的,所以内容可被无缝地分发到在固定线路和移动环境中操作的客户端。不需要特殊的客户端软件,因为HTTP代理服务器(其响应于客户端请求)动态地重组它获得的片段并通过HTTP提供所请求的内容。另外,由于在CDN的这组相互连接的机器组内的分发优选地利用中间格式,网络可以按一种格式吸收内容,然而用另一种格式提供该内容,而保留单比特率或多比特率和类似DVR的功能。因此,例如,网络可以接受直播RTMP分组并且提供内容作为FLV渐进式下载。优选地,流的每一IF片段是HTTP代理的单独的对象,其可以通过HTTP来被访问、缓存和服务。依据该方案,流被分解为许多小对象(片段),并且每一片段被单独地管理。
网络并不仅限于用在任何特定的运行环境如Flash上。通过以杠杆作用调整如所述的方式,可对不同的设备能力以杠杆作用调整单组内容源。因此,如本文所述的技术包括以对内容提供者和最终用户透明的方式动态地将内容改变成其他的文件格式。
中间格式可以基于或适合于多媒体内容的分发和重放可以使用的任何方便的多媒体文件格式。这些包括但不限于成片段的mp4、被保护的可互操作的文件格式(piff)等。更一般地,可以使用任何基于链接的列表的文件格式。
优选地,CDN服务提供者提供外联网(基于网络的门户),流分发通过外联网来提供。
以上描述的每一进程优选地在计算机软件中被实现为在作为专用机器的一个或多个处理器中可执行的程序指令。
有代表性的机器(其上提供了本文主题)可以基于英特尔奔腾计算机,其运行Linux或Linux变体操作系统和一个或多个应用来实现所描述的功能。以上描述的一个或多个进程被实现为用于执行所描述的功能的计算机程序,即,一组计算机指令。
虽然以上描述了由本发明的某些实施方式实现的操作的特定顺序,应当理解,这种顺序是示例性的,因为可选的实施方式可以以不同的顺序执行这些操作,组合某些操作、重复某些操作等。在本说明书中对给定的实施方式的提及指示所描述的实施方式可包括特定的特征、结构或特性,但每一实施方式可以不一定包括特定特征、结构或特性。
虽然在方法或过程的背景中描述了所公开的主题,该主题还涉及用于执行本文的操作的装置。该装置可以是为了所需目的而特别构建的特定机器,或者它可以包括计算机,其另外选择性地由存储于计算机中的计算机程序启动或重新配置。这种计算机程序可以被存储于计算机可读存储介质中,例如但不限于任何类型的磁盘,包括光盘、CD-ROM、和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、磁卡或光卡、或适合于存储电子指令的任何类型的介质,并且每个介质均连接至计算机系统总线。本发明的给定的实现是用给定的编程语言编写的软件,其结合在标准的英特尔硬件平台上的DNS兼容的名称服务器(例如,BIND)运行,该英特尔硬件平台运行操作系统如Linux。功能可被内建到名称服务器代码中,或它可以被执行为该代码的附件。实现本文的技术的机器包括处理器、保存由处理器执行的指令的计算机存储器,以执行以上描述的方法。
虽然单独地描述了该系统的给定的部件,普通技术人员将认识到,可以组合或在给定的指令、程序序列、代码部分及其他类似物中共享一些功能。
在描述了我们的发明后,现在我们的权利要求如下。
Claims (12)
1.一种在内容分发网络(CDN)中进行流式传输的方法,包括:
通过以下子步骤记录流:
在入口点接收源格式的流;
将所述流转换成中间格式(IF),其中所述中间格式是用于在CDN内分发所述流的内部格式,并且包括流清单、一组一个或多个片段索引(FI)和一组IF片段;以及
以所述中间格式将所述流存档;以及
通过以下子步骤播放所述流:
响应于在边缘服务器进程接收到对所述流或其一部分的请求,将所述流清单和至少一个片段索引检索到所述边缘服务器进程;
使用所述片段索引,将所述IF片段检索到所述边缘服务器进程;
将所述IF片段转换成目标格式;以及
以所述目标格式提供所述流。
2.如权利要求1所述的方法,其中所述源格式与所述目标格式相同。
3.如权利要求1所述的方法,其中所述IF片段经由HTTP被检索到所述边缘服务器进程。
4.如权利要求1所述的方法,其中通过HTTP执行所述存档。
5.如权利要求1所述的方法,其中所述流是直播流和DVR流中的一个。
6.如权利要求1所述的方法,还包括缓存预定数量的IF片段用于直播流重放。
7.如权利要求1所述的方法,还包括存储所述IF片段。
8.一种装置,包括:
一组相互连接的机器,每一机器包括处理器和用于保存计算机程序指令的计算机存储器,当所述计算机程序指令由所述处理器执行时,有助于基于HTTP的流分发的方法,所述方法包括:
将所述流从源格式转换成中间格式(IF),其中所述中间格式是用于在所述一组相互连接的机器内分发所述流的内部格式,所述中间格式包括流清单、一组一个或多个片段索引(FI)和一组IF片段;
存储所述流清单、所述一组一个或多个片段索引和所述一组IF片段;
响应于收到对所述流或其一部分的请求,检索所述流清单和至少一个片段索引;
使用所述片段索引,通过HTTP检索一个或多个IF片段;
将所检索到的IF片段转换成目标格式;以及
响应于对所述流或其一部分的所述请求,通过HTTP以所述目标格式提供所述流。
9.如权利要求8所述的装置,其中所述流是直播流、DVR流和VOD中的一个。
10.如权利要求8所述的装置,其中所述源格式与所述目标格式相同。
11.如权利要求9所述的装置,其中对于直播流,所述方法包括以所述中间格式将所述流的当前部分存档。
12.如权利要求9所述的装置,其中对于直播流,所述方法包括在第一机器将构成所述流的第一部分的IF片段存档,并在第二机器存储构成所述流的第二部分的IF片段,所述第二部分与所述第一部分相比是较旧的。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23437109P | 2009-08-17 | 2009-08-17 | |
US61/234,371 | 2009-08-17 | ||
US29144309P | 2009-12-31 | 2009-12-31 | |
US61/291,443 | 2009-12-31 | ||
PCT/US2010/045766 WO2011022405A2 (en) | 2009-08-17 | 2010-08-17 | Method and system for http-based stream delivery |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102792291A true CN102792291A (zh) | 2012-11-21 |
CN102792291B CN102792291B (zh) | 2015-11-25 |
Family
ID=43607555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080046681.5A Active CN102792291B (zh) | 2009-08-17 | 2010-08-17 | 基于http的流分发的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (4) | US9537967B2 (zh) |
EP (1) | EP2467786B1 (zh) |
CN (1) | CN102792291B (zh) |
WO (1) | WO2011022405A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363511A (zh) * | 2014-11-28 | 2015-02-18 | 北京奇艺世纪科技有限公司 | 一种在移动设备中在线播放F4v视频的方法及系统 |
CN105786953A (zh) * | 2015-01-12 | 2016-07-20 | 帕洛阿尔托研究中心公司 | 在内容中心网络中对编码清单排序 |
CN108200443A (zh) * | 2017-12-29 | 2018-06-22 | 北京奇虎科技有限公司 | 一种直播流的分发方法和装置 |
CN114189505A (zh) * | 2021-10-29 | 2022-03-15 | 深圳市酷开网络科技股份有限公司 | 文件共享方法、计算机设备及存储介质 |
Families Citing this family (154)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
US8472792B2 (en) | 2003-12-08 | 2013-06-25 | Divx, Llc | Multimedia distribution system |
JP5200204B2 (ja) | 2006-03-14 | 2013-06-05 | ディブエックス リミテッド ライアビリティー カンパニー | 高信頼性システムを含む連合型デジタル権限管理機構 |
ES2709208T3 (es) | 2007-01-05 | 2019-04-15 | Sonic Ip Inc | Sistema de distribución de vídeo que incluye reproducción progresiva |
US8233768B2 (en) | 2007-11-16 | 2012-07-31 | Divx, Llc | Hierarchical and reduced index structures for multimedia files |
AU2010276462B1 (en) | 2010-12-27 | 2012-01-12 | Limelight Networks, Inc. | Partial object caching |
AU2010202034B1 (en) | 2010-04-07 | 2010-12-23 | Limelight Networks, Inc. | Partial object distribution in content delivery network |
EP2329395A2 (en) | 2008-09-19 | 2011-06-08 | Limelight Networks, Inc. | Content delivery network stream server vignette distribution |
US9426213B2 (en) * | 2008-11-11 | 2016-08-23 | At&T Intellectual Property Ii, L.P. | Hybrid unicast/anycast content distribution network system |
US8156089B2 (en) | 2008-12-31 | 2012-04-10 | Apple, Inc. | Real-time or near real-time streaming with compressed playlists |
US8099476B2 (en) | 2008-12-31 | 2012-01-17 | Apple Inc. | Updatable real-time or near real-time streaming |
US8260877B2 (en) | 2008-12-31 | 2012-09-04 | Apple Inc. | Variant streams for real-time or near real-time streaming to provide failover protection |
US9485299B2 (en) * | 2009-03-09 | 2016-11-01 | Arris Canada, Inc. | Progressive download gateway |
US10410222B2 (en) | 2009-07-23 | 2019-09-10 | DISH Technologies L.L.C. | Messaging service for providing updates for multimedia content of a live event delivered over the internet |
US8560597B2 (en) * | 2009-07-30 | 2013-10-15 | At&T Intellectual Property I, L.P. | Anycast transport protocol for content distribution networks |
US8566393B2 (en) | 2009-08-10 | 2013-10-22 | Seawell Networks Inc. | Methods and systems for scalable video chunking |
US8966033B2 (en) * | 2009-08-17 | 2015-02-24 | At&T Intellectual Property I, L.P. | Integrated proximity routing for content distribution |
EP2467786B1 (en) * | 2009-08-17 | 2019-07-31 | Akamai Technologies, Inc. | Method and system for http-based stream delivery |
US8626876B1 (en) * | 2012-11-28 | 2014-01-07 | Limelight Networks, Inc. | Intermediate content processing for content delivery networks |
US8560604B2 (en) | 2009-10-08 | 2013-10-15 | Hola Networks Ltd. | System and method for providing faster and more efficient data communication |
JP2011087103A (ja) * | 2009-10-15 | 2011-04-28 | Sony Corp | コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供 |
WO2011068784A1 (en) * | 2009-12-01 | 2011-06-09 | Azuki Systems, Inc. | Method and system for secure and reliable video streaming with rate adaptation |
WO2011068668A1 (en) | 2009-12-04 | 2011-06-09 | Divx, Llc | Elementary bitstream cryptographic material transport systems and methods |
US20110296048A1 (en) * | 2009-12-28 | 2011-12-01 | Akamai Technologies, Inc. | Method and system for stream handling using an intermediate format |
GB201105502D0 (en) * | 2010-04-01 | 2011-05-18 | Apple Inc | Real time or near real time streaming |
US8805963B2 (en) | 2010-04-01 | 2014-08-12 | Apple Inc. | Real-time or near real-time streaming |
CN102882845B (zh) | 2010-04-07 | 2016-07-13 | 苹果公司 | 实时或准实时流传输 |
US8782268B2 (en) * | 2010-07-20 | 2014-07-15 | Microsoft Corporation | Dynamic composition of media |
US11032583B2 (en) * | 2010-08-22 | 2021-06-08 | QWLT, Inc. | Method and system for improving high availability for live content |
US9117055B2 (en) * | 2010-10-12 | 2015-08-25 | Samsung Electronics Co., Ltd | Method and apparatus for downloading DRM module |
US9251284B2 (en) * | 2010-12-02 | 2016-02-02 | Microsoft Technology Licensing, Llc | Mixing synchronous and asynchronous data streams |
US20120151080A1 (en) * | 2010-12-14 | 2012-06-14 | of California | Media Repackaging Systems and Software for Adaptive Streaming Solutions, Methods of Production and Uses Thereof |
US8880633B2 (en) | 2010-12-17 | 2014-11-04 | Akamai Technologies, Inc. | Proxy server with byte-based include interpreter |
EP2659401B1 (en) | 2010-12-30 | 2019-06-26 | Peerapp, Ltd. | Methods and systems for caching data communications over computer networks |
EP3518504B1 (en) * | 2010-12-30 | 2020-09-16 | Peerapp, Ltd. | Methods and systems for transmission of data over computer networks |
US9247312B2 (en) | 2011-01-05 | 2016-01-26 | Sonic Ip, Inc. | Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol |
US8489760B2 (en) * | 2011-03-31 | 2013-07-16 | Juniper Networks, Inc. | Media file storage format and adaptive delivery system |
CN102845041B (zh) * | 2011-04-21 | 2015-11-25 | 华为技术有限公司 | 基于超文本传输协议的多码率定位播放方法、设备及系统 |
US8856283B2 (en) | 2011-06-03 | 2014-10-07 | Apple Inc. | Playlists for real-time or near real-time streaming |
US8843586B2 (en) | 2011-06-03 | 2014-09-23 | Apple Inc. | Playlists for real-time or near real-time streaming |
US10652343B2 (en) | 2011-06-08 | 2020-05-12 | Koninklijke Kpn N.V. | Locating and retrieving segmented content |
US8812662B2 (en) | 2011-06-29 | 2014-08-19 | Sonic Ip, Inc. | Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content |
US9467708B2 (en) | 2011-08-30 | 2016-10-11 | Sonic Ip, Inc. | Selection of resolutions for seamless resolution switching of multimedia content |
KR101928910B1 (ko) | 2011-08-30 | 2018-12-14 | 쏘닉 아이피, 아이엔씨. | 복수의 최대 비트레이트 레벨들을 사용하여 인코딩된 비디오를 인코딩하고 스트리밍하기 위한 시스템들 및 방법들 |
US8806188B2 (en) | 2011-08-31 | 2014-08-12 | Sonic Ip, Inc. | Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files |
US8799647B2 (en) | 2011-08-31 | 2014-08-05 | Sonic Ip, Inc. | Systems and methods for application identification |
US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
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 |
US9432704B2 (en) | 2011-11-06 | 2016-08-30 | Akamai Technologies Inc. | Segmented parallel encoding with frame-aware, variable-size chunking |
EP2792123B1 (en) * | 2011-12-06 | 2017-09-27 | Echostar Technologies L.L.C. | Remote storage digital video recorder and related operating methods |
US9049484B2 (en) | 2011-12-06 | 2015-06-02 | Echostar Technologies L.L.C. | Efficient assignment of program copies in a network digital video recorder |
WO2013090280A2 (en) | 2011-12-15 | 2013-06-20 | Dolby Laboratories Licensing Corporation | Bandwidth adaptation for dynamic adaptive transferring of multimedia |
US9742858B2 (en) | 2011-12-23 | 2017-08-22 | Akamai Technologies Inc. | Assessment of content delivery services using performance measurements from within an end user client application |
EP2798816B1 (en) | 2011-12-29 | 2016-05-11 | Koninklijke KPN N.V. | Network-initiated content streaming control |
US9419852B1 (en) | 2011-12-30 | 2016-08-16 | Akamai Technologies, Inc. | Systems and methods for identifying and characterizing client devices |
US8918908B2 (en) | 2012-01-06 | 2014-12-23 | Sonic Ip, Inc. | Systems and methods for accessing digital content using electronic tickets and ticket tokens |
US9596493B2 (en) | 2012-01-30 | 2017-03-14 | Dell Products L.P. | Multi-stream container information communication between information handling systems |
WO2014015110A1 (en) | 2012-07-18 | 2014-01-23 | Verimatrix, Inc. | Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution |
US9804668B2 (en) * | 2012-07-18 | 2017-10-31 | Verimatrix, Inc. | Systems and methods for rapid content switching to provide a linear TV experience using streaming content distribution |
US9277249B2 (en) | 2012-07-24 | 2016-03-01 | The Directv Group, Inc. | Method and system for providing on-demand and pay-per-view content through a hospitality system |
US9356821B1 (en) * | 2012-08-08 | 2016-05-31 | Tata Communications (America) Inc. | Streaming content delivery system and method |
EP2888671A4 (en) | 2012-08-27 | 2016-04-20 | Akamai Tech Inc | PREVENT THE TCP PROTOCOL FROM BECOMING TOO QUICKLY TOO RESTRICTIVE |
US9936267B2 (en) | 2012-08-31 | 2018-04-03 | Divx Cf Holdings Llc | System and method for decreasing an initial buffering period of an adaptive streaming system |
US20140063339A1 (en) * | 2012-09-04 | 2014-03-06 | Google Inc. | In Browser Muxing and Demuxing For Video Playback |
US8875287B2 (en) | 2012-10-04 | 2014-10-28 | Akamai Technologies, Inc. | Server with mechanism for reducing internal resources associated with a selected client connection |
CN102905164B (zh) * | 2012-10-11 | 2016-08-24 | 中兴通讯股份有限公司 | 电视节目点播管理方法及系统 |
CN103795750B (zh) * | 2012-10-31 | 2017-03-01 | 中国银联股份有限公司 | 一种文件传送方法及其系统 |
US9736271B2 (en) | 2012-12-21 | 2017-08-15 | Akamai Technologies, Inc. | Scalable content delivery network request handling mechanism with usage-based billing |
US9654579B2 (en) | 2012-12-21 | 2017-05-16 | Akamai Technologies, Inc. | Scalable content delivery network request handling mechanism |
US9729605B2 (en) | 2012-12-27 | 2017-08-08 | Akamai Technologies Inc. | Mechanism for distinguishing between content to be served through first or second delivery channels |
US9716916B2 (en) | 2012-12-28 | 2017-07-25 | Echostar Technologies L.L.C. | Adaptive multicast delivery of media streams |
US10708319B2 (en) | 2012-12-31 | 2020-07-07 | Dish Technologies Llc | Methods and apparatus for providing social viewing of media content |
US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
US10051025B2 (en) | 2012-12-31 | 2018-08-14 | DISH Technologies L.L.C. | Method and apparatus for estimating packet loss |
US10104141B2 (en) | 2012-12-31 | 2018-10-16 | DISH Technologies L.L.C. | Methods and apparatus for proactive multi-path routing |
US9191457B2 (en) | 2012-12-31 | 2015-11-17 | Sonic Ip, Inc. | Systems, methods, and media for controlling delivery of content |
US9420019B2 (en) * | 2013-01-28 | 2016-08-16 | The Directv Group, Inc. | Method and system for securing content communication in chunks from a content delivery network to a user receiving device |
KR101983432B1 (ko) | 2013-03-14 | 2019-05-28 | 제너럴 인스트루먼트 코포레이션 | 동적 적응형 스트리밍 오버 http(dash)를 http 라이브 스트리밍(hls)으로 변환 또는 번역하기 위한 장치, 시스템, 및 방법 |
US9100461B2 (en) | 2013-03-15 | 2015-08-04 | Wowza Media Systems, LLC | Automatically publishing streams to multiple destinations |
US10397292B2 (en) | 2013-03-15 | 2019-08-27 | Divx, Llc | Systems, methods, and media for delivery of content |
US9906785B2 (en) | 2013-03-15 | 2018-02-27 | Sonic Ip, Inc. | Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata |
US9094737B2 (en) | 2013-05-30 | 2015-07-28 | Sonic Ip, Inc. | Network video streaming with trick play based on separate trick play files |
US9100687B2 (en) | 2013-05-31 | 2015-08-04 | Sonic Ip, Inc. | Playback synchronization across playback devices |
US9380099B2 (en) | 2013-05-31 | 2016-06-28 | Sonic Ip, Inc. | Synchronizing multiple over the top streaming clients |
US9544352B2 (en) | 2013-06-11 | 2017-01-10 | Bitmovin Gmbh | Adaptation logic for varying a bitrate |
US9241044B2 (en) | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
US10015222B2 (en) * | 2013-09-26 | 2018-07-03 | Arris Canada, Inc. | Systems and methods for selective retrieval of adaptive bitrate streaming media |
US9819721B2 (en) | 2013-10-31 | 2017-11-14 | Akamai Technologies, Inc. | Dynamically populated manifests and manifest-based prefetching |
US20150189365A1 (en) * | 2013-12-26 | 2015-07-02 | Thomson Licensing | Method and apparatus for generating a recording index |
US9386067B2 (en) | 2013-12-30 | 2016-07-05 | Sonic Ip, Inc. | Systems and methods for playing adaptive bitrate streaming content by multicast |
US9485456B2 (en) | 2013-12-30 | 2016-11-01 | Akamai Technologies, Inc. | Frame-rate conversion in a distributed computing system |
US20160352857A1 (en) * | 2014-01-07 | 2016-12-01 | Thomson Licensing | Method for adapting the behavior of a cache, and corresponding cache |
US9075962B1 (en) * | 2014-02-11 | 2015-07-07 | Ramp Holdings, Inc. | Secure video delivery |
US9866655B2 (en) | 2014-03-31 | 2018-01-09 | Akamai Technologies, Inc. | Server initiated multipath content delivery |
US9866878B2 (en) | 2014-04-05 | 2018-01-09 | Sonic Ip, Inc. | Systems and methods for encoding and playing back video at different frame rates using enhancement layers |
CN103986974B (zh) * | 2014-06-05 | 2018-01-19 | 安一恒通(北京)科技有限公司 | 视频加载判定方法和装置 |
KR102597985B1 (ko) | 2014-08-07 | 2023-11-06 | 디빅스, 엘엘씨 | 독립적으로 인코딩된 타일을 포함한 기본 비트스트림을 보호하는 시스템 및 방법 |
US9363566B2 (en) * | 2014-09-16 | 2016-06-07 | The Directv Group, Inc. | Method and system for prepositioning content and distributing content in a local distribution system |
US10142386B2 (en) | 2014-10-29 | 2018-11-27 | DLVR, Inc. | Determining manifest file data used in adaptive streaming video delivery |
US9509742B2 (en) | 2014-10-29 | 2016-11-29 | DLVR, Inc. | Configuring manifest files referencing infrastructure service providers for adaptive streaming video |
US10084838B2 (en) * | 2014-10-29 | 2018-09-25 | DLVR, Inc. | Generating and using manifest files including content delivery network authentication data |
US9723095B2 (en) | 2014-12-05 | 2017-08-01 | At&T Intellectual Property I, L.P. | Multi delivery method policy controlled client proxy |
KR102012682B1 (ko) | 2015-01-06 | 2019-08-22 | 디브이엑스, 엘엘씨 | 디바이스들간에 콘텐트를 인코딩 및 공유하기 위한 시스템들 및 방법들 |
US10812580B2 (en) | 2015-01-30 | 2020-10-20 | Akamai Technologies, Inc. | Using resource timing data for server push |
US10313463B2 (en) | 2015-02-19 | 2019-06-04 | Akamai Technologies, Inc. | Systems and methods for avoiding server push of objects already cached at a client |
US10630771B1 (en) | 2015-02-26 | 2020-04-21 | Akamai Technologies, Inc. | Content delivery network with network storage and support for on-demand content upload |
KR101897959B1 (ko) | 2015-02-27 | 2018-09-12 | 쏘닉 아이피, 아이엔씨. | 라이브 비디오 인코딩 및 스트리밍에서의 프레임 복제 및 프레임 확장을 위한 시스템 및 방법 |
CN106209952B (zh) * | 2015-05-08 | 2020-09-29 | 中兴通讯股份有限公司 | 服务节点分配方法、装置、cdn管理服务器及系统 |
US11057446B2 (en) | 2015-05-14 | 2021-07-06 | Bright Data Ltd. | System and method for streaming content from multiple servers |
US9954930B2 (en) * | 2015-08-06 | 2018-04-24 | Airwatch Llc | Generating content fragments for content distribution |
US20170150206A1 (en) * | 2015-11-24 | 2017-05-25 | Le Holdings (Beijing) Co., Ltd. | Online video player and its method |
EP3398336A1 (en) | 2015-12-29 | 2018-11-07 | Dish Technologies L.L.C. | Methods and systems for assisted content delivery |
US10541987B2 (en) * | 2016-02-26 | 2020-01-21 | Tandem Diabetes Care, Inc. | Web browser-based device communication workflow |
US10075292B2 (en) | 2016-03-30 | 2018-09-11 | Divx, Llc | Systems and methods for quick start-up of playback |
US10231001B2 (en) | 2016-05-24 | 2019-03-12 | Divx, Llc | Systems and methods for providing audio content during trick-play playback |
US10129574B2 (en) | 2016-05-24 | 2018-11-13 | Divx, Llc | Systems and methods for providing variable speeds in a trick-play mode |
US10148989B2 (en) | 2016-06-15 | 2018-12-04 | Divx, Llc | Systems and methods for encoding video content |
US9667619B1 (en) | 2016-10-14 | 2017-05-30 | Akamai Technologies, Inc. | Systems and methods for utilizing client side authentication to select services available at a given port number |
US10084855B2 (en) | 2017-01-23 | 2018-09-25 | Akamai Technologies, Inc. | Pixel-based load balancing |
US10498795B2 (en) | 2017-02-17 | 2019-12-03 | Divx, Llc | Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming |
US9986269B1 (en) | 2017-03-03 | 2018-05-29 | Akamai Technologies, Inc. | Maintaining stream continuity counter in a stateless multiplexing system |
WO2018165190A1 (en) | 2017-03-07 | 2018-09-13 | Akamai Technologies, Inc. | Cooperative multipath |
CN107094243A (zh) * | 2017-05-03 | 2017-08-25 | 国家电网公司 | 一种架空输电线路通道可视化巡检装置及方法 |
US11146608B2 (en) | 2017-07-20 | 2021-10-12 | Disney Enterprises, Inc. | Frame-accurate video seeking via web browsers |
EP3767494B1 (en) | 2017-08-28 | 2023-02-15 | Bright Data Ltd. | Method for improving content fetching by selecting tunnel devices |
US11190374B2 (en) | 2017-08-28 | 2021-11-30 | Bright Data Ltd. | System and method for improving content fetching by selecting tunnel devices |
US10764391B2 (en) | 2017-09-14 | 2020-09-01 | Akamai Technologies, Inc. | Origin and cache server cooperation for compute-intensive content delivery |
US10887385B2 (en) | 2017-09-20 | 2021-01-05 | Akamai Technologies, Inc. | Marker based reporting system for hybrid content delivery network and peer to peer network |
US10531134B2 (en) | 2017-11-10 | 2020-01-07 | Akamai Technologies, Inc. | Determining a time budget for transcoding of video |
US10581948B2 (en) | 2017-12-07 | 2020-03-03 | Akamai Technologies, Inc. | Client side cache visibility with TLS session tickets |
US10439925B2 (en) | 2017-12-21 | 2019-10-08 | Akamai Technologies, Inc. | Sandbox environment for testing integration between a content provider origin and a content delivery network |
US10810279B2 (en) | 2018-02-07 | 2020-10-20 | Akamai Technologies, Inc. | Content delivery network (CDN) providing accelerated delivery of embedded resources from CDN and third party domains |
US10764402B2 (en) | 2018-03-03 | 2020-09-01 | Akamai Technologies, Inc. | Leveraging time-windows generated by web browser pre-connections |
US10440142B2 (en) | 2018-03-06 | 2019-10-08 | Akamai Technologies, Inc. | Automated TTL adjustment using cache performance and purge data |
US10958649B2 (en) | 2018-03-21 | 2021-03-23 | Akamai Technologies, Inc. | Systems and methods for internet-wide monitoring and protection of user credentials |
US10681001B2 (en) | 2018-03-29 | 2020-06-09 | Akamai Technologies, Inc. | High precision mapping with intermediary DNS filtering |
US10452563B1 (en) | 2018-05-07 | 2019-10-22 | Akamai Technologies, Inc. | Cache eviction scheme for acceptable substitutes in online media |
CN108848060B (zh) * | 2018-05-17 | 2021-08-24 | 上海哔哩哔哩科技有限公司 | 一种多媒体文件处理方法、处理系统及计算机可读存储介质 |
US10667172B2 (en) | 2018-06-18 | 2020-05-26 | Akamai Technologies, Inc. | Download management with congestion mitigation for over the air content delivery to vehicles |
EP3808043A4 (en) | 2018-06-18 | 2021-09-15 | Akamai Technologies, Inc. | MANAGEMENT OF DOWNLOADS WITH REDUCED CLOGGING FOR DISTRIBUTION OF CONTENT BY RADIO TO VEHICLES |
US11012362B2 (en) | 2018-06-18 | 2021-05-18 | Akamai Technologies, Inc. | Download management with congestion mitigation for over the air content delivery to vehicles |
US10834138B2 (en) | 2018-08-13 | 2020-11-10 | Akamai Technologies, Inc. | Device discovery for cloud-based network security gateways |
US10931695B2 (en) | 2018-08-22 | 2021-02-23 | Akamai Technologies, Inc. | Nonce injection and observation system for detecting eavesdroppers |
US10798006B2 (en) | 2018-10-12 | 2020-10-06 | Akamai Technologies, Inc. | Overload protection for data sinks in a distributed computing system |
US11310201B2 (en) | 2018-10-23 | 2022-04-19 | Akamai Technologies, Inc. | Network security system with enhanced traffic analysis based on feedback loop |
US11019034B2 (en) | 2018-11-16 | 2021-05-25 | Akamai Technologies, Inc. | Systems and methods for proxying encrypted traffic to protect origin servers from internet threats |
US10951589B2 (en) | 2018-12-06 | 2021-03-16 | Akamai Technologies, Inc. | Proxy auto-configuration for directing client traffic to a cloud proxy |
LT3780547T (lt) | 2019-02-25 | 2023-03-10 | Bright Data Ltd. | Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas |
BR112021018802A2 (pt) | 2019-03-21 | 2021-11-23 | Divx Llc | Sistemas e métodos para enxames de multimídia |
EP4027618A1 (en) | 2019-04-02 | 2022-07-13 | Bright Data Ltd. | Managing a non-direct url fetching service |
US11323764B2 (en) * | 2019-09-20 | 2022-05-03 | Comcast Cable Communications, Llc | Caching recorded content segments on playback |
CN111147573A (zh) * | 2019-12-24 | 2020-05-12 | 网宿科技股份有限公司 | 一种数据传输的方法和装置 |
CN112423117B (zh) * | 2020-06-11 | 2022-12-16 | 上海哔哩哔哩科技有限公司 | Web端视频播放方法、装置及计算机设备 |
US11895213B2 (en) * | 2022-05-20 | 2024-02-06 | Samsung Electronics Co., Ltd. | Application server assisted content management in cellular network |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020124098A1 (en) * | 2001-01-03 | 2002-09-05 | Shaw David M. | Streaming media subscription mechanism for a content delivery network |
KR20080003961A (ko) * | 2006-07-04 | 2008-01-09 | (주) 컨텐츠플러그 | 동영상 콘텐츠 서비스 시스템 및 방법 |
CN101283351A (zh) * | 2005-07-19 | 2008-10-08 | 苹果公司 | 用于媒体数据传输的方法和设备 |
Family Cites Families (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01175671A (ja) | 1987-12-29 | 1989-07-12 | Nippon Steel Corp | 図面データの変換方法 |
WO1996027155A2 (en) | 1995-02-13 | 1996-09-06 | Electronic Publishing Resources, Inc. | Systems and methods for secure transaction management and electronic rights protection |
US6965682B1 (en) | 1999-05-19 | 2005-11-15 | Digimarc Corp | Data transmission by watermark proxy |
US5881245A (en) | 1996-09-10 | 1999-03-09 | Digital Video Systems, Inc. | Method and apparatus for transmitting MPEG data at an adaptive data rate |
US6396805B2 (en) * | 1997-03-25 | 2002-05-28 | Intel Corporation | System for recovering from disruption of a data transfer |
US6141753A (en) | 1998-02-10 | 2000-10-31 | Fraunhofer Gesellschaft | Secure distribution of digital representations |
US6108703A (en) | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
JP2000222303A (ja) | 1999-02-02 | 2000-08-11 | Fai:Kk | 情報伝送方法 |
US7565294B2 (en) | 1999-05-19 | 2009-07-21 | Digimarc Corporation | Methods and systems employing digital content |
US6463508B1 (en) * | 1999-07-19 | 2002-10-08 | International Business Machines Corporation | Method and apparatus for caching a media stream |
US7770016B2 (en) | 1999-07-29 | 2010-08-03 | Intertrust Technologies Corporation | Systems and methods for watermarking software and other media |
US7406603B1 (en) | 1999-08-31 | 2008-07-29 | Intertrust Technologies Corp. | Data protection systems and methods |
JP3478200B2 (ja) | 1999-09-17 | 2003-12-15 | 日本電気株式会社 | サーバ・クライアント間双方向通信システム |
US6801927B1 (en) | 1999-09-24 | 2004-10-05 | Akamba Corporation | Network adaptor card with reverse proxy and cache and method implemented therewith |
US7339993B1 (en) | 1999-10-01 | 2008-03-04 | Vidiator Enterprises Inc. | Methods for transforming streaming video data |
US6430624B1 (en) | 1999-10-21 | 2002-08-06 | Air2Web, Inc. | Intelligent harvesting and navigation system and method |
US6665726B1 (en) | 2000-01-06 | 2003-12-16 | Akamai Technologies, Inc. | Method and system for fault tolerant media streaming over the internet |
US6389467B1 (en) | 2000-01-24 | 2002-05-14 | Friskit, Inc. | Streaming media search and continuous playback system of media resources located by multiple network addresses |
WO2001056244A1 (fr) | 2000-01-26 | 2001-08-02 | Sony Corporation | Systeme de transmission de donnees |
WO2001055862A1 (en) | 2000-01-28 | 2001-08-02 | Ibeam Broadcasting Corporation | Method and system for real-time distributed data mining and analysis for networks |
WO2001063485A2 (en) | 2000-02-24 | 2001-08-30 | Transfinity Corporation | Content distribution system |
US7257641B1 (en) | 2000-03-30 | 2007-08-14 | Microsoft Corporation | Multipoint processing unit |
US7240100B1 (en) | 2000-04-14 | 2007-07-03 | Akamai Technologies, Inc. | Content delivery network (CDN) content server request handling mechanism with metadata framework support |
US6996616B1 (en) | 2000-04-17 | 2006-02-07 | Akamai Technologies, Inc. | HTML delivery from edge-of-network servers in a content delivery network (CDN) |
US7210099B2 (en) | 2000-06-12 | 2007-04-24 | Softview Llc | Resolution independent vector display of internet content |
EP1410215A4 (en) | 2000-08-22 | 2006-10-11 | Akamai Tech Inc | COMPILING DYNAMIC CONTENT ON EDGE-OF-NETWORK SERVER IN A CONTENT DELIVERY NETWORK |
US7111057B1 (en) | 2000-10-31 | 2006-09-19 | Akamai Technologies, Inc. | Method and system for purging content from a content delivery network |
JP2004240466A (ja) | 2000-12-26 | 2004-08-26 | Ccp:Kk | コンテンツ・データのエンコードシステム、エンコード方法、及びエンコード方法を用いたコンテンツ登録システム |
US7665115B2 (en) | 2001-02-02 | 2010-02-16 | Microsoft Corporation | Integration of media playback components with an independent timing specification |
WO2002079905A2 (en) | 2001-04-02 | 2002-10-10 | Akamai Technologies, Inc. | Scalable, high performance and highly available distributed storage system for internet content |
US6680740B2 (en) | 2001-05-07 | 2004-01-20 | Xerox Corporation | Dynamic selection of data format conversion paths |
US7895616B2 (en) | 2001-06-06 | 2011-02-22 | Sony Corporation | Reconstitution of program streams split across multiple packet identifiers |
JP2003087785A (ja) | 2001-06-29 | 2003-03-20 | Toshiba Corp | 動画像符号化データの形式変換方法及び装置 |
US20050144165A1 (en) | 2001-07-03 | 2005-06-30 | Mohammad Hafizullah | Method and system for providing access to content associated with an event |
US7200681B1 (en) | 2001-07-30 | 2007-04-03 | Akamai Technologies, Inc. | Edge side components and application programming environment for building and delivering highly distributed heterogenous component-based web applications |
US7085320B2 (en) | 2001-07-31 | 2006-08-01 | Wis Technologies, Inc. | Multiple format video compression |
US7065588B2 (en) | 2001-08-10 | 2006-06-20 | Chaavi, Inc. | Method and system for data transformation in a heterogeneous computer system |
US7730154B2 (en) * | 2001-12-19 | 2010-06-01 | International Business Machines Corporation | Method and system for fragment linking and fragment caching |
JP2006502465A (ja) | 2002-01-11 | 2006-01-19 | アカマイ テクノロジーズ インコーポレイテッド | コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク |
US9167036B2 (en) * | 2002-02-14 | 2015-10-20 | Level 3 Communications, Llc | Managed object replication and delivery |
US7133905B2 (en) | 2002-04-09 | 2006-11-07 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
US20030149581A1 (en) * | 2002-08-28 | 2003-08-07 | Imran Chaudhri | Method and system for providing intelligent network content delivery |
US7171469B2 (en) * | 2002-09-16 | 2007-01-30 | Network Appliance, Inc. | Apparatus and method for storing data in a proxy cache in a network |
WO2004057560A1 (en) | 2002-12-20 | 2004-07-08 | Koninklijke Philips Electronics N.V. | Apparatus for re-ordering video data for displays using two transpose steps and storage of intermediate partially re-ordered video data |
KR100492567B1 (ko) | 2003-05-13 | 2005-06-03 | 엘지전자 주식회사 | 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법 |
US7392316B2 (en) | 2003-06-30 | 2008-06-24 | Microsoft Corporation | Client to server streaming of multimedia content using HTTP |
US20050091399A1 (en) | 2003-09-30 | 2005-04-28 | Candan Kasim S. | Resource-aware adaptive multicasting in a shared proxy overlay network |
EP1555816A1 (en) | 2004-01-13 | 2005-07-20 | Sony International (Europe) GmbH | Method for video signal processing |
US20050229231A1 (en) | 2004-03-31 | 2005-10-13 | Lippincott Louis A | Converter-assisted video encoder |
US8868772B2 (en) | 2004-04-30 | 2014-10-21 | Echostar Technologies L.L.C. | Apparatus, system, and method for adaptive-rate shifting of streaming content |
US8145908B1 (en) | 2004-10-29 | 2012-03-27 | Akamai Technologies, Inc. | Web content defacement protection system |
CN102892001A (zh) | 2004-11-09 | 2013-01-23 | 松下电器产业株式会社 | 转换成中间格式的两步算术解码 |
US8266237B2 (en) | 2005-04-20 | 2012-09-11 | Microsoft Corporation | Systems and methods for providing distributed, decentralized data storage and retrieval |
US8320450B2 (en) | 2006-03-29 | 2012-11-27 | Vidyo, Inc. | System and method for transcoding between scalable and non-scalable video codecs |
US20080003961A1 (en) | 2006-06-29 | 2008-01-03 | International Business Machines Corporation | Apparatus and method for scanning radio waves |
US8396878B2 (en) * | 2006-09-22 | 2013-03-12 | Limelight Networks, Inc. | Methods and systems for generating automated tags for video files |
US20080080529A1 (en) * | 2006-09-29 | 2008-04-03 | Microsoft Corporation | Multiple peer groups for efficient scalable computing |
JP4825644B2 (ja) | 2006-11-14 | 2011-11-30 | ルネサスエレクトロニクス株式会社 | 画像復号装置、画像符号化装置、およびシステムlsi |
CN100544439C (zh) | 2006-11-21 | 2009-09-23 | 华为技术有限公司 | 一种支持多种编码格式的媒体数据的方法及系统 |
CA2676705A1 (en) | 2007-02-09 | 2008-08-21 | Novarra, Inc. | Method and system for transforming and delivering video file content for mobile devices |
JP5683059B2 (ja) | 2007-09-28 | 2015-03-11 | 富士フイルム株式会社 | 撮像素子 |
US20090125413A1 (en) * | 2007-10-09 | 2009-05-14 | Firstpaper Llc | Systems, methods and apparatus for content distribution |
US8635360B2 (en) | 2007-10-19 | 2014-01-21 | Google Inc. | Media playback point seeking using data range requests |
KR20100097722A (ko) * | 2007-12-05 | 2010-09-03 | 온라이브, 인크. | 통신 채널을 통해 전송된 소정 타입의 멀티미디어 데이터를 보호하기 위한 시스템 및 방법 |
US7925774B2 (en) | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
AU2010276462B1 (en) * | 2010-12-27 | 2012-01-12 | Limelight Networks, Inc. | Partial object caching |
US20100180011A1 (en) | 2009-01-12 | 2010-07-15 | Microsoft Corporation | Url based retrieval of portions of media content |
US8909806B2 (en) * | 2009-03-16 | 2014-12-09 | Microsoft Corporation | Delivering cacheable streaming media presentations |
US8621044B2 (en) | 2009-03-16 | 2013-12-31 | Microsoft Corporation | Smooth, stateless client media streaming |
US8086803B2 (en) * | 2009-05-13 | 2011-12-27 | International Business Machines Corporation | Managing cache elements |
US10410222B2 (en) | 2009-07-23 | 2019-09-10 | DISH Technologies L.L.C. | Messaging service for providing updates for multimedia content of a live event delivered over the internet |
EP2467786B1 (en) * | 2009-08-17 | 2019-07-31 | Akamai Technologies, Inc. | Method and system for http-based stream delivery |
US8392748B2 (en) | 2009-10-06 | 2013-03-05 | Microsoft Corporation | Reliable media streaming |
US9237387B2 (en) | 2009-10-06 | 2016-01-12 | Microsoft Technology Licensing, Llc | Low latency cacheable media streaming |
US9002881B2 (en) | 2009-10-29 | 2015-04-07 | Microsoft Technology Licensing, Llc | Assembling streamed content for on-demand presentation |
US20110296048A1 (en) * | 2009-12-28 | 2011-12-01 | Akamai Technologies, Inc. | Method and system for stream handling using an intermediate format |
US20110176060A1 (en) | 2010-01-21 | 2011-07-21 | Qualcomm Incorporated | Data feedback for broadcast applications |
US20120265853A1 (en) | 2010-12-17 | 2012-10-18 | Akamai Technologies, Inc. | Format-agnostic streaming architecture using an http network for streaming |
US8880633B2 (en) | 2010-12-17 | 2014-11-04 | Akamai Technologies, Inc. | Proxy server with byte-based include interpreter |
-
2010
- 2010-08-17 EP EP10810493.6A patent/EP2467786B1/en active Active
- 2010-08-17 WO PCT/US2010/045766 patent/WO2011022405A2/en active Application Filing
- 2010-08-17 CN CN201080046681.5A patent/CN102792291B/zh active Active
- 2010-08-17 US US12/858,177 patent/US9537967B2/en active Active
-
2016
- 2016-12-26 US US15/390,562 patent/US10291734B2/en active Active
-
2019
- 2019-05-14 US US16/412,063 patent/US10855792B2/en active Active
-
2020
- 2020-12-01 US US17/108,208 patent/US11272025B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020124098A1 (en) * | 2001-01-03 | 2002-09-05 | Shaw David M. | Streaming media subscription mechanism for a content delivery network |
CN101283351A (zh) * | 2005-07-19 | 2008-10-08 | 苹果公司 | 用于媒体数据传输的方法和设备 |
KR20080003961A (ko) * | 2006-07-04 | 2008-01-09 | (주) 컨텐츠플러그 | 동영상 콘텐츠 서비스 시스템 및 방법 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363511A (zh) * | 2014-11-28 | 2015-02-18 | 北京奇艺世纪科技有限公司 | 一种在移动设备中在线播放F4v视频的方法及系统 |
CN104363511B (zh) * | 2014-11-28 | 2017-06-23 | 北京奇艺世纪科技有限公司 | 一种在移动设备中在线播放F4v视频的方法及系统 |
CN105786953A (zh) * | 2015-01-12 | 2016-07-20 | 帕洛阿尔托研究中心公司 | 在内容中心网络中对编码清单排序 |
CN105786953B (zh) * | 2015-01-12 | 2021-08-27 | 思科技术公司 | 在内容中心网络中对编码清单排序 |
CN108200443A (zh) * | 2017-12-29 | 2018-06-22 | 北京奇虎科技有限公司 | 一种直播流的分发方法和装置 |
CN114189505A (zh) * | 2021-10-29 | 2022-03-15 | 深圳市酷开网络科技股份有限公司 | 文件共享方法、计算机设备及存储介质 |
CN114189505B (zh) * | 2021-10-29 | 2024-04-19 | 深圳市酷开网络科技股份有限公司 | 文件共享方法、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2011022405A3 (en) | 2011-06-03 |
US20110173345A1 (en) | 2011-07-14 |
US20170111464A1 (en) | 2017-04-20 |
US11272025B2 (en) | 2022-03-08 |
EP2467786B1 (en) | 2019-07-31 |
EP2467786A2 (en) | 2012-06-27 |
US20210084110A1 (en) | 2021-03-18 |
US10291734B2 (en) | 2019-05-14 |
WO2011022405A2 (en) | 2011-02-24 |
US9537967B2 (en) | 2017-01-03 |
EP2467786A4 (en) | 2017-01-11 |
US20190268432A1 (en) | 2019-08-29 |
CN102792291B (zh) | 2015-11-25 |
US10855792B2 (en) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102792291B (zh) | 基于http的流分发的方法和系统 | |
CN103392344B (zh) | 使用用于流化的http网络的格式未知的流化体系结构 | |
JP7278351B2 (ja) | トップレベルインデックスファイルを自動的に生成するためのシステムおよび方法 | |
US11683542B2 (en) | Systems and methods for distributing content using a common set of encryption keys | |
US20170111665A1 (en) | Multiple bitrate format-agnostic streaming architecture | |
US9485238B2 (en) | Security framework for HTTP streaming architecture | |
CN102740159B (zh) | 媒体文件存储格式和自适应传送系统 | |
US8887215B2 (en) | Targeted high-value content in HTTP streaming video on demand | |
US20130080579A1 (en) | Dynamically-executed syndication services | |
US20130080268A1 (en) | Multi-platform media syndication customization | |
US20130080772A1 (en) | Dynamic encryption | |
BR102014031884B1 (pt) | Método e sistema para transmissão uniforme de conteúdo de mídia em uma rede de entrega de conteúdo distribuído | |
CA2866472A1 (en) | Dynamic audio track selection for media streaming | |
US20080209062A1 (en) | System and method for augmenting real-time information delivery with local content |
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 |