CN102792291A - 基于http的流分发的方法和系统 - Google Patents

基于http的流分发的方法和系统 Download PDF

Info

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
Application number
CN2010800466815A
Other languages
English (en)
Other versions
CN102792291B (zh
Inventor
克里斯多佛·R·诺克斯
菲利普·A·里斯基
詹姆斯·马顿
查克·伯纳德
阿肖克·拉尔瓦尼
威廉·劳
托马斯·德瓦尼奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Akamai Technologies Inc
Original Assignee
Akamai Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Akamai Technologies Inc filed Critical Akamai Technologies Inc
Publication of CN102792291A publication Critical patent/CN102792291A/zh
Application granted granted Critical
Publication of CN102792291B publication Critical patent/CN102792291B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2747Remote storage of video programs received via the downstream path, e.g. from the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring 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

基于HTTP的流分发的方法和系统
本申请基于并且要求于2009年8月17日提交的序列号为61/234,371和于2009年12月31日提交的序列号为61/291,443的专利的优先权。
发明背景
技术领域
本申请一般涉及在广播听众规模将高清(HD)视频在线分发到流行的运行环境和移动设备。
相关技术的简述
在现有技术中,分布式计算机系统是众所周知的。一个这样的分布式计算机系统是由服务提供者操作和管理的“内容分发网络”或“CDN”。服务提供者通常代表第三方提供内容分发服务。这种类型的“分布式系统”通常是指通过一个网络或多个网络连接的一组自主计算机连同被设计成有助于各种服务如内容分发或外包网站基础设施的支持的软件、系统、协议和技术。通常,“内容分发”意味着代表内容提供者对内容、流媒体和应用——包括与其一起使用的辅助技术——的存储、缓存或发送,辅助技术包括但不限于DNS查询处理、供应、数据监控和报告、内容定位、个性化和商业智能。
虽然内容分发网络提供了明显的优势,通常它们包括专用平台以对多个第三方运行环境支持内容的分发,这些专用平台又基于它们自己的专有技术、媒体服务器和协议。这些不同平台实现和维护起来是昂贵的,尤其是全球地和在当最终用户的数量增加时的规模。而且,同时,内容提供者(如大规模广播电台、电影经销商等)期望他们的内容以补充传统媒介如广播TV(包括高清或“HD”电视)和DVD的方式被在线分发。也可以以不同的比特率提供这种内容。最终用户也期望与内容相互作用,正如他们现在可以与通过卫星或有线电视分发的传统的基于DVR的内容相互作用一样。另一个难题是,基于互联网的内容分发不再局限于固定线路环境如台式机,因为越来越多的最终用户现在使用移动设备如
Figure BDA0000153690130000021
来在移动环境上接收和观看内容。
因此,需要提供一种集成的内容分发网络平台,这种网络平台能够在广播听众规模上将内容(如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代理。优选地,所有
Figure BDA0000153690130000171
相互作用均携带有这些相同的头部。这些头部确保转换器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片段,所述第二部分与所述第一部分相比是较旧的。
CN201080046681.5A 2009-08-17 2010-08-17 基于http的流分发的方法和系统 Active CN102792291B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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