到非丢失容忍流传输客户端的数字内容流传输的制作方法

文档序号:11292677阅读:167来源:国知局
到非丢失容忍流传输客户端的数字内容流传输的制造方法与工艺



背景技术:

例如在由线缆提供商、卫星发送器、等等使用的一对多单向传输介质中,对数字内容进行流传输的通信随着接收内容的接收方的数量增加变得日益复杂。例如,常规恢复技术采用返回到流的分发者的反相信道通信来请求对数字内容的流的部分的重新传输。尽管这些常规恢复技术对于较低数量的流传输客户端是可行的,但是这对于线缆提供商和卫星发送器的巨大量的流传输客户端不再是可行的。

这在其中流传输客户端不是丢失容忍的情形下变得进一步复杂。例如,一些流传输客户端可能在遇到数字内容的流中的错误(例如在通信期间引起的缺失的或损坏的段)时不再操作。这样的非丢失容忍客户端的示例包括超文本传输协议(http)客户端。因此,这可以使传统流传输技术不可用于这些客户端并且阻碍对常规一对多单向传输流传输技术的使用。



技术实现要素:

描述了到非丢失容忍客户端的数字流传输。在一个示例中,一种系统包括用于修复具有根据丢失容忍格式配置的多个包的数字内容的流中的错误的修复模块。该系统还包括:段形成模块,其用于将多个包形成为媒体呈现中的多个段;以及清单模块,其用于配置将时间段映射到媒体呈现内的多个段中的相应段的清单文件。该系统还包括:流传输服务器,其用于将清单文件提供到超文本传输协议(http)流传输客户端并且基于清单文件来形成包括如由http流传输客户端请求的多个段中的至少一个的对http流传输客户端的响应。

本发明内容以简化的形式介绍下面在具体实施方式中进一步描述的构思的选择。因此,本发明内容不旨在确定要求保护的主题的必要特征,也不旨在用作确定要求保护的主题的范围的辅助。

附图说明

参考附图描述具体实施方式。在附图中,附图标记的最左边的(多个)数字标识该附图标记首次出现的附图。在说明书和附图中的不同实例中对相同附图标记的使用可以指示相似或相同的项。在附图中表示的实体可以指示一个或多个实体并且因此可以对讨论中的实体的单数或复数形式进行可互换地引用。

图1是能操作用于采用本文描述的数字内容流传输技术的示例实施方式中的环境的图示。

图2描绘了其中根据丢失容忍数字内容形成媒体文件的段和清单的示例实施方式的系统。

图3是描绘了其中形成适合于由非丢失容忍流传输客户端消耗的数字内容的流的示例实施方式中的流程的流程图。

图4描绘了其中修复经由网络流传输的数字内容中的错误的示例实施方式中的系统。

图5是描绘了其中使用启发法来修复数字内容的流中的错误的示例实施方式中的流程的流程图。

图6图示了包括能够被实现为如参考图1-5描述和/或利用的实施本文描述的技术的实施例的任何类型的计算设备的示例设备的各种组件的示例系统。

具体实施方式

概述

随着超文本传输协议(http)流传输客户端的普及日益增加,诸如卫星广播者、线缆提供商、等等的内容分发者想要将实况流传输数字内容(例如,视频)直接发送到这些客户端以便扩展该内容的潜在客户的范围。http流传输客户端可以以各种方法来配置,例如专用应用、插件模块、等等以渲染正在被流传输的数字内容。http流传输技术的示例包括hls和mpeg-dash。因此,用于将数字内容直接流传输到这些客户端的能力将大大增加对内容分发者可用的客户的数量。

http流传输通常通过将数字内容拆分成几秒一片的段来执行,几秒一片的段由客户端使用请求/响应技术从http服务器被按顺序下载。然而,这些客户端通常是非丢失容忍的并且因此要求段是正确的且没有错误。例如,http流传输客户端可以在数字内容的一个或多个段例如由于通信故障而被损坏或缺失时变得不稳定或停止渲染内容。由于此,用于对数字内容进行流传输的常规技术不可由常规内容分发者使用以将实况流传输数字内容直接发送到这些非丢失容忍客户端。

