CN107197391B - 到非丢失容忍流传输客户端的数字内容流传输 - Google Patents

到非丢失容忍流传输客户端的数字内容流传输 Download PDF

Info

Publication number
CN107197391B
CN107197391B CN201610980635.1A CN201610980635A CN107197391B CN 107197391 B CN107197391 B CN 107197391B CN 201610980635 A CN201610980635 A CN 201610980635A CN 107197391 B CN107197391 B CN 107197391B
Authority
CN
China
Prior art keywords
digital content
stream
segments
loss tolerant
streaming
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.)
Active
Application number
CN201610980635.1A
Other languages
English (en)
Other versions
CN107197391A (zh
Inventor
M·C·桑伯格
K·M·斯特里特
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.)
Adobe Inc
Original Assignee
Adobe Systems 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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN107197391A publication Critical patent/CN107197391A/zh
Application granted granted Critical
Publication of CN107197391B publication Critical patent/CN107197391B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • 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
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0084Formats for payload data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • 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/762Media network packet handling at the source 
    • 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/764Media network packet handling at the destination 
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • User Interface Of Digital Computer (AREA)
  • Retry When Errors Occur (AREA)

Abstract

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

Description

到非丢失容忍流传输客户端的数字内容流传输
背景技术
例如在由线缆提供商、卫星发送器、等等使用的一对多单向传输介质中,对数字内容进行流传输的通信随着接收内容的接收方的数量增加变得日益复杂。例如,常规恢复技术采用返回到流的分发者的反相信道通信来请求对数字内容的流的部分的重新传输。尽管这些常规恢复技术对于较低数量的流传输客户端是可行的,但是这对于线缆提供商和卫星发送器的巨大量的流传输客户端不再是可行的。
这在其中流传输客户端不是丢失容忍的情形下变得进一步复杂。例如,一些流传输客户端可能在遇到数字内容的流中的错误(例如在通信期间引起的缺失的或损坏的段)时不再操作。这样的非丢失容忍客户端的示例包括超文本传输协议(HTTP)客户端。因此,这可以使传统流传输技术不可用于这些客户端并且阻碍对常规一对多单向传输流传输技术的使用。
发明内容
描述了到非丢失容忍客户端的数字流传输。在一个示例中,一种系统包括用于修复具有根据丢失容忍格式配置的多个包的数字内容的流中的错误的修复模块。该系统还包括:段形成模块,其用于将多个包形成为媒体呈现中的多个段;以及清单模块,其用于配置将时间段映射到媒体呈现内的多个段中的相应段的清单文件。该系统还包括:流传输服务器,其用于将清单文件提供到超文本传输协议(HTTP)流传输客户端并且基于清单文件来形成包括如由HTTP流传输客户端请求的多个段中的至少一个的对HTTP流传输客户端的响应。
本发明内容以简化的形式介绍下面在具体实施方式中进一步描述的构思的选择。因此,本发明内容不旨在确定要求保护的主题的必要特征,也不旨在用作确定要求保护的主题的范围的辅助。
附图说明
参考附图描述具体实施方式。在附图中,附图标记的最左边的(多个)数字标识该附图标记首次出现的附图。在说明书和附图中的不同实例中对相同附图标记的使用可以指示相似或相同的项。在附图中表示的实体可以指示一个或多个实体并且因此可以对讨论中的实体的单数或复数形式进行可互换地引用。
图1是能操作用于采用本文描述的数字内容流传输技术的示例实施方式中的环境的图示。
图2描绘了其中根据丢失容忍数字内容形成媒体文件的段和清单的示例实施方式的系统。
图3是描绘了其中形成适合于由非丢失容忍流传输客户端消耗的数字内容的流的示例实施方式中的流程的流程图。
图4描绘了其中修复经由网络流传输的数字内容中的错误的示例实施方式中的系统。
图5是描绘了其中使用启发法来修复数字内容的流中的错误的示例实施方式中的流程的流程图。
图6图示了包括能够被实现为如参考图1-5描述和/或利用的实施本文描述的技术的实施例的任何类型的计算设备的示例设备的各种组件的示例系统。
具体实施方式
概述
随着超文本传输协议(HTTP)流传输客户端的普及日益增加,诸如卫星广播者、线缆提供商、等等的内容分发者想要将实况流传输数字内容(例如,视频)直接发送到这些客户端以便扩展该内容的潜在客户的范围。HTTP流传输客户端可以以各种方法来配置,例如专用应用、插件模块、等等以渲染正在被流传输的数字内容。HTTP流传输技术的示例包括
Figure GDA0002390115450000031
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、
Figure GDA0002390115450000051
HLS、等等配置为超文本传输协议(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中的至少一个的响应222(框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部分地实施功能。
结论
尽管已经以对结构特征和/或方法动作特定的语言描述了本发明,但是应理解在权利要求中限定的本发明不必限于所描述的具体特征或动作。相反,具体特征和动作被公开为实施要求保护的本发明的示例形式。

Claims (20)

1.一种在用于对数字内容进行流传输的数字介质环境中的系统,包括:
修复模块,其至少部分地被实施在硬件中以使用启发法来修复所述数字内容的流中的错误,所述数字内容的所述流具有根据丢失容忍格式配置的多个包;
段形成模块,其至少部分地被实施在硬件中以将经修复的所述数字内容的所述流形成为由非丢失容忍超文本传输协议HTTP流传输客户端可消耗的媒体呈现中的多个段;
清单模块,其至少部分地被实施在硬件中以配置将时间段映射到所述媒体呈现内的所述多个段中的相应段的清单文件;以及
流传输服务器,其至少部分地被实施在硬件中以将所述清单文件提供到所述超文本传输协议HTTP流传输客户端并且基于所述清单文件来形成包括如由所述HTTP流传输客户端请求的所述多个段中的至少一个的对所述HTTP流传输客户端的响应。
2.根据权利要求1所述的系统,其中所述丢失容忍格式是根据MPEG-2传输流来配置的。
3.根据权利要求1所述的系统,其中所述修复模块还被配置为在后续时间点处恢复所述错误的至少部分,所述段形成模块被配置为更新所述多个段以并入所述错误的经恢复的部分,并且所述清单模块被配置为更新所述清单以并入经更新的所述多个段。
4.根据权利要求1所述的系统,其中所述错误包括采用所述丢失容忍格式的所述数字内容的所述流中的一个或多个缺失包。
5.根据权利要求1所述的系统,其中所述修复模块被配置为通过将包填补到预定大小以形成如由所述启发法定义的相应的所述段来执行所述修复。
6.根据权利要求1所述的系统,其中所述修复模块被配置为通过形成空帧以维持如由所述启发法定义的所述数字内容的帧的节奏来执行所述修复。
7.一种在用于对数字内容的流进行通信的数字介质环境中由计算设备实施的方法,所述方法包括:
由所述计算设备使用启发法来修复具有多个包的所述数字内容的所述流中的错误;
由所述计算设备将经修复的所述数字内容的所述流形成为由超文本传输协议HTTP流传输客户端可消耗的媒体呈现中的多个段;
由所述计算设备配置将时间段映射到所述媒体呈现内的所述多个段中的相应段的清单文件;
由所述计算设备将所述清单文件提供到所述超文本传输协议HTTP流传输客户端;以及
由所述计算设备基于所述清单文件来形成包括如由所述HTTP流传输客户端请求的所述多个段中的至少一个的对所述HTTP流传输客户端的响应。
8.根据权利要求7所述的方法,其中所述错误包括采用丢失容忍格式的所述数字内容的所述流中的一个或多个缺失包。
9.根据权利要求7所述的方法,其中所述错误包括所述数字内容的所述流中的损坏的包。
10.根据权利要求7所述的方法,其中所述修复包括将包填补到如由所述启发法定义的预定大小以形成相应的所述段。
11.根据权利要求7所述的方法,其中所述修复包括形成空帧以维持如由所述启发法定义的所述数字内容的帧的节奏。
12.一种在用于对数字内容的流进行通信的数字介质环境中由计算设备实施的方法,所述方法包括:
由所述计算设备经由网络接收采用丢失容忍格式的所述数字内容的所述流;
由所述计算设备标识所述数字内容的所述流中的错误;
由所述计算设备使用启发法来修复所述数字内容的所述流中的所述错误;
由所述计算设备将经修复的所述数字内容的所述流变换成由非丢失容忍流传输客户端可消耗的超文本传输协议的格式;以及
由所述计算设备暴露采用要由所述非丢失容忍超文本传输协议HTTP流传输客户端消耗的所述格式的经变换的所述数字内容的所述流。
13.根据权利要求12所述的方法,其中所述丢失容忍格式是根据MPEG-2传输流来配置的。
14.根据权利要求12所述的方法,其中所述修复是在不使用经由所述网络到所述数字内容的所述流的发源者的反馈信道的情况下被执行的。
15.根据权利要求12所述的方法,其中所述变换成由所述非丢失容忍客户端可消耗的所述超文本传输协议的所述格式包括形成具有根据经修复的所述数字内容的所述流的包形成的多个段的媒体呈现,以及将时间段映射到所述媒体呈现内的相应的所述段以用于由所述非丢失容忍超文本传输协议HTTP流传输客户端获取的清单文件。
16.根据权利要求12所述的方法,其中所述错误包括采用所述丢失容忍格式的所述数字内容的所述流中的一个或多个缺失包。
17.根据权利要求12所述的方法,其中所述修复包括将包填补到预定大小以形成如由所述启发法定义的相应的段。
18.根据权利要求12所述的方法,其中所述修复包括形成空帧以维持如由所述启发法定义的所述数字内容的帧的节奏。
19.根据权利要求12所述的方法,其中所述修复维持采用所述丢失容忍格式的所述数字内容的所述流。
20.根据权利要求12所述的方法,还包括由所述非丢失容忍超文本传输协议HTTP流传输客户端渲染经变换的所述数字内容的所述流。
CN201610980635.1A 2016-03-15 2016-11-08 到非丢失容忍流传输客户端的数字内容流传输 Active CN107197391B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/070,916 2016-03-15
US15/070,916 US10116718B2 (en) 2016-03-15 2016-03-15 Digital content streaming to loss intolerant streaming clients

Publications (2)

Publication Number Publication Date
CN107197391A CN107197391A (zh) 2017-09-22
CN107197391B true CN107197391B (zh) 2020-06-23

Family

ID=59741116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610980635.1A Active CN107197391B (zh) 2016-03-15 2016-11-08 到非丢失容忍流传输客户端的数字内容流传输

Country Status (5)

Country Link
US (1) US10116718B2 (zh)
CN (1) CN107197391B (zh)
AU (1) AU2016256802B2 (zh)
DE (1) DE102016013499A1 (zh)
GB (1) GB2548654B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110611639A (zh) * 2018-06-14 2019-12-24 视联动力信息技术股份有限公司 流媒体会议的音频数据处理方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072984B1 (en) * 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
CN101277316A (zh) * 2008-05-21 2008-10-01 中兴通讯股份有限公司 一种文件下载的交互式纠错方法和系统
CN101889445A (zh) * 2007-12-06 2010-11-17 思科技术公司 在资源不足时段对用于修复错误媒体流的流的递送
JP2011145918A (ja) * 2010-01-15 2011-07-28 Hitachi Solutions Ltd Webアプリケーション表示制御システム
CN103684684A (zh) * 2012-09-13 2014-03-26 国际商业机器公司 用于处理端到端网络连接的无线段上的分组的方法和系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009291B2 (en) * 2006-05-12 2015-04-14 W.W. Grainger, Inc. System and method for directing attention to web site functionality
US8867539B2 (en) * 2009-09-18 2014-10-21 At&T Intellectual Property I, L.P. Multicast-unicast protocol converter
WO2012094543A1 (en) 2011-01-05 2012-07-12 General Instrument Corporation Tuner control for streaming live television
US9445138B2 (en) * 2012-04-12 2016-09-13 Qualcomm Incorporated Broadcast content via over the top delivery
US9071853B2 (en) 2012-08-31 2015-06-30 Google Technology Holdings LLC Broadcast content to HTTP client conversion
CN104620235B (zh) * 2012-09-07 2018-01-16 华为技术有限公司 用于自适应串流中的区段分界及识别的系统及方法
WO2014078596A1 (en) * 2012-11-14 2014-05-22 California Institute Of Technology Coding for real-time streaming under packet erasures
US9258747B2 (en) * 2013-09-17 2016-02-09 Intel IP Corporation User equipment and methods for fast handover failure recovery in 3GPP LTE network
US9774465B2 (en) * 2014-12-24 2017-09-26 Intel Corporation Media content streaming
US9866459B1 (en) * 2016-03-04 2018-01-09 Amazon Technologies, Inc. Origin failover for live streaming

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072984B1 (en) * 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
CN101889445A (zh) * 2007-12-06 2010-11-17 思科技术公司 在资源不足时段对用于修复错误媒体流的流的递送
CN101277316A (zh) * 2008-05-21 2008-10-01 中兴通讯股份有限公司 一种文件下载的交互式纠错方法和系统
JP2011145918A (ja) * 2010-01-15 2011-07-28 Hitachi Solutions Ltd Webアプリケーション表示制御システム
CN103684684A (zh) * 2012-09-13 2014-03-26 国际商业机器公司 用于处理端到端网络连接的无线段上的分组的方法和系统

Also Published As

Publication number Publication date
AU2016256802A1 (en) 2017-10-05
AU2016256802B2 (en) 2021-02-04
US20170272483A1 (en) 2017-09-21
DE102016013499A1 (de) 2017-09-21
US10116718B2 (en) 2018-10-30
GB2548654A (en) 2017-09-27
CN107197391A (zh) 2017-09-22
GB2548654B (en) 2020-09-16

Similar Documents

Publication Publication Date Title
US20190342423A1 (en) System and method for dynamically adapting network delivery modes of content
US9405845B2 (en) Adaptable layouts for social feeds
US8805787B2 (en) Network architecture for content backup, restoring, and sharing
US9369506B2 (en) Insertion of supplementary content into a segmented content stream
US10148713B2 (en) Live manifest update
US9935655B2 (en) Reading of distributed erasure-coded data from an enterprise object storage system
US10178431B2 (en) Hybrid stream delivery
US11076181B2 (en) Systems and methods for resolving manifest file discontinuities
US9563448B2 (en) Mobilizing a web application to take advantage of a native device capability
JP2018527658A (ja) 制限されたネットワークパフォーマンスを有する環境におけるメディアアイテムの自動的提供
US8499055B2 (en) File decoding system and method
JP2015222574A (ja) ページ化更新プロトコルの方法および装置
US20140344667A1 (en) Runtime resolution of content references
CN107197391B (zh) 到非丢失容忍流传输客户端的数字内容流传输
US10101801B2 (en) Method and apparatus for prefetching content in a data stream
US20120317237A1 (en) Remotely retrieving information from consumer devices
CN110677443A (zh) 数据发送和接收方法、发送端、接收端、系统及存储介质
US10607314B2 (en) Image auto resizing
KR20200115314A (ko) 클라우드 스트리밍 서비스에서의 사용자 인터페이스 화면 복구 방법 및 이를 위한 장치
US10723326B2 (en) Content capture and distribution system
CN109831701B (zh) 数字电视设备浏览器以及跨页面系统事件的扩展方法
US10168982B2 (en) Display control of a portion of a document by primary and secondary display devices
CN117319692A (zh) 时移播放方法和装置、计算设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant