具有虚拟文件系统的自适应视频服务器及其使用方法

文档序号:7989739阅读:146来源:国知局
具有虚拟文件系统的自适应视频服务器及其使用方法
【专利摘要】一种流视频服务器包括虚拟文件系统,该虚拟文件系统从客户端装置接收对于多个视频节目中的选定的视频节目的请求。响应于该请求,从至少一个视频源检索所述多个视频节目中的选定的视频节目。基于至少一个编码参数从所述多个视频节目中的选定的视频节目生成多个编码段,所述至少一个编码参数响应于与用于所述多个视频节目中的选定的视频节目的流会话有关的上下文数据被调节。
【专利说明】具有虚拟文件系统的自适应视频服务器及其使用方法
【技术领域】
[0001]本发明涉及用于包括点播视频的流媒体应用的服务器。
【背景技术】
[0002]有多个电视机的家庭的数量正在增加,并且,很多用户想要最新、最好的视频观看服务。这样,很多家庭拥有卫星接收器、有线机顶盒和电视机等等,它们提供对广播视频服务的访问。对于家里的互联网访问,每一个计算机或互联网装置都可以具有其自己的互联网连接。这样,每一个计算机或者互联网装置都包括调制解调器。作为可替代的方案,可以使用家里的无线局域网来提供互联网访问并将多媒体信息传送到家里的多个装置。在这样的家里局域网中,每一个计算机或者互联网装置都包括访问IP网关的网卡。网关提供与互联网的耦接。作为广播视频的可替代的方案,互联网提供对流视频服务的访问。代替向每一个客户广播所有的节目,每一个客户在他们需要的时候只接收他们想要的那些节目。
[0003]今天通过互联网对视频进行流传输的最常见的方法之一是通过使用“HTTP实时流传输”(HLS)协议。该协议由Apple公司开发并在大部分的Apple装置中都得以支持。HLS协议在使用标准HTTP (超文本传输协议)web服务器组件的流服务器(streaming server)上操作。视频编码器获取源视频,并以计划用于不同网络条件(高或低容量)并与不同的回放装置使用的不同比特率对其进行编码。变型播放列表(variant playlist)被存储在服务器的文件系统上,其描述可以以多个比特率使用的一个视频。对于每一个可用的比特率,服务器侧工具获取编码器的输出文件并将其分解成相等持续时间(通常10秒)的段;这些段被存储在服务器的文件系统上。可任选地,可以对这些段进行加密。
[0004]对于每一个可用的比特率,播放列表被存储在服务器的文件系统上。播放列表指定可用段的性质(最重要的是,持续时间和URI )。在流传输之前,必须准备编码的视频、变型播放列表和播放列表,并且,它们对于web服务器而言是可用的。客户端通过首先经由HTTP请求变型播放列表来启动流传输。客户端请求在变型播放列表中列出的第一播放列表。客户端请求该播放列表中的第一段,并然后请求第二段,等等。取决于段的传输速率,客户端将会选择切换到更高或更低的比特率的播放列表,并且从该新的播放列表请求视频段。客户端对接收到的段进行解码并将其显示为一个连续视频流。
[0005]HLS流传输的优势在于,服务器是标准的web服务器。除了分段和播放列表生成所需的专用工具以外,软件和基础设施包括标准的可自由使用的组件,这些组件通常是已经到位的。通过将这种系统与本发明进行比较,HLS和其它常规的传统方法的局限性和缺点对于本领域的技术人员来说将是显而易见的。

【发明内容】
【专利附图】