描述了可由非丢失容忍客户端使用的数字内容流传输技术。在一个示例中,内容分布系统(例如,线缆提供商、卫星发送器)使用丢失容忍协议(例如mpeg-2传输流)通过网络将数字内容流传输到客户端设备。这可以被执行为到客户端设备的一对多单向传输。

客户端设备包括变换模块,其用于将内容的流从丢失容忍格式转换为可由客户端设备(例如,http流传输客户端)的非丢失容忍流传输客户端消耗的格式。因为简短的错误可以导致http流传输客户端不可操作,所以客户端设备还包括修复模块,其被配置为例如通过填补空包或帧(即,“空白”)等等来修复在内容的丢失容忍流中遇到的错误。一旦被修复,则变换模块形成以可由非丢失容忍流传输客户端消耗的格式的段和将时间段映射到相应段的清单文件(即,清单)。

清单文件和段之后被提供到客户端设备的流传输服务器以根据期望将段提供到客户端设备的非丢失容忍流传输客户端。因此,非丢失容忍流传输设备可以使用请求/响应技术从流传输服务器获得段。因此,非丢失容忍流传输客户端可以在不知道段的数字内容是使用不同的格式来通信的并且在没有由于在通信期间可能遇到的错误而导致不可操作的情况下这么做。以这种方式,非丢失容忍客户端可以被用于消耗来自更多种类的源的更多种类的内容。在下面的部分中包含这些和其他示例的进一步讨论。

在下面的讨论中,首先描述可以采用本文描述的技术的示例环境。之后描述可以在示例环境以及其他环境中执行的示例流程。因此,示例流程的执行不限于示例环境并且示例环境不限于执行示例流程。

示例环境

图1是能用于采用本文描述的数字内容流传输技术的示例实施方式中的环境100的图示。图示的环境100包括经由网络106通信耦合到多个客户端设备的内容分发服务102,多个设备的示例被图示为客户端设备104。内容分发服务102可以各种方式配置,例如卫星提供商、陆地线缆提供商或使用一对多单向传输介质的任何其他分发者。

客户端设备104还可使用如参考图6进一步描述的各种计算设备来配置。例如,计算设备可以被配置为台式计算机、笔记本计算机、移动设备(例如,假定如图示的诸如平板计算机或移动电话的手持配置)、等等。因此,计算设备的范围可以从具有大量存储器和处理器资源的完全资源设备(例如,个人计算机、游戏控制台)到被配置为经由网络106进行通信的具有有限存储器和/或处理资源的低资源设备(例如,移动设备)。额外地,客户端设备104可以使用多个不同的设备(例如多个服务器)来实施。

内容分发服务102包括内容分发模块108,其至少部分地被实施在硬件中以控制经由网络106对数字内容110的流传输,数字内容110被图示为被存储在存储112中。数字内容110可以采取各种形式,例如媒体、视频、音频、等等。

内容分发模块108被配置为将数字内容110作为包经由网络106流传输到客户端设备104。为了这么做,内容分发模块108使用丢失容忍传输(tx)格式114,例如mpeg-2传输流。mpeg-2传输流通过使用重新同步标记(“同步字”)、帧边界标记和可用于在丢失或损坏的包的时间段之后恢复对传输流的解码的其他编码特征是丢失容忍的。以这种方式,内容分发服务102采用不使用后向信道的一对多单向传输例如以答复重新发送在针对线缆和卫星提供商的一对多设置中不可行或不期望的缺失或损坏的个体包的请求。

然而,如先前所描述的,客户端设备104可以包括当遇到通信错误时导致不可操作的非丢失容忍流传输客户端116。例如,缺失或损坏的包可以导致非丢失容忍流传输客户端116停止对内容的渲染。

作为常规恢复的部分,在发送层处使用错误校正码(ecc)但是不以非丢失容忍http流传输客户端通常消耗的形式。ecc包括可用于恢复丢失的或损坏的包的冗余数据。关于ecc的问题在于非丢失容忍客户端116不容任何丢失,而ecc被配置为校正有限量的丢失。尽管ecc可以被增加以校正越来越大量的可能丢失,但是由于用于支持冗余数据中的该增加的额外资源,这在低丢失量的正常情况下是浪费的。额外地,在某个时刻,可能存在比ecc要校正的更多的丢失,此时非丢失容忍客户端116可能变得不可操作。因此,对非丢失容忍流传输客户端116的使用在提供足够的ecc以从可能的错误恢复对比发送ecc的成本(例如,在带宽/可用信道容量中)对比通常浪费该带宽中的多少的域中受经济/预算挑战。由于任何错误可以导致非丢失容忍流传输客户端116不可操作,所以这总是导致对过量的ecc的使用。

因此,客户端设备104包括变换模块118和流传输服务器120,变换模块118和流传输服务器120被配置为将数字内容110的流以可由非丢失容忍流传输客户端116消耗的形式提供到非丢失容忍流传输客户端116。因此,所描述的技术可在没有在带宽和可用信道容量上对ecc的成本的增加的情况下执行。非丢失容忍流传输客户端116的示例包括例如根据mpeg-dash、等等配置为超文本传输协议(http)客户端的应用、插件模块、等等。

变换模块118被配置为接收采用丢失容忍传输格式114的数字内容110的流并将该内容变换成可由非丢失容忍流传输客户端消耗的格式。作为这个的部分,变换模块110可以通过以可用于例如通过使用如在下文中参考图4-5进一步描述的启发法来维持一致回放的方式修复错误,例如在网络106上的通信引起的缺失的或损坏的包。数字内容110一旦被变换就在之后被提供到流传输服务器120以对如由非丢失容忍流传输客户端116“期望”的数字内容110进行流传输。

例如,流传输服务器120可以接收作为包括多个段的媒体呈现的数字内容110和将时间段映射到媒体呈现中的相应段的清单文件。非丢失容忍流传输客户端116可以之后跟随请求/响应技术,其中非丢失容忍流传输客户端116从流传输服务器120请求特定段以用于基于清单文件来渲染并且从服务器接收包括那些段的响应。以这种方式,非丢失容忍流传输客户端116能够访问数字内容110的段而不会遇到可能引起导致流传输客户端不可操作的错误。对此的进一步讨论被包含在下文中并且被示出在对应的附图中。

图2描绘了其中根据丢失容忍数字内容形成媒体文件的段和清单的示例实施方式的系统200。图3描绘了其中形成适合于由非丢失容忍流传输客户端消耗的数字内容的流的流程300。下面的讨论可互换地涉及两个图。

下面的讨论描述可以利用先前描述的系统和设备实施的技术。流程的各方面可以采用硬件、固件、软件或其组合来实施。流程被示出为指定由一个或多个设备执行的操作的并且不必限于被示出用于执行相应框的操作的顺序的框的集合。

图2使用第一级202、第二级204和第三级206来图示。在第一级202处,在诸如线缆提供商、卫星广播机构、等等的内容分发服务102处接收数字内容110。之后将数字内容110以丢失容忍传输格式114形成为丢失容忍数字内容208。例如,内容分发模块108可以将数字内容110形成为支持对重新同步标记和帧边界标记的使用的包。在该示例中,经由使用不支持后向信道通信(例如多播、卫星传输、等等)的一对多单向传输介质的网络106将丢失容忍数字内容208流传输。然而,也预见到支持后向信道通信以便通过支持用于重新传输缺失的或损坏的包的请求来执行错误恢复的其他示例。

在第二级204处,客户端设备104接收丢失容忍数字内容208。变换模块118包括段形成模块210,其用于根据丢失容忍数字内容208的包形成段212。作为这个的部分,段形成模块210首先采用修复模块214来修复具有多个包的数字内容的流中的错误(框302),例如修复缺失的或损坏的包。这确保段212被形成为如由非丢失容忍流传输客户端116“期望”的并且因此不会导致客户端不可操作。这包括对支持实时修复(例如,使用空包、填补、等等)来支持如下面参考图4-5进一步描述的实况内容的渲染的技术的使用。

多个包被形成为媒体呈现中的多个段(框304)。例如,段形成模块210可以当接收到丢失容忍数字内容208时(例如在实况广播期间)收集包来形成预定义长度(例如,几秒)的段。这些段212之后被包括作为媒体呈现的部分。清单模块216之后被用于形成被配置为将时间段映射到媒体呈现内的多个段的相应段的清单文件218(框306)。清单文件218和媒体呈现中的段212之后可用于获得由非丢失容忍流传输客户端116期望的数字内容的段。

在第三级206处,例如,清单文件被提供到非丢失容忍流传输客户端116,例如http流传输客户端(框308)。非丢失容忍流传输客户端116使用清单文件218来定位要被渲染的数字内容110的期望的时间段,例如实况广播中的最近的段、先前段以支持在内容中来回浏览、等等。期望的时间段通过使用清单文件218被映射到对应的段,对应的段之后被用作来自流传输服务器120的针对该段的请求220的部分。流传输服务器120基于清单文件形成包括如由http流传输客户端所请求的多个段212中的至少一个的响应(框310)。以这种方式,非丢失容忍流传输客户端116(例如,http流传输客户端)可以获得所期望的无论哪些段。如先前所描述的,这些客户端的非丢失容忍性可以导致当遇到错误(例如,损坏、缺失的段)时发生故障。因此,修复模块214被配置为至少在某种程度上修复段以避免发生故障,在下文中描述了并且在对应的附图中示出了其示例。

图4描绘了其中修复经由网络106流传输的数字内容中的错误的示例实施方式中的系统400。图5描绘了其中使用启发法来修复数字内容的流中的错误的流程500。下面的讨论可互换地涉及两个图。

下面的讨论描述可以利用先前描述的系统和设备实施的技术。流程的各方面可以采用硬件、固件、软件或其组合来实施。流程被示出为指定由一个或多个设备执行的操作的并且不必限于被示出用于执行相应框的操作的顺序的框的集合。

经由网络接收到采用丢失容忍格式的数字内容的流(框502)。客户端设备104例如经由网络106从内容分发服务102接收丢失容忍数字内容208的流。丢失容忍数字内容208使用经由网络106使用丢失容忍格式被流传输的多个包402(1)-402(n)来形成。丢失容忍格式的示例是mpeg-2传输流。

标识数字内容的流中的错误(框504)。继续先前示例,客户端设备104接收丢失容忍数字内容208的流,其包括如通过假想线图示的包402(3)-402(5)的错误。包402(3)-402(5)例如可以是缺失的或损坏的并且因此不可消耗以渲染数字内容、等等。

因此,通过客户端设备104的修复模块214使用启发法404来修复数字内容的流中的错误(框506)。这被执行使得数字内容当被变换成可由非丢失容忍客户端消耗的格式时“足够正确”,使得即使未通过修复恢复数字内容的整体,修复也足以使得非丢失容忍流传输客户端能够保持可操作。

例如,修复模块214可以首先尽可能多的对数字内容的流进行解码。修复模块214可以之后进行修复使得被形成的段在结构上是正确的。为了这么做,修复模块214可以基于启发法来将包填补到已知预定大小以弥补缺失的部分。修复模块214还可以采用启发法404来描述针对视频或音频的观察到的帧节奏并将空白或空帧插入到整个帧时间段缺失的地方以维持对缺失的帧敏感的流传输客户端中的回放节奏。例如,空帧可以被配置为包括针对音频的静音。对于视频编码,空帧可以通过重复对帧缓冲的显示而不更新、对空白/黑色/灰色帧进行编码、等等来实施。例如,在预测性视频编码技术中,先前帧可以在缺失的更新可以代替对可以是视觉破坏性的新的黑色或灰色图片的使用被使用时被更新。

将经修复的数字内容的流变换成可由非丢失容忍流传输客户端消耗的超文本传输协议的格式(框508)。以这种方式,由于传输或通信中的错误的过多的丢失的简短时间段不会导致整个多秒段不可用并且可以在不使用反馈信道的情况下这么做。暴露以要由非丢失容忍超文本传输协议流传输客户端例如通过使用如先前参考图2-3描述的请求/答复技术消耗的格式的数字内容的经变换的流(框510)。

在一个或多个实施方式中,修复模块214被配置为在第一实例中通过使用填补、空包、和如以上所描述的等等来进行修复从而以及时的方式提供数字内容以例如支持实况广播。修复模块214可以之后采用恢复技术,例如请求重新传输等等以试图进一步恢复数字内容。一旦被恢复,修复模块214就将经恢复的数字内容转发以因此更新段和清单。以这种方式,时间敏感的数字内容可以以及时的方式被接收到并且被进一步恢复以用于在稍后的时间在如此期望的情况下以更完整的方式查看。

示例系统和设备

图6大体在600处图示了示例系统,其包括表示可以实施本文中描述的各种技术的一个或多个计算系统和/或设备的示例计算设备602。这通过包括变换模块118、流传输服务器120和非丢失容忍流传输客户端116来图示。计算设备602可以例如为服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统和/或任何其他适当的计算设备或计算系统。

如所图示的示例计算设备602包括处理系统604、一个或多个计算机可读介质606以及彼此通信耦合的一个或多个i/o接口608。尽管未示出,但是计算设备602还可以包括将各种组件彼此进行耦合的系统总线或其他数据和命令传输系统。系统总线可以包括不同总线结构中的任何一个或组合,例如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种总线体系结构中的任何的处理器或本地总线。也预见到各种其他示例,例如控制和数据线路。

处理系统604表示用于使用硬件来执行一个或多个操作的功能。因此,处理系统604被图示为包括可以被配置为处理器、功能块、等等的硬件元件610。这可以包括采用硬件的实施方式,如专用集成电路或使用一个或多个半导体形成的其他逻辑器件。硬件元件610不受它们被形成的材料或其中采用的处理机制限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(ic))构成。在这样的背景下,处理器可执行指令可以是电子可执行指令。

计算机可读存储介质606被图示为包括存储器/存储612。存储器/存储612表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储组件612可以包括易失性介质(例如随机存取存储器(ram))和/或非易失性介质(例如只读存储器(rom)、闪存、光学盘、磁盘、等等)。存储器/存储组件612可以包括固定介质(例如,ram、rom、固定硬盘驱动器、等等)以及可移除介质(例如,闪存、可移除硬盘驱动器、光学盘、等等)。计算机可读介质606可以如下面进一步所描述的各种其他方式来配置。

(多个)输入/输出接口608表示允许用户将命令和信息输入到计算设备602并且还允许信息使用各种输入/输出设备被呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、游标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容式传感器或其他传感器)、相机(例如,其可以采用可见光波长或不可见光波长,例如红外频率以识别如不涉及触摸的手势的移动)、等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网络卡、触控响应设备、等等。因此,计算设备602可以以如下面进一步描述的用于支持用户交互的各种方式来配置。

各种技术可以在软件、硬件元件或程序模块的总体背景下进行描述的。总体上,这样的模块包括例程、程序、对象、元件、组件、数据结构、以及类似物,其执行特定任务或实现特定抽象数据类型。如本文中所使用的术语“模块”、“功能”和“组件”一般表示软件、固件、硬件或其组合。本文中描述的技术的特征是平台无关的,意味着技术可以被实施在具有各种处理器的各种商用计算平台上。

所描述的模块和技术的实施方式可以被存储在某种形式的计算机可读介质上或跨某种形式的计算机可读介质被发送。计算机可读介质可以包括可以由计算设备602访问的各种介质。通过举例而非限制性的方式,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。

“计算机可读存储介质”可以是指实现对信息的永久和/或非暂态存储的介质和/或设备(与仅仅信号传输、载波、或信号本身形成对比)。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括在适合于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据的信息的方法或技术中的实施的诸如易失性介质和非易失性介质、可移除介质和不可移除介质和/或存储设备的硬件。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多用盘(dvd)或其他光学存储、硬盘、磁带盒、磁带、磁盘存储装置或其他磁性存储设备、或其他存储设备、有形介质或者适合于存储期望信息并且可以由计算机访问的制品。

“计算机可读信号介质”可以是指被配置为将指令例如经由网络发送到计算设备602的硬件的信号承载介质。信号介质通常可以将计算机可读指令、数据结构、程序模块、或其他数据实现在诸如载波、数据信号或其他传输机制的经调制的数据信号中。信号介质还包括任何信号递送介质。术语“经调制的数据信号”意指具有以使得在信号中编码信息的方式设置或改变的其特性中的一个或多个的信号。通过举例而非限制的方式,通信介质包括诸如有线网络或直接有线连接的有线介质和诸如声学、rf、红外和其他无线介质的无线介质。

如先前所描述的,硬件元件610和计算机可读介质606表示以硬件形式实施的可以在一些实施例中用于实施本文中描述的技术的至少一些方面以便执行一个或多个指令的模块、可编程设备逻辑和/或固定设备逻辑。硬件可以包括集成电路或片上系统、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)以及采用硅或其他硬件的其他实施方式的组件。在该背景下,硬件可以操作为执行通过由硬件体现的逻辑和/或指令定义的程序任务的处理设备以及用于存储用于运行的指令的硬件(例如先前描述的计算机可读存储介质)。

前面的组合还可以被用于实施本文中描述的各种技术。因此,软件、硬件或可执行模块可以被实施为被体现在某种形式的计算机可读存储介质上的和/或由一个或多个硬件元件610实施的一个或多个指令和/或逻辑。计算设备602可以被配置为实施对应于软件和/或硬件模块的特定指令和/或功能。因此,对可由计算设备602执行为软件的模块的实施可以至少部分地采用硬件来实现,例如通过使用计算机可读存储介质和/或处理系统604的硬件元件610来实现。指令和/或功能可以由一款或多款制品(例如一个或多个计算设备602和/或处理系统604)执行/操作以实施本文中描述的技术、模块和示例。

本文中描述的技术可以由计算设备602的各种配置来支持并且不限于本文中描述的技术的具体示例。该功能还可以全部地或部分地通过使用分布式系统,例如经由如下面所描述的平台616通过“云”614来实施。

云614包括和/或表示针对资源618的平台616。平台616将硬件(例如,服务器)的低层功能和云614的软件资源抽象化。资源618可以包括可以在计算处理被运行在距计算设备602的远程的服务器上时被利用的应用和/或数据。资源618也可以包括通过互联网和/或通过诸如蜂窝或wi-fi网络的用户网络提供的服务。

平台616可以将资源和功能抽象化以将计算设备602与其他计算设备进行连接。平台616还可以用于将资源的规模抽象化以提供对应等级的规模来迎合对经由平台616实施的资源618的需要。因此,在相互连接的设备实施例中,对本文中描述的功能的实施方式可以被分布在系统600中。例如,可以在计算设备602上以及经由将云614的功能抽象化的平台616部分地实施功能。

结论

尽管已经以对结构特征和/或方法动作特定的语言描述了本发明,但是应理解在权利要求中限定的本发明不必限于所描述的具体特征或动作。相反,具体特征和动作被公开为实施要求保护的本发明的示例形式。

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