内容分发网络系统和方法与流程

文档序号:11812265阅读:315来源:国知局
内容分发网络系统和方法与流程

技术领域

本发明主要与计算机网络有关,尤其是用于为内容分发网络提供各种采集和分发方式支持的系统和方法。

背景

互联网协议(IP)路由原本是专为主机对主机通讯而设计的。但是,时至今日,大部分的互联网流量都是用于内容传播。基于对视频流等内容的需求的不断上升,使现有的互联网基础设施的使用日渐艰难,尤其是讲求时效性和带宽密集型流量的内容,例如音频流和视频媒体内容。

在一个互联网内容分发网络中,已摄取媒体内容可能会针对不同的音频编码及视频编码和不同类型的媒体客户端(例如计算机、电视机和移动手持设备)而分为不同的文件格式。一般情况下,这些类型不同的媒体客户端对媒体文件格式、编码和比特率等有着不同的要求。例如,高清电视系统和手机相比,前者对图像分辨率、媒体文件大小和比特率等方面的要求都高得多。一般而言,不同的分发方式需要有不同的内容副本,原始服务器上会存有多份内容副本,这些副本又会缓存在内容分发系统的边缘服务器上。

但是,多份媒体文件的存在会使网络流量提高和系统性能降低。例如,在存在多份媒体文件的情况下,缓存失效率会提高,使得指定大小的 缓存只能够储存较少的视频。站在用户的角度,这会导致流媒体间歇性中断。

这就需要有一套能够改善流视频内容分发的系统和方法。



技术实现要素:

按照实施例,计算机服务器的操作方法应包括流媒体数据接收。流媒体数据包含内容片断和媒体说明文件,而媒体说明文件包含元数据,用于描述内容片断。方法还包括将内容片断储存在缓存中。

根据进一步的实施例,计算机服务器操作方法包括接收源媒体内容和处理源媒体内容,以产生内容片断和用于描述内容片断的媒体说明文件。内容片断和媒体说明文件采用统一的格式。

根据进一步的实施例,服务器系统包含输入端口、缓存和处理器。处理器从输入端口接收流媒体数据,其中流媒体数据包含内容片断和媒体说明文件,而媒体说明文件包含用于描述内容片断的元数据。处理器还会将内容片断存储在缓存中,将缓存中的多个内容片断结合起来,生成符合特定配置的流媒体内容,并将符合特定配置的流媒体内容传输到媒体客户端。

下文将大致列出本发明的部分实施例,以便使以下发明的详细说明更易懂。后文将说明本发明实施例的额外功能和优势,本发明的专利申请主题便是由它们组成。本技术领域的人员应深知,本文所透露的概念和指定实施例可被用作为修改或设计与本发明拥有相同目的的其他结构或流程的基础。上述技术人员还应认识到,这些等效结构并不违背追加申请中阐述的发明的精神和范畴。

附图说明

为提供更完整的实施例见解及其优势说明,现为以下说明提供参考信息,请参阅与其相对应的附图,其中:

图1演示了实施例内容分发系统;

图2演示了在实施例媒体摄取阶段的实施例媒体预处理流;

图3演示了实施例视频格式;

图4演示了实施例音频格式;

图5演示了实施例媒体说明模板;

图6演示了实施例媒体数据存储方式;

图7演示了实施例视频片段格式;

图8演示了实施例音频片段格式;

图9演示了实施例边缘服务器媒体存储方式;

图10演示了实施例文件容器格式;以及

图11演示了在实施例中安装一个文件的示例。

实施例的详细说明

下文将详细讨论多种实施例的制备和使用。但这应理解为,本发明提供许多适用的发明概念都能够在各种各样的指定场合中实施。所讨论的指定实施例只是演示本发明的指定利用和使用方法,而不是限制本发明的使用范围。

本文将根据本发明在为内容分发网络提供各种摄取和交付方式支持的指定场合、系统和方法中的实施例而描述本发明。本发明的实施例可能还适用于其他类型的通讯系统和网络。

在一个实例中,为内容分发网络提供各种采集和分发方式支持的系统和方法可分为三个阶段:媒体摄取阶段、缓存阶段,即媒体从原始服务器分发到边缘服务器以进行缓存,和媒体输出阶段。在媒体输出阶段,实况视频源流或文件会被编码、转码或重新编码成一个视频编码格式,例如H.264/AVC,音频流或文件会被编码、转码或重新编码成一个音频编码格式,如AAC。为应对可用网络带宽、终端能力和用户偏好等变化,在媒体摄取阶段,准备好多种可替换媒体,例如变换视频内容的比特率、分辨率、帧速率和语言,)以获得媒体适应性。另外,为了在边缘服务器有效地缓存和根据需要进行转码,会使用同步的方式,将音频和视频流分成多个片断。在第二阶段,会采用拉动或推送模式,将媒体从原始服务器分发至边缘服务器。不管采用哪个模式,媒体内容都会以块为单位进行传送,其 中每一个块都是由一个或多个片断组成的。在一个实施例中,媒体会以片断或片断块的形式存储在边缘服务器上。在媒体输出阶段,支持各种不同的分发方式,例如文件下载、渐进式下载、HTTP流和RTP/RTSP流。

图1演示了一个根据本发明的一个实施例制定的内容分发系统。逻辑上,系统含有媒体摄取阶段102、媒体缓存阶段104和媒体输出阶段106。物理上,系统包含原始服务器108和边缘服务器110。在实施例中,原始服务器108和边缘服务器110位于网络的不同部分。或者,服务器108和110可位于相同位置。在一个实施例中,一台或多台服务器108可与一台或多台边缘服务器110进行通讯。

在一个实施例中,原始服务器108会接收媒体源,例如,以媒体文件和/或实时内容的形式并执行媒体预处理112以生成经过预处理的媒体数据和说明数据。经过预处理的媒体会以媒体数据加上一份说明的形式存储在内存114中,它可以是硬盘,也可以是其他存储设备。在一个实施例中,媒体预处理是由处理器116负责的一项功能。原始服务器108通过网络连接118将经预处理的媒体数据和说明传输到边缘服务器110。网络连接118可以是直接连接,也可以是相关技术中任何已知类型的网络连接,包括但不限于有线或无线连接、以太网、互联网I/P连接或其他类型的宽带连接。

边缘服务器110会从原始服务器108接收经预处理的媒体数据并使用缓存功能120将数据存储在缓存122中。在需要时,流功能126会使用转码功能128创建流数据,这会将经预处理的媒体数据转码成媒体客户端目标格式。在一个实施例中,流和按需要转码功能都是由处理器124执行的。

在一个实施例中,为提高系统管理和适应效率,在媒体缓存阶段104中会采用统一的媒体格式。统一的媒体格式包含统一的视频格式、统一的音频格式和统一的文件容器格式。例如,在一个实施例中,采用了H.264(视频)和高级音频编码(AAC)作为统一的媒体格式。在另一个实施例中,可以采用其他格式,例如MPEG-2视频和AAC。在媒体摄取阶段102,视频流会被编码、重新编码或转码成统一的视频格式,例如H.264 格式,音频流会被编码、重新编码或转码成统一的音频格式,例如AAC格式,文件容器格式会被编码成统一的文件容器格式。在一个实施例中,统一的文件容器格式参照了ISO基媒体文件格式。在其他实施例中,可采用其他文件格式。

在一个实施例中,为应对可用的网络带宽、终端能力和用户偏好等变化,在媒体摄取阶段102,准备好多种没可替换媒体,例如变换视频内容的比特率、分辨率、帧速率和语言等以获得媒体适应性。

图2演示了在实施例媒体摄取阶段的实施例媒体预处理流200;内容分割块202会接收媒体文件或实时内容,然后将内容分割成视频内容和音频内容。视频内容首先会被分成片断204,然后在需要时进行转码206,而音频数据首先会在需要时被转码208,然后被分成片断210。容器管理块212负责处理视频和音频数据的分段和可能发生的转码然后存储在内存216中,它可以是硬盘,也可以是其他存储设备。媒体说明生成块214会生成音频和视频片断媒体说明,它也会被存储在内存216中。在其他实施例中,分切片断和转码的顺序可能会与图2所演示的不同。

在一个实施例中,音频和视频流会以同步的方式分切片断(例如按照基于ISO的媒体文件格式中所指定,存储为电影片断)。在一个实施例中,每个视频片断都有一个固定的持续时间(例如2000毫秒)但含有剩余视频帧的最后一个片段却不在此例,它的持续时间和/或视频帧数可能会有所不同。或者,可采用其他固定或非固定的持续时间。每个视频片断都含有一个整数的图片组(GOP),例如,一个GOP。在一个实施例中,每个GOP都是闭合GOP,表示GOP的第一个视频帧是一个随机接入点和固定长度GOP,可能是持续时间,也可能是视频帧数,或者是两者。

在一个实施例中,会尽可能接近地对齐音频片断和视频片断的时间。在某些实施例中,每个音频片断都有一个整数的已编码音频样本数。根据音频采样率,音频片断和与其对应的视频片段的持续时间可能不是完全相同的。在某些实施例中,执行分切片断流程204和210的目的是让音频片断的持续时间尽可能地与视频片断的持续时间接近。