【附图说明】
[0006]图1呈示根据本发明的实施例的内容分发系统的图形表示。[0007]图2呈示根据本发明的实施例的流服务器50的框图表示。
[0008]图3呈示根据本发明的实施例的播放列表数据112的框图表示。
[0009]图4呈示根据本发明的实施例的变型播放列表数据114的框图表示。
[0010]图5呈示根据本发明的实施例的编码器104的框图表示。
[0011]图6呈示根据本发明的另一个实施例的编码器104的框图表示。
[0012]图7呈示根据本发明的实施例的方法的流程图表示。
[0013]图8呈示根据本发明的实施例的方法的流程图表示。
[0014]图9呈示根据本发明的实施例的方法的流程图表示。
[0015]图10呈示根据本发明的实施例的方法的流程图表示。
【具体实施方式】
[0016]图1呈示根据本发明的实施例的内容分发系统的图形表示。特别地,流视频服务器50能够从一个或多个视频源40访问内容并将内容分发到诸如电视60、智能电话、互联网平板电脑或其它个人媒体播放器62和64、手持视频播放器66和个人计算机68之类的多个客户端装置。虽然示出了特定的客户端装置,但是,视频服务器50能够从一个或多个视频源40访问内容并将内容分发到可以接收和再现媒体内容的其它客户端装置。
[0017]流视频服务器50使用点播编码处理和虚拟文件系统。在本发明的一个实施例中,流视频服务器50允许在没有持久的存储的附加要求的情况下支持许多比特率。流视频服务器50访问虚拟文件系统,该虚拟文件系统包含流传输所需的文件:变型播放列表文件、播放列表文件、内容加密密钥和视频段文件。该文件系统中的视频数据可以不存储在真实的非易失性存储装置中;相反,由于从客户端装置请求特定视频内容时的读取操作,该数据可以只在需要的时候生成。
[0018]在示出的例子中,一个或多个视频源40在该系统的外部,并且与流视频服务器50耦接,以经由诸如安全套接字层(SSL)连接、私用网络、虚拟私用网络或其它安全连接之类的安全信道来提供编码的音频视频流。该一个或多个视频源40可以具有两种类型的内容:实时的和预记录的。视频源40可以是实时视频源,例如,广播有线网络、广播卫星网络、广播电视网络、IP电视分发系统、广播移动网络、视频会议服务或者其它的实时视频源。预记录的内容的视频源40的例子包括点播视频源,例如,YouTube、Hulu、Netflix或其它流视频源,有线或IP电视视频点播网络,数字视频记录器,UPnP媒体服务器,可携式摄像机,个人计算机或者其它的存储视频源。当有限网络带宽导致到客户端的数据传输的速率低于编码速率时,可以不同地处理这两种类型的内容。对于实时内容,流系统丢弃在某一时限内不能传输的音频视频流的部分。这样确保在源处的发送与在客户端处的解码和回放之间的延迟被限制。对于视频会议,这意味着对话不会受过度的延迟的影响,但是,当网络突然变慢时,对话中会有中断。预记录的内容可以按照连续的方式被流传输。如果网络突然变慢并且客户端用完数据去解码,那么它通过等待更多的数据在短期内处理此,并且通过选择具有较低比特率的变型播放列表在较长的期间内处理此。
[0019]操作中,流视频服务器50对来自视频源40的内容进行转码或解码,并且将该内容重新编码为对应于播放列表的比特率。以这种方式,只有当响应于客户端的对特定节目的请求而需要该视频节目时,才对该视频节目进行编码。因此,通过流视频服务器50可用的但客户端绝不会请求的视频不会招致编码的开销。
[0020]当启动流传输时,为会话分配流视频服务器50的视频编码器。该编码器输出连续的音频视频比特流,然后,后处理步骤将该流分成所需的段。另外,可以在要求时执行加密密钥生成处理。这允许密钥不保存到存储装置,从而保护密钥的安全免受未经授权的读取。为了增加内容安全,密钥可以随机地生成,并且绝不用于多于一个的流会话。还可以在要求时执行加密处理。
[0021]流视频服务器50还可以包括结合下面的图2至9进一步描述的本发明的一个或多个特征。
[0022]图2呈示根据本发明的实施例的流服务器50的框图表示。如图所示,流视频服务器50包括命令处理器100、一个或多个视频编码器104和视频加密器106、以及加密密钥生成器108。流视频服务器50还包括虚拟文件系统110,该虚拟文件系统110存储包括与可从一个或多个视频流40得到的视频节目相对应的内容索引以及关于每一个视频节目的段播放列表的播放列表数据112,该段播放列表包括关于该视频节目的每一段的地址的列表。虚拟文件系统110还包括变型播放列表数据114,该变型播放列表数据指示用于对多个视频节目中的每一个进行流传输的多个比特率。与提供在硬驱动器上存储的文件的传统的web服务器或流服务器中一样,内容索引中的地址UR1、变型播放列表和段播放列表并不对应于实际的文件。当客户端作出对特定的视频节目的HTTP请求时,这些地址由流视频服务器50生成并被视为对虚拟文件的引用。这适用于列表的URI自身,并且也适用于加密的段数据和加密密钥。当针对虚拟文件系统中的“文件”接收到请求时,服务器根据实际的请求生成适当的响应。例如,(a)使用在存储器中存储的信息,通过内容索引、变型播放列表、段播放列表数据作出响应;(b)生成随机的加密密钥,将它存储到存储器(为了后续的段请求),并且响应于客户端而发送它;(c)从源启动视频传输,启动编码和分段,响应于客户端而发送第一段;(d)对于之前启动的传输,编码、分段并将下一段返回给客户端。
[0023]网络接口 102被包括在内,以经由网络30与至少一个客户端装置进行双向通信,并且例如经由网络30或另一种网络的安全信道与至少一个视频源进行双向通信。网络接口 102可以包括调制解调器、收发器或其它网络接口适配器,其实现串行或并行连接,例如,以太网连接、通用串行总线(USB)连接、电气和电子工程师学会(IEEE) 1394 (火线)连接、小计算机串行接口(SCSI)、高清媒体接口(HDMI)连接、或者根据标准或定制接口协议操作的其它有线连接。另外,或者,作为可替换的方案,网络接口 102可以包括用于直接或通过一个或多个装置间接地耦接到网络30和/或一个或多个视频源40的无线链路,所述一个或多个装置根据例如802.11a, b, g, n (通常被称为802.llx)、Bluetooth (蓝牙)、超宽带(UWB)、3G无线数据连接、4G无线数据连接、或者根据标准或定制接口协议操作的其它无线连接来操作。
[0024]操作中,命令处理器100通过客户端的对视频内容的请求来协调编码和加密处理。例如,命令处理器100经由网络接口 102从至少一个客户端装置接收对多个视频节目中的选定的一个视频节目的HTTP请求。响应于该请求,经由网络接口从一个或多个视频源40检索多个视频节目中的选定的视频节目。例如,命令处理器可以访问播放列表数据112,以确定用于从一个或多个视频源40检索多个视频节目中的选定的视频节目的通用资源标识符(URI)或其它地址。[0025]命令处理器100检索多个视频节目中的选定的视频节目。以选定的比特率,经由视频编码器104,从选定的视频节目生成多个编码段。视频编码器104可以包括一个或多个编码器或转码器,所述编码器或转码器从一个或多个视频源40接收编码的视频节目,并且,以用于发出请求的客户端装置的选定的比特率,将该视频节目解码并重新编码或另外转码为尺度(scale)、分辨率和数字压缩格式。特别地,视频编码器104可以根据诸如MPEG2、MPEG4部分10 (也被称为H.264)的运动图片专家组(MPEG)格式来操作。同样地,可以利用例如VC1、数字视频(DV)等的其它视频格式。在本发明的实施例中,一个或多个视频源40包含未分段的视频。在对于特定视频的第一段和比特率的客户端请求时,流视频服务器50开始从对应的视频源40检索视频,并且执行编码和分段。尽管可能更实用的是先编码并然后分段,但是,可以在编码之前或之后进行分段。
[0026]基于加密密钥,经由视频加密器106,从编码段生成加密的段。然后,加密段作为视频段116被存储,接着,这些视频段116经由网络接口 102作为流视频信号被发送给请求该视频节目的至少一个客户端装置。视频加密器106可以根据例如数据加密标准(DES)、Rivest、Shamir、Adelman (RSA)、椭圆曲线加密(ECC)、高级加密标准(AES)或其它算法的一个或多个加密算法来操作。
[0027]流服务器模块50包括响应于请求而生成加密密钥的加密密钥生成器。如结合图1讨论的,加密密钥生成器108在要求时生成加密密钥。这样允许密钥不保存到存储装置,从而保护密钥的安全免受未经授权的读取。为了增加内容安全,密钥可以随机地生成,并且只用于一个流会话。理论上,虽然可能随机地再次出现相同的加密密钥,但是每一个加密密钥仍然对于请求几乎或基本上是唯一的。
[0028]在本发明的实施例中,命令处理器100生成选定的比特率,作为与多个视频节目中的选定的视频节目相对应的变型播放列表的多个比特率之一。例如,命令处理器100从网络30获得关于网络接口和生成该请求的客户端装置之间的通信信道的信道信息。信道信息可以包括信道类型,例如,3G、4G、有线调制解调器、IObaselOO以太网、数字用户线或者具有相关联的最大比特率或其它预期的比特率的其它网络类型。另外,或者,作为可替换的方案,信道信息包括指示当前信道条件的数据,例如,当前可用的比特率或实际的比特率,或者可以用来生成当前比特率的当前条件的其它指标。除了设置初始比特率以外,命令处理器100还基于关于网络接口和发出请求的客户端装置之间的通信信道的信道信息来调节选定的比特率,以例如逐段地适应当前的信道条件。当比特率被调节时,视频编码器106以选定的速率对每一个当前段进行编码。
[0029]命令处理器100、视频编码器104、视频加密器106、加密密钥生成器108和虚拟文件系统可以通过一个或多个处理装置和一个或多个存储器装置来实现。这种处理装置可以包括微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑装置、状态机、逻辑电路、模拟电路、数字电路和/或基于在存储器中存储的操作指令操纵(模拟和/或数字)信号的任何装置。存储器可以包括硬盘驱动器或其它盘驱动器、只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪速存储器、高速缓冲存储器和/或存储数字信息的任何装置。请注意,当处理装置通过状态机、模拟电路、数字电路和/或逻辑电路实现其功能中的一个或多个时,存储对应的操作指令的存储器可以被嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内或在该电路的外面。
[0030]流视频服务器相对于常规服务器具有另外的优点。对于视频段、变型播放列表和播放列表,不需要持续的存储。这对于具有有限存储能力的嵌入式系统尤其重要。另外,由于如编码处理一样在要求时执行加密处理,所以,可以保护密钥,使得它只能被与所有的潜在客户端相对的预期的客户端装置访问。此外,密钥自身可以在流传输进行的同时改变,并且,可以根据需要在运行时间期间作出该决定。这些内容保护特征对于诸如按此付费观看视频的优质内容尤其重要。此外,对未加密的视频流的未经授权的访问的风险被减少,因为它们绝不会以加密或解密的形式被存储到持久性存储装置,在该持久性存储装置中,它们可以被攻击者访问。此外,可以以不同的方式处理实时和预记录的视频内容。来自实时源的流不会受到大的延迟。
[0031]图3呈示根据本发明的实施例的播放列表数据112的框图表示。图4呈示根据本发明的实施例的变型播放列表数据114的框图表示。在示出的例子中,播放列表数据112包括内容索引120 (来自任何视频源40的所有的可用视频选择的标题)和用于访问每一个节目的变型播放列表数据114的URI地址。内容索引不必为特定的格式,只要客户端装置和流视频服务器50使用相同的格式,或者,这些格式可以被转换为可兼容的。示例格式包括JS0N、XML、纯文本等。同样地,可以利用其它地址格式,其包括文件寻址方案、IP地址或者其它逻辑或物理寻址。另外,如之前讨论的,在呈示特定的视频点播节目时,响应于客户端请求,可以在要求时对实时视频节目进行检索、分段、编码和加密,以便传送。
[0032]另外,播放列表数据112包括关于每一个视频节目和关于每一个比特率的段播放列表122。每一个段播放列表包括关于视频节目的每一段的段号和地址,可任选地,包括用于对该特定段进行加密的加密密钥的地址。此外,虽然示出URI,但是同样地可以利用其它地址格式,其包括文件寻址方案、IP地址或者其它逻辑或物理寻址。
[0033]虚拟文件系统还包含关于内容索引中的每一个视频节目的变型播放列表。每一个变型播放列表包括关于段播放列表的地址(例如,示出的URI)(这些段播放列表也包含在虚拟文件系统中),从而覆盖宽范围的可能的比特率。比特率覆盖通过局域网(高比特率)、互联网和移动网络(较低的比特率)进行流传输的情况。
[0034]在操作的一个例子中,流视频服务器保持播放列表数据112,该播放列表数据112包括在客户端请求时被提供给客户端的内容索引。例如,流视频服务器50可以查询每一个视频源40或者其视频列表,然后对它们进行汇集以产生这样的内容索引。内容索引包含关于每一个项目的变型播放列表的URI。客户端(例如,通过用户输入)选择一个项目,然后作出对与关于该项目的该变型播放列表对应的URI的HTTP请求。变型播放列表包含关于每一个比特率的段播放列表URI,如图4所示。客户端作出对选定的比特率的播放列表(默认为列表中的第一个)的HTTP请求。段播放列表包含关于每一段的数据和每一段的加密密钥的 URI。
[0035]内容索引中的UR1、变型播放列表和段播放列表不对应于如提供在硬驱动器上存储的文件的传统web服务器或流服务器中那样的实际文件;URI由服务器生成并在客户端作出HTTP请求时被视为对虚拟文件的引用。这适用于列表的URI自身,并且也适用于段数据和加密密钥。当针对虚拟文件系统中的“文件”接收到请求时,服务器根据实际的请求生成适当的响应。例如,(a)使用在存储器中存储的信息,通过内容索引、变型播放列表、段播放列表数据作出响应;(b)生成随机的加密密钥,将它存储到存储器(为了后续的段请求),并且响应于客户端而发送它;(C)从源启动视频传输,启动编码和分段,响应于客户端而发送第一段;(d)对于之前启动的传输,编码和分段,将下一段返回给客户端。
[0036]如图所示,变型播放列表数据包括关于特定标题(关于来自特定视频源40或者来自所有视频源的所有节目的一组标题)的多个可选择的比特率。虽然示出6个不同的比特率,但是可以实现更大或更小的数量,其包括未明确示出的另外的或可替换的比特率。
[0037]流视频服务器50相比于常规的基于HLS的服务器系统提供另外的优点。可以存在多个视频编码器104,以满足对于多个客户端装置的点播转码的同时使用要求。编码数据是基于需要来生成的并绝不会持久地存储,从而节省存储器。加密密钥是基于需要来生成的并绝不会存储,除了临时地存储在易失性存储器中以外,这样也节省存储器。编码数据和加密密钥绝不会永久地存储,从而提高内容安全。此外,可以以不同的方式处理实时和预记录的内容,从而导致改善的用户体验。
[0038]常规的基于HLS的服务器系统必须存储关于所有的比特率设置的视频。对存储容量的要求随着比特率设置的数量和视频的持续时间而增长。即使数据可能绝不会被客户端请求,也必须存储该数据,因为它绝对不能在客户端将会使用特定段的编码时间处被确定。在本系统中,由来自视频源40的视频传输、编码、密钥生成和加密得到的数据不被存储到持久存储器(例如,硬驱动器)。对视频源不进行传输、编码、分段和加密,直到客户端请求该视频为止。
[0039]另外,在常规的基于HLS的服务器系统中,必须在编码处理开始之前设置用于视频的比特率。为了选择适当的比特率,需要对预期的网络容量和回放装置类型有一些了解。通常,使用三个比特率:约64kbps的一个低比特率设置和在100和500kbps之间的两个较高设置。在编码时间处设置比特率意味着还设置目标使用情况。不解决任何非预期的情况(例如,超高网络容量、新客户端装置)。当对视频段进行加密时,必须选择加密密钥,该加密密钥将要被所有的客户端使用。
[0040]与此相对照的是,流视频服务器50可以利用更宽范围的比特率,而不必在流传输之前以所有这些比特率对编码的加密视频段进行编码和存储。在本发明的实施例中,在流传输之前,几乎不需要知道客户端装置和可能的网络状况。可以对于可合理地预见的所有的比特率添加支持,并且,不使用的那些比特率在编码方面不会产生代价,编码通常是耗时的处理密集的任务。例如,可以选择比特率设置,以包括在通过局域网进行流传输时预见的高速率,并还包括在通过互联网进行流传输时预见的相对较低的速率。另外,由于可以以很少的附加代价添加附加的比特率设置,所以可以在所需的全范围内以细的粒度来选择比特率值。这降低由于大的比特率变化而导致视频和音频质量从一个段到另一段大幅地改变的分散效应。更重要的是,附加比特率允许针对当前状况优化网络使用。也就是说,选定的比特率很可能是服务器和客户端之间的网络连接所允许的最大比特率,由此,为终端用户最大化了视频和音频质量。
[0041]图5呈示根据本发明的实施例的编码器104的框图表示。在本实施例中,视频编码器104将选定的视频节目200编码为编码的视频节目段204。特别地,视频编码器104基于一个或多个编码参数来进行编码,响应于与用于选定的视频节目的流会话有关的上下文数据202来调节所述编码参数。[0042]如结合图2讨论的,视频编码器104可以根据诸如MPEG2、MPEG4部分10 (也被称为H.264)的运动图片专家组(MPEG)格式来操作。同样地,可以利用例如VCl、数字视频(DV)等的其它视频格式。在本发明的实施例中,视频节目200可以在编码之前或之后被分段。视频编码器104可以通过一个或多个处理装置和一个或多个存储器装置来实现。这种处理装置可以包括微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑装置、状态机、逻辑电路、模拟电路、数字电路和/或基于在存储器中存储的操作指令操纵(模拟和/或数字)信号的任何装置。存储器可以包括硬盘驱动器或其它盘驱动器、只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪速存储器、高速缓冲存储器和/或存储数字信息的任何装置。请注意,当处理装置通过状态机、模拟电路、数字电路和/或逻辑电路实现其功能中的一个或多个时,存储对应的操作指令的存储器可以被嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内或在该电路的外面。
[0043]操作中,流服务器50通过以选定的比特率对源进行编码来对段请求作出响应。在要求时执行编码处理,因此,可以调节编码参数以与反映当前流会话的上下文的上下文数据202 —致。响应于上下文数据102,视频编码器104可以适应性地选择或者另外调节段的总平均比特率,并且,对于选定的总平均比特率,视频编码器104可以适应性地选择或者另外调节音频内容的平均比特率和视频内容的平均比特率。另外,视频编码器104可以适应性地选择或者另外调节其它编码参数,例如,输出视频分辨率、输出视频帧率、编码音频信道的数量等等。
[0044]上下文数据202可以指示从视频节目200或者视频源40得到的信息,例如,视频的类型(例如,新闻、连续剧、音乐、卡通、视频会议)、音频信道的数量和/或关于视频节目200的特征、性质或格式的其它信息。此外,网络接口 102可以从客户端装置60、62、64、66或68接收上下文数据202,该上下文数据202指示关于该客户端装置的信息。这种上下文数据102的例子包括多个装置状态中的当前装置状态,例如,客户端装置操作系统、可以用来调节视频分辨率或音频编码深度、音频信道的数量或者可以用来决定是否在流中包含音频信息的音量设置或者视频显示窗口尺寸(最小化、部分屏幕或全屏)。
[0045]上下文数据202还可以包括响应于带宽测试而生成的带宽评估数据,该带宽测试是响应于对选定的视频节目200的请求而执行的。信道带宽测试可以在发送第一段之前执行。例如,在请求第一段之前,客户端装置60、62、64、66或68可以请求专用来执行信道带宽测试的URI。流服务器50识别该请求并用测试信号对发出请求的客户端装置作出响应。
[0046]测试信号的传输速率可以由流服务器50测量。例如,对变型播放列表请求的响应可以用要被发出请求的客户端装置忽略的内容填充(正常的变型播放列表内容仍然存在)。这可以通过在末端放置空白字符或者插入以注释字符‘#,开始的行来实现。可以这样选择数据量,使得变型播放列表的总大小适合于信道带宽测试,同时减少在向用户开始回放选定的视频节目时的时间延迟。使用太多的数据会减缓用户体验,然而,使用太少的数据会降低测试结果的精度。变型播放列表的传输速率由流服务器50测量。
[0047]图6呈示根据本发明的另一个实施例的编码器104的框图表示。在本实施例中,从选定的视频节目200生成熵预览数据212的熵预处理模块210被包括。熵预览数据212被包含在上下文数据212中(可任选地与其它上下文数据214 —起),例如,在任何之前讨论的上下文数据212中。操作中,熵预览数据212包括将要由视频编码器104编码的视频节目200的帧、音频或其它部分的音频熵数据和/或视频熵数据。特别地,虽然客户端装置60、62、64、66或68可以选择段的最大比特率,但是,流服务器50可以基于熵预览数据212来选择降低该比特率。
[0048]视频预处理模块210可以通过一个或多个处理装置和一个或多个存储器装置来实现。这种处理装置可以包括微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑装置、状态机、逻辑电路、模拟电路、数字电路和/或基于在存储器中存储的操作指令操纵(模拟和/或数字)信号的任何装置。存储器可以包括硬盘驱动器或其它盘驱动器、只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪速存储器、高速缓冲存储器和/或存储数字信息的任何装置。请注意,当处理装置通过状态机、模拟电路、数字电路和/或逻辑电路实现其功能中的一个或多个时,存储对应的操作指令的存储器可以被嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内或在该电路的外面。虽然熵预处理模块210被示出为分离的装置,但是,该熵预处理模块210可以被实现为视频编码器104的一部分。
[0049]视频编码器104的操作可以结合下述例子来描述,在该例子中,选定的视频节目200是体育节目,其特征在于源媒体中的五个音频信道和从20秒标记(second mark)到25秒标记的超低熵视频信号。进一步假设客户端装置是移动装置(例如,智能电话),其视频窗口被最大化,但是,客户端音频在30秒后静音。带宽测试指示250千比特/秒的容量。反映该信息的上下文数据212被呈示给视频编码器104,该视频编码器104通过如下调节编码参数来作出响应。初始流比特率被设置为225千比特/秒(根据带宽测试结果,10%容限),其中,25千比特/秒被分配给音频信号,200千比特/秒被分配给视频信号(由于通常的体育节目中的运动快,所以视频具有比音频高的分配)。选择640像素X480像素的输出视频分辨率(因为源流的可能的较高分辨率可能不被移动客户端支持,或者消耗不需要的处理功率去解码并按比例降低到本机的屏幕分辨率)。输出音频被选择为两个信道(因为移动客户端不可能受益于5信道音频)。由于通常的体育节目的运动快而导致较低的帧率明显地降低体育节目的质量,所以视频帧率被调节为30帧/秒。对于包含视频的低熵部分的段(20s至25s区域),视频编码器104将实际的比特率降低到125千比特/秒,尽管客户端请求了较高的速率。在客户端音频静音时的30秒标记处,视频编码器104将全部的比特率分配给视频信号并去除音频信号。当经由网络接口 102从客户端装置60、62、64、66或68接收到的反馈指示客户端已经将音频控制设置为非零值时,恢复之前的分配。
[0050]这种方法的一个优点是更智能地使用网络带宽。当音频和视频信号具有低熵时,发送的信号的实际比特率低于客户端请求的比特率。这样最小化了网络拥堵将负面影响回放质量的可能性。通过降低在由于低熵而流传输的内容不必要求请求的比特率时所发送的数据量,这也最小化用户的网络使用成本。这种方法也改善了用户体验。基于流会话的上下文来最大化接收到的流的感知质量。
[0051]另外,这些技术避免了由于初始比特率的静态选择而会引起的接收到的流的视觉质量的“提升(ramp up)”,在现有技术中,可以保守地选择初始比特率。这会导致这样的情形,其中,客户端请求具有连续较高比特率的新段,直到信道容量被选择为最大化为止。结果是这样的视频,该视频以低质量开始,然后以显著的潜在地分散的方式在段边界处增加质量。通过基于正好在流会话开始之前的实际的信道容量来选择初始比特率,可以避免提升效应。
[0052]图7呈示根据本发明的实施例的方法的流程图表示。特别地,方法被示出与结合图1至6描述的一个或多个功能和特征结合使用。在步骤400中,存储与可从至少一个视频源得到的多个视频节目相对应的播放列表数据和与多个视频节目中的每一个相对应的变型播放列表数据,变型播放列表数据指示用于对多个视频节目中的每一个进行流传输的多个比特率。在步骤402中,从至少一个客户端装置接收对于多个视频节目中的选定的视频节目的请求。在步骤404中,响应于该请求,从至少一个视频源检索多个视频节目中的选定的视频节目。在步骤406中,将多个视频节目中的选定的视频节目分段为多个段。在步骤408中,基于至少一个编码参数从多个段生成多个编码段,所述至少一个编码参数响应于与用于多个视频节目中的选定的视频节目的流会话有关的上下文数据被调节。
[0053]如讨论的,可以颠倒步骤406和408的顺序。上下文数据可以指示多个视频节目中的选定的视频节目的类型和/或在多个视频节目中的选定的视频节目中包含的音频信道的数量。另外,上下文数据可以包括响应于带宽测试而生成的带宽评估数据,该带宽测试是响应于对于多个视频节目中的选定的视频节目的请求而执行的。调节后的编码参数可以包括:用于多个编码段中的每一个的总平均比特率;用于多个编码段中的每一个的平均视频比特率;用于多个编码段中的每一个的平均音频比特率;用于多个编码段中的每一个的视频分辨率;用于多个编码段中的每一个的视频帧率;和/或用于多个编码段中的每一个的编码音频信道的数量。
[0054]图8呈示根据本发明的实施例的方法的流程图表示。特别地,方法被示出与结合图1至7描述的一个或多个功能和特征结合使用。在步骤410中,从客户端装置接收上下文数据。上下文数据可以指示多个装置状态中的当前装置状态,例如,视频显示窗口尺寸和音量设置。上下文数据可以指示客户端装置的操作系统。
[0055]图9呈示根据本发明的实施例的方法的流程图表示。特别地,方法被示出与结合图1至8描述的一个或多个功能和特征结合使用。在步骤420中,通过对多个视频节目中的选定的视频节目进行预处理,生成熵预览数据。熵预览数据可以被包含在上下文数据中。熵预览数据可以包括音频熵数据和/或视频熵数据。
[0056]图10呈示根据本发明的实施例的方法的流程图表示。特别地,方法被示出与结合图1至9描述的一个或多个功能和特征结合使用。在步骤430中,根据加密密钥从多个编码段生成加密段。在步骤432中,包括多个加密段的流视频信号被发送给至少一个客户端
>J-U装直。
[0057]在优选实施例中,可任选的电路组件可以使用0.35微米或更小的CMOS技术来实现。但是,假设在本发明的宽范围内可以使用集成的或非集成的其它电路技术。
[0058]如本领域的普通技术人员所认识到的,本文中会使用的术语“基本上”或“约”提供其相应术语的业内可接受的公差和/或项目之间的相对性。这种业内可接受的公差在从小于1%到20%的范围内,并且,对应于,但不限于,组件值、集成电路处理变化、温度变化、上升和下降时间、和/或热噪音。这种项目之间的相对性在从百分之几的差异到巨大差异的范围内。如本领域的普通技术人员将会进一步认识到的,本文中会使用的术语“耦接”包括直接耦接和经由另一个组件、元件、电路或模块的间接耦接,其中,对于间接耦接,中间的组件、元件、电路或模块不会修改信号的信息,但是可以调节其电流电平、电压电平和/或功率电平。如本领域的普通技术人员将还会认识到的,推断的耦接(即,其中,根据推断,一个元件与另一个元件耦接)以与“耦接”相同的方式包括两个元件之间的直接和间接耦接。如本领域的普通技术人员将会进一步认识到的,本文中会使用的术语“有利比较”指示两个或更多个元件、项目、信号等之间的比较提供期望的关系。例如,当期望的关系是信号I具有比信号2大的幅值时,当信号I的幅值大于信号2的幅值时,或者,当信号2的幅值小于信号I的幅值时,可以实现有利比较。
[0059]当在本发明的各个实施例的描述中使用了术语“模块”时,模块包括以硬件、软件和/或固件实现的功能块,其执行一个或多个功能,例如,对输入信号进行处理以产生输出信号。如本文中使用的,模块可以包含自身是模块的子模块。
[0060]因此,本文中描述了用于实现媒体分发系统的设备和方法以及包括优选实施例的若干实施例。虽然主要针对视频节目进行描述,但是应该理解,视频节目可以包括相关联的音频,并且,本发明可以同样地适用于相关联的音频或者与视频不相关联的音频节目的分发。本文描述的本发明的各种实施例具有将本发明与现有技术区分开的特征。
[0061]对于本领域的技术人员来说显而易见的是,披露的本发明可以以诸多方式被修改,并且,可以采用除上面具体地陈列和描述的优选形式以外的多种实施例。因此,所附的权利要求旨在覆盖落入本发明的真实精神和范围内的本发明的所有修改。
【权利要求】
1.一种流服务器,包括: 虚拟文件系统,所述虚拟文件系统存储与能够从至少一个视频源得到的多个视频节目相对应的播放列表数据,并且还存储与所述多个视频节目中的每一个相对应的变型播放列表数据,所述变型播放列表数据指示用于对所述多个视频节目中的每一个进行流传输的多个比特率; 网络接口,所述网络接口被耦接为经由至少一个网络与客户端装置双向通信并与所述至少一个视频源双向通信; 视频编码器; 命令处理器,所述命令处理器与网络接口、视频编码器、上下文数据生成器和虚拟文件系统耦接,所述命令处理器以如下的方式操作: 经由网络接口从客户端装置接收对于所述多个视频节目中的选定的视频节目的请求; 响应于所述请求经由网络接口从所述至少一个视频源检索所述多个视频节目中的所述选定的视频节目,并且,基于至少一个编码参数经由视频编码器将所述多个视频节目中的所述选定的视频节目分段并编码为多个编码段,所述至少一个编码参数响应于与用于所述多个视频节目中的所述选定的视频节目的流会话有关的上下文数据被调节。
2.根据权利要求1所述的流服务器,其中,所述网络接口从客户端装置接收上下文数据,并且,所述上下文数据指示多个装置状态中的当前装置状态。
3.根据权利要求2所述的流服务器,其中,所述多个装置状态中的当前装置状态包括下述中的至少一个:视频显示窗口尺寸和音量设置。`
4.根据权利要求1所述的流服务器,其中,所述网络接口从客户端装置接收上下文数据,并且,所述上下文数据指示客户端装置的操作系统。
5.根据权利要求1所述的流服务器,其中,上下文数据指示所述多个视频节目中的所述选定的视频节目的类型。
6.根据权利要求1所述的流服务器,其中,上下文数据指示在所述多个视频节目中的所述选定的视频节目中包含的音频信道的数量。
7.根据权利要求1所述的流服务器,还包括: 熵预处理模块,所述熵预处理模块从所述多个视频节目中的所述选定的视频节目生成熵预览数据,其中,熵预览数据被包含在上下文数据中,并且,熵预览数据包括下述中的至少一个:音频熵数据和视频熵数据。
8.根据权利要求1所述的流服务器,其中,上下文数据包括响应于带宽测试而生成的带宽评估数据,所述带宽测试是响应于对于所述多个视频节目中的所述选定的视频节目的请求而执行的。
9.根据权利要求1所述的流服务器,其中,所述至少一个编码参数包括下述中的至少一个: 用于所述多个编码段中的每一个的总平均比特率; 用于所述多个编码段中的每一个的平均视频比特率; 用于所述多个编码段中的每一个的平均音频比特率; 用于所述多个编码段中的每一个的视频分辨率;用于所述多个编码段中的每一个的视频帧率;以及 用于所述多个编码段中的每一个的编码音频信道的数量。
10.根据权利要求1所述的流服务器,还包括: 视频加密器,所述视频加密器与网络接口、视频编码器和命令处理器耦接,所述视频加密器根据加密密钥从所述多个编码段生成加密段; 其中,所述网络接口将包括所述多个加密段的流视频信号发送给客户端装置。
11.一种方法,包括: 存储与能够从至少一个视频源得到的多个视频节目相对应的播放列表数据和与所述多个视频节目中的每一个相对应的变型播放列表数据,所述变型播放列表数据指示用于对所述多个视频节目中的每一个进行流传输的多个比特率; 从客户端装置接收对于所述多个视频节目中的选定的视频节目的请求; 响应于所述请求,从所述至少一个视频源检索所述多个视频节目中的所述选定的视频节目; 基于至少一个编码参数来生成所述多个视频节目中的所述选定的视频节目的多个编码段,所述至少一个编码参数响应于与用于所述多个视频节目中的所述选定的视频节目的流会话有关的上下文数据被调节。
12.根据权利要求11所述的方法,还包括: 从客户端装置接收上下文数据; 其中,上下文数据指示多个装置状态中的当前装置状态。
13.根据权利要求12所述的方法,其中,所述多个装置状态中的当前装置状态包括下述中的至少一个:视频显示窗口尺寸和音量设置。
14.根据权利要求11所述的方法,还包括: 从客户端装置接收上下文数据; 其中,上下文数据指示客户端装置的操作系统。
15.根据权利要求11所述的方法,其中,上下文数据指示所述多个视频节目中的所述选定的视频节目的类型。
16.根据权利要求11所述的方法,其中,上下文数据指示在所述多个视频节目中的所述选定的视频节目中包含的音频信道的数量。
17.根据权利要求11所述的方法,还包括: 通过对所述多个视频节目中的所述选定的视频节目进行预处理,生成熵预览数据;其中,熵预览数据被包含在上下文数据中,并且,熵预览数据包括下述中的至少一个:音频熵数据和视频熵数据。
18.根据权利要求11所述的方法,其中,上下文数据包括响应于带宽测试而生成的带宽评估数据,所述带宽测试是响应于对于所述多个视频节目中的所述选定的视频节目的请求而执行的。
19.根据权利要求11所述的方法,其中,所述至少一个编码参数包括下述中的至少一个: 用于所述多个编码段中的每一个的总平均比特率; 用于所述多个编码段中的每一个的平均视频比特率;用于所述多个编码段中的每一个的平均音频比特率;用于所述多个编码段中的每一个的视频分辨率;用于所述多个编码段中的每一个的视频帧率;以及用于所述多个编码段中的每一个的编码音频信道的数量。
20.根据权利要求11所述的方法,还包括:根据加密密钥,从所述多个编码段生成加密段;以及将包括所述多个加密段的流视频信号发送给客户端装置。
【文档编号】H04N21/2662GK103493495SQ201280020197
【公开日】2014年1月1日 申请日期:2012年4月23日 优先权日:2011年4月27日
【发明者】谭景超 申请人:莫雷加系统股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1