多媒体流的自适应转码的方法和装置制造方法

文档序号:7991758阅读:174来源:国知局
多媒体流的自适应转码的方法和装置制造方法
【专利摘要】一种用于流传输从对应的输入内容流自适应地转码的输出内容流的方法,包括:给客户端设备提供输出内容流的多个替代版本以供所述客户端设备选择,以及将输入内容流划分成两个或多个分段。在所述提供步骤之前,至少将输入内容流的第一分段转码和存储为对应于来自提供给客户端设备的多个替代版本的至少一个版本的输出内容流的至少一个对应分段。一旦从客户端设备接收到对于输出内容流的所选版本的请求,使用在所述提供步骤之前已经被转码和存储的对应于来自提供给客户端设备的多个替代版本的至少一个版本的输出内容流的至少一个对应分段来开始流传输。从所述请求提取转码参数,用于控制将所述输入内容流的后续分段转码为客户端设备所选择的版本,并且被转码为所请求版本的后续分段被流传输到客户端。
【专利说明】多媒体流的自适应转码的方法和装置
【技术领域】
[0001]本发明涉及一种用于多媒体流、特别是音频和/或视频流的自适应转码的方法和
>J-U ρ?α装直。
【背景技术】
[0002]音频和/或视频流可以通过使用各种不同设备的用户而被消费。值得注意地,视频流可能要求适配于再现设备的屏幕尺寸的格式或表示。音频流可能同样会受到再现设备所设置的限制。然而,在下面将集中于视频流地提出本发明。
[0003]由于在其上对内容进行流传输的连接中的变型导致也可能需要任何种类的流传输内容的自适应。例如,无线连接由于拥塞、或者接收设备的漫游引起的变化的接收条件,可能仅提供变化的吞吐量。
[0004]已经提出了内容的自适应流传输的多种实现方式。例如加利福尼亚的苹果公司的也被称为“HTTP实时流传输”或“HLS”的实现方式。这种实现方式由R.Pantos描述在2010年 11 月的 IETF, Internet-Draft Version5 (draft-pantos-http-live-streaming-05)的《HTTP Live Streaming》中。
[0005]另一种实现方式是由Microsoft?提出的,被称为“Silverlight平滑流传输”。这种实现方式描述在《IlSsmooth streaming technical overview》中。详细信息在http: //www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=03d22583-3ed6-44da~8464~b Ib4b5ca7520 上在线可得。
[0006]又一种实现方式是由Adobe Systems公司提出的,已知名称为“Adobe动态流传输”。详细信息可以在文件《HTTP dynamic streaming on the Adobe Flashplatform》中找至丨J,在 http: //www.adobe, com/products/httpDynamic-streaming/pdfs/httpdynamicstreaming wp ue.pdf 上在线可得。
[0007]标准化工作仍然由SA4小组内的3GPP进行,并且由“HTTP上的动态自适应流传输”(DASH)小组进行MPEG中的标准化工作。关于这项工作的详细信息由T.Stockhammer公开在〈〈Dynamic adaptive streaming over HTTP-standards and design principles)) (2011年多媒体系统ACM会议(MMSysE2011)学报,2011年2月,第157-168页)中。
[0008]在所有的已知的实现方式中,服务器必须已经存储了已被预编码和已准备好传送的要被流传输的内容——无论是作为单独的块或是作为可以从较大的容器文件中提取出来的分段。
[0009]Kevin J.Ma、Radim Bartos> Swapnil Bhatia、Raj Nair 在的《Mobile videodelivery with HTTP》(ffiEE通信杂志,2011年4月,第166-174页)中公开了使用转码的内容的自适应流传输。转码被用来将多媒体内容从一种格式转变到另一种格式。
[0010]Kue1-Chung Chang、Ren_Yo Wu>Tien-Fu Chen ((Efficient segment-based videotranscoding proxy for mobile multimedia services》(2005 年多媒体和展览 IEEE 国际会议(ICME),第755-758页)中也讨论了流传输的视频的转码。
【发明内容】

[0011]本发明的一个目的是改进经转码的流传输的内容的用户体验,并同时减少服务器和/或系统要求。
[0012]该目的通过在所附的权利要求中所提出的方法和装置来实现。相应的从属权利要求表示该装置和方法的实施例和发展。
【具体实施方式】
[0013]为了为流传输的内容的每个项目提供可能的最佳用户体验,用户可以选择适合于他/她打算使用的回放设备的内容格式。该选择也可以基于其它考虑因素,包括但不限于传输(特别是关于经由相同的传输信道并发的传输)所需的带宽,以及与传输带宽相关联的成本。同样地,付费内容可能具有取决于显示的质量的定价。
[0014]如上面所讨论的,内容流通常存储在服务器上,例如以多种格式和质量存储在HTTP服务器上。最高质量的最可能具有高的比特率;最低质量的最可能具有低的比特率。这允许将内容分发到可能额外地遭受高度变化的网络条件的多个不同的终端或客户端设备。整个内容流被划分成多个块,选择所述块使得客户端设备,例如视频播放器或终端,可以在两个块之间平滑地从一个质量水平切换到另一个。这样的切换可以在网络连接的状况变化的情况下发生,也可以在用户想要更改播放设备同时继续消费内容的情况下发生。因此,视频质量可能在播放时变化,但很少中断。
[0015]一旦用户请求无法从服务器上获得的质量的内容,内容流或其块就被转码到所请求的格式和质量,并发送给用户。但是,内容的转码需要时间,这将延迟用户所请求的内容的回放。即使视频的前几个块一旦被转码就可以被传输,并且可以在后台继续视频的后续块的转码,这样的延迟通常也是不希望的,因为它降低了服务的用户体验的感知质量。
[0016]在服务器和回放设备之间、或者在转码网关和回放设备之间的网络连接变化的情况下,该延迟尤其明显,迫使服务器或网关以降低到回放设备的连接上的内容的数据速率。当用户改变回放设备同时继续消费内容时,该延迟同样明显,特别是对于可能是内容提供商的有偿优质服务的无缝回放体验。例如,用户可以在他/她的家中的大屏幕上开始观看视频,并在视频没有结束时决定移动到一个不同的地方。然后该视频的其余部分可能在具有不同的屏幕尺寸和回放能力的移动设备上进行再现。这不仅要求该流必须被重定向到新的回放设备,还要求必须改变转码参数。如果新的格式的视频或其块的副本对于即时切换不是容易地可用的,这个转变会在该流中插入另一延迟。
[0017]通常,内容流被作为除其它事情之外还提供一组所谓的“表示”的流描述符宣告到客户端设备或再现设备,每一种质量水平、比特率、格式等一种表示。每个完整的表示包括优选地具有相等的持续时间的一系列块,并且具有附接的供客户端选择的一组描述性元素。每个块可由单独的URL访问。
[0018]为了支持实时流传输,所述宣告可以仅描述对应内容流的一部分。在这种情况下,必须定期更新所宣告的部分。
[0019]如上面所进一步讨论的,可以通过在服务器上以所有可以想到的格式保留内容的副本来避免该延迟。然而,这种方法需要非常大的存储,这对于不常被请求的格式是特别低效的,因此这是不希望的。
[0020]参阅上面的讨论,如果只有一个最高质量的内容副本是可用的,另一种避免延迟的方式是使用转码器,它能够并行地将请求的内容转码到所有可以想到的格式。但是,这种转码器需要极高的处理能力,这很可能产生非常高的成本,因此这也是不希望的。
[0021]按照本发明的实施例,客户端设备发送对于期望的内容的请求到服务器。该请求包括所述客户端设备能够处理以进行再现的格式、质量、带宽、数据速率等的指示,并且还可以包括优选格式的指示。可以以选择多个HTTP链接之一的形式作出该请求,每个链接表示一种格式、数据速率或质量,或以上的组合。每一链接向转码器传递允许设置适当的转码器参数以生成具有期望的和所选的属性的内容流的信息。换句话说,由服务器提供的选择页面将如何可接收流传输的内容的描述作为例如可供选择的可用选项的列表提高给客户端设备。
[0022]流传输内容以块的序列提供给客户端。通过单独的请求,例如HTTP请求,就好像它是个小巧的文件那样来取回每个块。对于每个块,客户端设备特别地关于网络连接的属性来决定哪个比特率、质量、分辨率、格式等是合适的,并相应地通过具体的链接地址或URL请求该块。因此,对于各种比特率、格式、质量等的每一个的流传输内容的每个块存在唯一的URL。逐一播放单独请求的块以形成所述内容流。
[0023]如上面所进一步讨论的,特别地对于实时流传输内容,但是也对于其他类型的点播内容,实时服务器需要实时地以所有可以想到的质量、格式、数据速率等来准备块。典型地,得到的各种块将至少被暂时地存储和例如通过Web服务器根据要求来传送。服务器端有限的转码和/或存储资源为这样的方法带来了障碍。只响应于对下一个块的请求来改变转码参数将导致延迟,阻止内容流的平滑和无缝回放。
[0024]按照本发明,如果虽然向客户端设备公告为可用,但是具有所请求的属性的块不可用时,使用可用的块、优选地使用具有尽可能地接近所请求的属性的属性的可用的块来应答对于指向这种不可用的块的链接的请求。这样的块可以是例如从相同的内容的预先计算并存储的版本的有限选择中进行选择。当传送预先计算的块以提供平滑的内容流时,原始请求的参数被用于相应地改变转码器参数。然后要被发送的下一块将以实际请求的格式、质量、比特率等可用。这种方法在一定程度上依赖于比块的再现的持续时间改变更慢的连接属性。
[0025]本发明的自适应流传输允许在传输过程中(on-the-fly)从(包括但不限于)任何传入的广播或传统的IPTV节目中产生HTTP自适应流传输兼容内容流。一种可能的输出是以适合于传送到自适应客户端的格式进行多路复用的H.264视频和AAC音频,例如,用于传送到加利福尼亚的苹果公司制造的客户端设备的MPEG-TS。
[0026]H.264编码需要大量的计算以及资源有限的转码设备,例如采用被设计用于嵌入式设备并具有用于转码的有限资源的Intel CE4200处理器的设备。虽然这款处理器可以同时产生例如NTSC或PAL格式的标准清晰度的若干视频,但它一次仅可以输出一个HD视频。
[0027]因此,Intel CE4200的计算能力限制了能够同时输出的不同的视频质量的数量。为例如,如果目标分辨率接近HD,例如1920X 1080i/p,或720X 1280i/p,则只能输出单个流,从而使产生多种质量的自适应流成为不可能的。[0028]本发明允许将输入视频流转化为自适应HTTP流,而无需在其它情况下产生各种可能的替代流所需的高处理能力。
[0029]根据本发明,向客户端设备提供若干可能的表示,例如比特率、格式等,但实际上只有替代物的子集,或者如果处理能力很低的话甚至只有一个单一替代物,被以根据客户端设备做出的请求调节的比特率来进行转码。
[0030]本发明解决的一个方面是在自适应内容流传输中,内容流的块在它们被宣告时必须是容易地可用的。因此,与传输过程中转码方法通常做出的相反,必须预测客户端请求。否则对这些请求的响应会来得太晚。由于两个原因使得预期是可能的。首先,所请求的块是整体流的一部分。换句话说,为了用户能观看正确的内容流,必须以它们产生的顺序来播放它们。因此,当一个块被转码时,已经已知接下来要产生哪个块。然后,以不是客户端设备所请求的比特率的比特率产生少许块,而且由于任何HTTP自适应流传输客户端设备实现方式固有的缓冲能力使得传送这些块而不是所请求的块成为可能。当然,在预测算法上必须慎重:必须避免溢出客户端缓冲区。
[0031]根据本发明的方法包括预先产生流传输内容的开始的一个或多个连续块。例如,苹果公司的实现方式在流传输会话的开始至少需要至少3个块以填充播放器的缓冲区。其它实现方式可能需要将要预转码的不同数量的块。当产生了这些所谓的启动块的时候,客户端期望的比特率仍是未知的。因此,由自适应平台预先选择比特率。该选择可以基于先前流传输会话的统计分析,或者仅仅是任意的。然后,在下一步骤中,列出替代表示,或变型的清单被例如通过HTTP服务器提供给客户端。对于苹果公司的实现方式,该清单是以M3U8播放列表的形式。这些变型可以提供除其它外的流传输内容的不同的空间或时间分辨率、不同的格式、不同的比特率或不同质量。例如,当客户端设备请求以M3U8播放列表的形式的视频流时,HTTP服务器传送列出可用的变型播放列表的主M3U8播放列表,从而定义可用的比特率。可用比特率的列表根据终端用户代理,例如内容播放器来进行调节。每个替代变型的清单条目包含已准备好可由客户端进行下载的块的列表。由客户端下载该变型描述。根据本发明,清单的所有可选的变型指向相同的预转码的块。如上所述,对于苹果公司的实现方式,这种变型清单由M3U8播放列表来表示,每个变型通过唯一的链接可选。然后,客户端请求内容的变型的流传输和因此请求从该变型供应所述块。变型播放列表列出指向可用的块的链接,或者更精确地说,包含到可用块的符号链接。响应于来自客户端的请求,内容服务器仅传送来自已经可用的预转码的变型的对应块,并从所请求的链接确定所期望的比特率。该所期望的比特率被反馈到为后续块调节编码比特率的转码器。应注意,比特率可以由格式、空间和时间分辨率、质量等来代替。该转码器连续地捕获传入内容流的部分,将其转码成所期望的比特率并将其以适合于自适应流传输的格式进行封装。每当通过转码器产生新的块并准备好用于供应时,更新提供给客户端的清单和变型的清晰度,使得客户端被告知新近可用的块。从客户端的角度,所述流看起来好像是转码器实际上在提供由若干替代变型组成的传统自适应流,并且该流被自适应地调节到可用的带宽或客户端的能力。
[0032]例如,假设M是变型播放列表的数量,Pk是第k个变型播放列表,Bk是第k个变型播放列表的比特率,N是目前可用的块的数量,Ci是对应于第i次迭代的块。所以基本上,当块Cp C2, C3可用时,播放列表Pk列出作为分别朝向Cp C2, C3的符号链接的块Cu、ck;2, Ckj3的URL。以这样一种方式构造所述符号链接,使得可以方便地从该URL取回比特率。当客户端请求视频块Clu时,web服务器不仅传送所请求的块,也解析该请求URL。服务器从这个URL提取客户端指示其期望以第k个变型播放列表信号通知的比特率Bk接收第一块的事实。该信息被输入到带宽估计模块,其计算足够用于编码随后块的比特率值。根据本发明,可以使用简单的低通滤波器来平滑瞬时带宽变化。带宽估计模块的输出值B’k被立即用于重新配置转码器,使得其以比特率B’k产生下一个块——在本示例中为编号4的块。另外,该转码器被通知刚刚消费了块# 1,从而指示“GO”用于产生块# 4。转码器以启动和停止的方式工作,使得它避免了在消费块之前太早提前对其进行编码。由于苹果公司流传输实现方式要求存在N=3个块,因此转码器运行,直到3个块已经准备就绪,并且停止,直到最旧的块已被消费。这种机制有助于加快收敛到客户端所请求的比特率。一旦块是可用的,对于从I到M范围内的k创建对应的符号链接C4,k,并且更新所有的播放列表Pk以向客户端通告存在块C4,k。由于客户端周期性地请求播放列表Pk的内容,它将很快发现另一个块的存在,并请求其重新补充它的播出缓冲区。
[0033]按照本发明的装置能够实时地将传入的内容流转码为具有不同的格式、数据速率、质量等的至少一种输出内容流。例如,这样的装置能够将传入的视频流转码到至少一种
H.264兼容的输出视频流。输出视频流可以被封装为适合于HTTP自适应流传输的传输格式。HTTP服务器将转码后的视频流的块传送到客户端设备。服务器发信号通知期望的比特率、格式、质量等给转码器。发信号通知给转码器的有关参数的信息是从客户端的请求而取得的,但也可以从连接的监视状况推导出来,例如在与客户端设备的无线连接的吞吐量变化的情况下。实际上,在充当流传输的内容的主机的服务器和客户端之间的连接中的吞吐量的任何变化都可以导致转码参数中的变化。这种行为很大程度上取决于转换器所处的连接中的位置。如果从任一侧(即,从转码器的输入侧和从转码器的输出侧)为转码器提供对应信息,那么其在主机服务器和客户端设备之间的连接中的位置几乎是不相关的。
[0034]如上面所进一步 讨论的,按照本发明的装置的示例性实施例采用了基于IntelCE4200的平台。这个处理器包括以硬件实现的基本的视频解码和编码功能。封装和web服务任务在软件中执行。在下面,这个平台将被称为“自适应平台“。
[0035]下面将参照附图描述本发明,附图中唯一的附图示出了所涉及的组件的概述。
[0036]实施本发明的环境包括三个通用元件:源、播放器和自适应平台。
[0037]源是例如视频的流传输内容的来源。换句话说,源是流传输内容的提供者。例如,它可能是传送任何种类的家庭或预付费视频的家庭设备,或是传送广播或组播视频(DVB-T、DVB-1PTV……),或者甚至可以被表示为文件或从网络流传输的点播视频服务、VoD服务的外部内容提供者。在该图中,源被引用为DVB/IPTV。
[0038]播放器是商业终端或客户端设备,其能够取决于它的能力和网络状况以不同的质量播放视频。优选类似HTTP自适应流传输的协议,因为它允许客户端在播放之前请求适当的质量。图中将播放器示为“客户端”。
[0039]自适应平台占据了附图的最大的一部分。提供信号分离器“解复用器”以将传入的内容流解复用成独立的音频和视频成分(如适用)。视频成分在解码器“解码”中进行解码并在分段单元“分段”中进行分段。然后,在编码器“编码”中对分段进行转码,即使用不用于原始参数的参数进行重新编码。该编码器可以是H.264编码器,但其它格式同样是可能的。音频成分在分段单元“分段”中被分割为分段,并也可以被转码(未示出)。然后,转码后的音频和视频分段被提供给多路复用器“TS复用器”。多路复用器“TS复用器”将转码后和多路复用后的分段写入存储器“文件”,从那里服务器“Web服务器”(例如HTTP服务器)将分段转移到客户端。
[0040]如上面所进一步讨论的,当在具有有限的处理能力的转码设备中实现时本发明特别有用,例如在具有基于Intel CE4200处理器的基本的媒体处理能力的互联网网关中。
[0041]本领域技术人员将认识到,上面讨论的实施例中使用的对H.264编解码器和M3U8清单格式的选择只在应用到苹果客户端设备时对描述本发明是必须的。当编码资源太稀缺以致难以并行产生出所有必要的替代流时,要求诸如VC1、WebM的其它编解码器和其它清单格式的其它自适应流传输实现方式可以同样受益于所述发明。
[0042]在流传输实时视频的情形中,清单宣布随时间变化的块的集合。已宣布的变型的集合也可能改变。这可以用于本发明的开发,其中,所提出的变型的集合被动态修改。例如,如果清单提出五个变型,三个具有接近于(例如略低于或略高于)最后请求的比特率的比特率,一个具有高得多的比特率,第五个具有低得多的比特率。可以取决于该连接的吞吐量的过去的变化来更新清单中存在的这些版本。
[0043]如果转码器能够产生多于一个H.264输出流,期望预测该自适应以进一步改善用户体验。按照本发明的发展,跟踪器模块除了当前请求外还跟踪先前请求的一个比特率或多个比特率。当目前请求的比特率低于先前比特率时,预测模块假定客户端可以在以后的请求中进一步降低比特率。因此,在这种情况下,运行转码器的两个实例,以所请求的比特率Ci,,和下一更低的比特率Ci,η两者产生下一块。呈现模块为j属于[k;M]的Cu创建指向Cu的所有符号链接,并且为j属于[0;k-l]的Cu创建符号链接以指向Cu+
[0044]如果目前请求是以比先前比特率更高的比特率,预测模块假定在未来请求中比特率将进一步增加,并以类似的方式引起以更高的比特率产生块的其它版本。
[0045]应注意,跟踪器模块、预测模块和呈现模块可被包括为通用微处理器上的软件模块,或者可以是专用电路。
[0046]本发明允许对包括移动设备的各种设备重新分配任何可用的输入流和应对传输质量的变化。这种自适应是非常符合成本效益的,因为它不要求预先准备流以用于自适应流传输,并且甚至可以通过诸如住宅网关的低端设备来实现。
[0047]因为没有预先准备流传输内容的块,因此从理论上讲,有可能利用无限数量的变型来宣布流传输内容。
[0048]因为尽可能接近用户地(例如在住宅网关中)执行所述自适应,因此本发明提供了一种用于提供广阔分布、同时保持每个单独用户的可能的最佳体验的低成本的解决方案。视频被以高质量广泛传播,例如组播到住宅网关,并只在网关中自适应。
[0049]除非意图为以后的用户保留流传输内容,没有必要将其保存在自适应平台上。只必要在平台上存储它的一部分以用于临时使用和用于实施的便利。
【权利要求】
1.一种用于流传输从对应的输入内容流自适应地转码的输出内容流的方法,该方法包括以下步骤: -给客户端设备提供输出内容流的多个替代版本以供所述客户端设备选择; -将输入内容流划分成两个或多个分段; -在所述提供步骤之前,至少将输入内容流的第一分段转码和存储为对应于来自提供给客户端设备的多个替代版本的至少一个版本的输出内容流的至少一个对应分段; -从客户端设备接收用于流传输输出内容流的所选版本的块的请求; -使用在所述提供步骤之前已经被转码的对应于来自提供给客户端设备的多个替代版本的至少一个版本的输出内容流的至少一个对应分段的第一分段来开始流传输; -从所述请求提取转码参数,用于控制将所述输入内容流的后续分段转码为客户端设备所选择的版本;以及 -流传输被转码为所请求版本的后续分段。
2.根据权利要求1所述的方法,其中,至少将输入内容流的第一分段预先转码为来自提供给客户端设备的多个替代版本的许多版本的对应分段。
3.根据权利要求2所述的方法,其中,响应于所述请求被立即流传输的对应于所述至少第一分段的分段选自与客户端的再现能力兼容的版本。
4.根据权利要求2所述的方法,其中,响应于所述请求被立即流传输的对应于所述至少第一分段的分段选自这样的版本,其转码参数与从客户端设备接收的请求中提取的转码参数尽可能接近地匹配。
5.根据权利要求1所述的方法,其中,转码包括产生输出内容流,其中格式、空间或时间分辨率、数据速率、或者质量中的至少一种与相应的输入格式、空间或时间分辨率、数据速率、或者质量不同。
6.根据权利要求1所述的方法,其中,基于有关提供输入内容流的服务器和客户端设备之间的连接的分段的容量的信息来改变用于控制输入内容流的后续分段的转码的转码参数。
7.根据权利要求1所述的方法,其中对于每个后续分段重复所述提供步骤,并且其中,按照从定向到当前正在被服务的分段的请求中提取的参数来转码所提供的分段的至少一个变型。
8.—种适配于执行根据前述权利要求中任一项的方法的装置。
【文档编号】H04N21/6379GK103765905SQ201280042071
【公开日】2014年4月30日 申请日期:2012年8月24日 优先权日:2011年9月2日
【发明者】C.德劳内, R.侯代勒, S.戈雅克, H.贝尔哈德阿里 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1