在一个实施例中,可通过以下方法,对齐音频片断和视频片断。假设 Dvi代表视频片断i的持续时间,Dai(n)代表包含n个样本的音频片断i的持续时间,Dai(n-1)代表包含n-1个样本的音频片断i的持续时间,Dai(n+1)代表包含n+1个样本的音频片断i的持续时间。那么,当满足以下两个条件时,音频片断i中包含的音频样本将等于n:

|Dvi-Dai(n)|<|Dvi-Dai(n-1)|, (1)

|Dvi-Dai(n)|<|Dvi-Dai(n+1)|. (2)

在原始服务器上,为支持有效的文件管理和存储,在一个实施例中,属于相同内容替换的所有片断都被根据基于ISO的媒体文件格式,存储在文件的一个曲目中。对于每个品质级别的视频流,图3中描述了实施例视频格式300。视频格式300含有文件类型标题302、媒体元数据304、一个或多个视频片断310和电影片断随机访问块320。媒体元数据块304含有电影标题306和视频曲目标题308,每个片断310有一个电影片断标题312和媒体数据314,其中包含实际的视频数据。电影片断随机访问块320含有曲目片断随机访问块322和电影片断随机访问偏移块324。

图4演示了实施例音频流400,它与视频流格式300相似。音频格式400含有文件类型标题402、媒体元数据404、一个或多个音频片断410和电影片断随机访问块420。媒体元数据库404含有电影标题406和音频曲目标题408,每一个片断410含有一个电影片断标题412和媒体数据414,其中包含实际音频数据。电影片断随机访问块420含有曲目片断随机访问块422和电影片断随机访问偏移块424。

例如,在一个实施例中,媒体预处理完成后,有多个分属不同品质级别的视频文件、多个音频文件,例如可能在音频编码使用、音频声道、音频语言和品质级别等方面不同。在一个实施例中,会有一个视频替换和一个音频替换存储在一个文件中。

在一个实施例中,媒体说明文件描述与其对应的视频流和音频流。图5演示了一个基于SMIL(同步媒体集成语言)的说明模板示例。

图6演示了已经过预处理的媒体数据在媒体摄取阶段的一个实施例 存储方式600。在一个单一媒体说明文件602下存储了一个或多个视频文件604和606,以及一个或多个音频文件608或610。在一个实施例中,每个视频文件604和606可代表不同品质级别,每个音频文件608和610可代表不同的目标音频编码、声道语言和/或比特率。每个分发方式的一个或多个预计算文件容器或说明文件612和614而进一步存储媒体说明文件602下。

在一个实施例缓存阶段中,媒体内容会以块为单位,从原始服务器传输到边缘服务器,其中每一个块都是由一个或多个片断组成的。在一个实施例中,原始服务器和边缘服务器之间的基础传输单位是音频和/或视频块。在一个实施例中,音频或视频块都会被当做是单一文件而保存在边缘服务器上和加以管理。或者,也可以将一个音频块和一个视频块存储在边缘服务器的一个文件中。

图7演示了一个含有电影片断702和媒体数据704的实施例视频块格式700。在一个实施例中,每个视频块都含有一个视频片断。或者,也可以使用多个的片断。在一个实施例中,会根据基于ISO的媒体文件格式标准格式化电影片断702,该片段含有媒体数据704中每个样本的类型、大小和位置等信息。在一个实施例中,每个视频片断都会采用“v_xx_yyyyy.frv”的命名方式,其中“xx”代表两位数的视频曲目ID,“yyyyy”代表五位数的片断序号。例如,“v_01_00001.frv”是视频曲目1的第一个视频片断。在其他实施例中,可能会采用其他格式和标签方式。

图8演示了一个含有电影片断802和媒体数据804的实施例音频块格式800,这与视频块格式700相似。在一个实施例中,每个音频块含有一个音频片断。在一个实施例中,会根据基于ISO的媒体文件格式标准格式化电影片断802,该片段含有媒体数据804中每个样本的类型、大小和位置等信息。在一个实施例中,每个音频片断都会采用“v_xx_yyyyy.fra”的命名方式,其中“xx”代表两位数的音频曲目ID,“yyyyy”代表五位数的片断序号。例如,“v_01_00001.fra”是音频曲目1的第一个音频片断。在其他实施例中,可能会采用其他格式和标签方式。

图9演示了边缘服务器在缓存阶段中的一个实施例内部媒体存储方 式900。在一个实施例中,内容被存储在一个或多个文件容器904、906和908中,每一个都在XML媒体说明902中有指示,每一个与一个内容替换相对应。在一个实施例中,XML媒体说明902根据图5演示的SMIL模板进行格式化。每个文件容器904、906和908都有一个或多个关联的视频和/或音频片断文件。在一个实施例中,文件容器1(904)中的片断文件910、912、914、916、918和920代表第一个内容替换的视频和音频。文件容器2(906)中的片断922、924和926和文件容器j(908)中的片断928、930、932、934、936和938代表其他内容替换的片断。在一个实施例中,内容替换是在原始服务器上创建的。内容替换可根据原始服务器侧的多个参数(例如已摄取内容的品质)和客户端侧的变量(例如网络带宽、CPU能力、屏幕分辨率和/或最终用户配置)而生成。在一个实施例中,有j个文件容器和m个片断。在一个实施例中,每个视频片断会按照n_m的形式予以标签(其中n是视频品质等级替换的总数),每个音频片断会按照k_m的形式予以标签(其中k是音频曲目替换的总数)。

在一个实施例中,会为特定的流技术定义说明文件。例如,图9含有Silverlight客户端说明文件XML 940,这是一个为Microsoft Silverlight Smooth Streaming而格式化的说明文件。在其他实施例中,可使用其他流技术(例如Adobe Flash)的其他说明文件。

在一个实施例媒体输出状态中,不同品质级别的视频片断和不同编码既声道的音频片断会结合起来,以支持各种分发方式,以及满足各种接入网络带宽和终端能力的要求。

例如,图9演示的实施例便支持Microsoft Silverlight Smooth Streaming。在这里,Silverlight Smooth Streaming使用一个说明文件,同时将已分段音频和视频逐一分发到客户端播放设备,以及使用品质等级和开始时间以请求指定的音频和视频片断。在一个实施例中,品质等级会被映射至音频和视频曲目ID,而开始时间则会被映射至片断序号。通过音频/视频曲目ID和片断序号,缓存中对应的a_xx_yyyyy.fra或v_xx_yyyyy.frv片断文件将被直接分发至Silverlight客户端以供播放。在 一个实施例中,图9中显示的提示片断会含有各种信息,这些信息可用于协助从音频和视频片断生成MPEG-2传输流数据包。

图10演示了实施例文件容器1000。文件容器1000含有文件类型标题1002和媒体元数据1004。媒体元数据1004含有电影标题1006、音频曲目标题1008和视频曲目标题1010。

在一个实施例中,文件下载和HTTP渐进式下载(使用交错完整文件)会以以下方式进行。通过图7中演示的视频片断700、图8中演示的音频片断800,以及图10中演示的文件容器1000,便可产生一个如图11所示的完整的MP4文件,以供文件下载和HTTP渐进式下载时使用。在这里,输出阶段会从文件容器生成文件标题和元数据信息生成MP4文件1102,以及从片断1104和1106生成实际视频和音频数据。

在一个实施例中,会采用统一的内部编码和容器格式。在媒体输出阶段,实况视频源流或文件会被编码、转码或重新编码成一个视频编码格式(例如H.264/AVC),音频流或文件会被编码、转码或重新编码成一个音频编码格式(如AAC)。在媒体输出阶段,边缘服务器上的视频块和音频块支持各种不同的分发方式,包括文件下载、渐进式下载、HTTP流和RTP/RTSP流

在一个实施例中,用于存储统一内容(带或不带替换视频曲目、音频曲目)和元数据的方法支持多种分发方式。如图6所描述,在媒体摄取阶段,可准备好某些文件容器或说明文件。

在一个实施例中,有一种灵活的存储和分发方式会采用媒体流片断和多层文件管理方式。在内容分发系统的不同阶段中,媒体流会议不同的大小做出说明。例如,使用这些实施例可提供有效的数据管理和高性能的流。例如,在图1描述的实施例系统中,原始服务器的每个音频或视频的媒体数据会存储为一个流,以方便管理,而边缘服务器的基本存储单位是音频块或视频块。边缘服务器采用基于块的存储方式,通过并行媒体处理提供实时按需求编码能力。

在一个实施例中,一个紧凑的媒体说明方式会与视频片断和音频片断命名规则相结合。媒体说明方式让系统能够根据品质等级和时间或字节范 围,有效地从缓存或原始服务器(在发生缓存缺失的情况下)找到请求的视频片断和音频片断。

虽然详细描述了实施例和它们的优势,但仍请明白这一点:可以在不违背专利申请中定义的发明精神和范围的情况下,进行各种变化、变动和替换。另外,本申请的范围并不局限于规格中描述的流程、机器、制造、物质组成、意义、方法和步骤的特定实施例。这些流程、机器、制造、物质组成、意义、方法或步骤,不管是目前已存在还是有待日后开发,只要是能够与本文描述的相应的实施例发挥本质上相同的功能或取得本质上相同的结果,都可以根据本发明而予以采用,作为相关技术中的一个普通技巧,这一点定会在本发明公布后受到相关方面的欢迎。相应地,追加申请的目的是将这些流程、机器、制造、物质组成、意义、方法或步骤包括在申请的范围中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1