CN104380758A - 具有用于自适应流送和故障转移的支持的可缩放实时代码转换 - Google Patents

具有用于自适应流送和故障转移的支持的可缩放实时代码转换 Download PDF

Info

Publication number
CN104380758A
CN104380758A CN201380030433.5A CN201380030433A CN104380758A CN 104380758 A CN104380758 A CN 104380758A CN 201380030433 A CN201380030433 A CN 201380030433A CN 104380758 A CN104380758 A CN 104380758A
Authority
CN
China
Prior art keywords
inlet flow
code conversion
stream
pipeline
parts
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.)
Granted
Application number
CN201380030433.5A
Other languages
English (en)
Other versions
CN104380758B (zh
Inventor
克里希南·埃斯瓦兰
蒂埃里·富屈
孙杰
克里希纳·格拉德帕利
维伊南·夏斯特里
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN104380758A publication Critical patent/CN104380758A/zh
Application granted granted Critical
Publication of CN104380758B publication Critical patent/CN104380758B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • 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/70Media network packetisation
    • 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/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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
    • 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
    • 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)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在本文中公开了一种用于实时流送平台的系统和方法,其能够冗余地处理并行摄取管线中的输入流。可以使用在管线中的每个流中创建相同段的分段功能来将并行管线中的摄取的输入流分段。如果发生错误或者在输入流或管线中的一个或多个中存在中断,则实时流送平台可以确保段是可识别的,并且管线的不同部分可以在没有中断的情况下在不同的时间点加入主流。

Description

具有用于自适应流送和故障转移的支持的可缩放实时代码转换
相关申请的交叉引用
本申请要求于2012年4月11日提交的题为“SCALABLE,LIVETRANSCODING WITH SUPPORT FOR ADAPTIVE STREAMING ANDFAILOVER”的美国专利申请序号13/444,787的权益。其全部内容通过引用被合并到本文中。
技术领域
本公开一般地涉及鲁棒的可缩放实时流送,更具体地涉及无论其中流加入处理管线(pipeline)的点或冗余流中的间歇性破坏如何,都动态地生成一致的输出流。
发明内容
在因特网上对当前事件的实时流送增加了对可靠流送基础设施的需求。实时流送馈送一般地在诸如主要政治谈话和事件、体育事件及其中广大观众依赖于实时流送馈送适当地运行的其他文化事件之类的情况下使用。然而,由于此规模的任何处理和输送系统的分布式性质,部件故障是不可避免的且可能中断或影响输出流的质量。
当前,web上的任务关键实时流送是通过以下这种构建冗余的方式来实现的:使分立的硬件和/或软件编码器推送大致等价的流以被冗余地编码。这种编码是在产生分立的主要和辅助流的完全分立的编码路径中进行的。作为到冗余流的自动切换的故障转移(failover)试图使中断最小化,但是由于其使用分离和/或多样的部件,所以一般地难以实现无干扰的故障转移。
下文提出了本公开的各个方面的简化概要以便提供此类方面的基本理解。此概要不是所有预期方面的广泛概述,并且既不意图识别关键或重要元件也不描述此类方面的范围。其目的是以简化的形式提出本公开的某些概念作为稍后提出的更详细描述的前奏。
本文公开的系统和方法涉及通过生成音频和/或视频数据的等效段(equivalent segments),以不同的代码转换质量来处理自适应位速率流送。所公开的系统的示例包括存储计算机可执行部件的存储器和执行可执行部件的处理器。该系统包括在用于多个代码转换管线的输入流的间隔内识别段边界的段识别部件。代码转换部件对所述多个代码转换管线的输入流进行代码转换。该系统包括分段部件,其基于所识别的段边界将输入流分段成等效块,其中,输入流包括不同的代码转换质量。
在本文中还公开了一种方法,其包括使用处理器来执行存储在存储器中的计算机可执行指令以执行该方法的动作。该动作包括在用于多个代码转换管线的输入流的间隔内识别输入流的段边界。所述多个代码转换管线的输入流被代码转换。经代码转换的输入流基于所识别的段边界而被分段成等效块,其中经代码转换的输入流具有不同的代码转换质量。
在本文中还公开了一种非临时计算机可读存储介质,其包括响应于执行而促使计算系统执行操作的计算机可执行指令,该操作包括识别代码转换管线的第一冗余输入流和第二冗余输入数据流的段边界。第一冗余输入流和第二输入数据流被并行地进行代码转换。第一冗余输入流和第二冗余输入流基于所识别的段边界被进一步分段成等效块。
以下描述和附图详细地阐述了本公开的某些说明性方面。然而,这些方面指示可用以采用本公开的原理的各种方式中的仅几个。本公开意图包括所有此类方面及其等价物。当结合附图来考虑时,根据本公开的以下详细描述,本公开的其他优点和不同特征将变得显而易见。
附图说明
图1是图示出根据本文所述的各个方面和实施方式的实时流送框架的示例性、非限制性实施例的框图。
图2是图示出根据本文所述的各个方面和实施方式的具有并行摄取管线的冗余摄取系统的示例性、非限制性实施例的框图。
图3是图示出根据本文所述的各个方面和实施方式的可以对流进行分段和代码转换的系统的示例性、非限制性实施例的框图。
图4是图示出根据本文所述的各个方面和实施方式处理的各种代码转换流的示例性、非限制性实施例的时间顺序图。
图5是图示出根据本文所述的各个方面和实施方式的可以对输入流进行代码转换的系统的示例性、非限制性实施例的框图。
图5是图示出根据本文所述的各个方面和实施方式的用于处理代码转换流的示例性、非限制性实施例的图。
图7图示出根据本文所述的各个方面和实施方式的用于对输入流进行选择、分段、标记和同步的系统的示例性、非限制性实施例的框图。
图8图示出根据本文所述的各个方面和实施方式的用于对输入流进行识别、代码转换和分段的示例性、非限制性实施例的流程图。
图9是图示出根据本文所述的各个方面和实施方式布置的示例性计算设备的框图。
图10是图示出根据本公开的各个方面和实施方式的示例性联网环境的框图。
具体实施方式
概述
现在参考附图来描述本公开的各个方面,其中相同的附图标记在通篇中用来指代相同的元件。在以下的描述中,出于说明的目的,阐述了许多特定细节以便提供一个或多个方面的透彻理解。然而,应理解的是可在没有这些特定细节的情况下或者用其他方面、部件、材料等来实施本公开的某些方面。在其他情况下,以框图形式示出了众所周知的结构和设备以促进描述一个或多个方面。
应认识到的是根据在本文中描述的一个或多个实施方式,用户可以选择退出提供与数据收集方面相关的个人信息、人口统计信息、位置信息、专有信息、敏感信息等。此外,本文所述的一个或多个实施方式可以提供使已收集、接收或发送的数据匿名。
可以在冗余实时代码转换管线中相干地处理实时流送输入流以更好地处理故障转移事件和自适应位速率流送。针对实时代码转换,可以在故障的情况下以及为了支持不同的代码转换质量(诸如多个分辨率/位速率)而提供冗余代码转换器,其中,多个实时代码转换器管线相互并行地操作。当发布被代码转换的实时视频流时,以规则间隔使不同的经代码转换的流对准,其使得能够实现流之间的切换,以适应位速率或者由于管线的故障,并且提供用户观看的无缝体验。然而,视频流处理管线的不同部分常常出故障且必须在任意时间点重新加入视频流。为了进一步管理自适应位速率流送,必须考虑并处理不同的代码转换质量,其中,用音频和/或视频数据的等效段来生成系统的不同代码转换质量。
在实施例中,实时流送平台可以完全在‘云’环境内操作,并且因此可以以对最终用户不可见的方式提供系统。在云环境中提供实时流送平台意味着摄取框架可以是服务器,其接收输入多播实时流,处理该实时流,并向各种播放器输送鲁棒且稳定的流,也基于向最终用户输送实时流的服务器。该最终用户可以经由web浏览器或轻量级应用来访问实时流。可以从多个摄取路径创建相干流,并且在流中的任何一个的任何部分出故障时,可以从该相干流重构整个的单个流。
可以在并行摄取管线中处理输入流的副本,并且可以在保存流的时间信息(时间戳)的同时将输入流代码转换成期望的输出流(以不同的位速率)。可以使用分段功能来将这些流相干地分段,该分段功能基于输入流的位掩码/模N流加入和分块来识别段边界,其中,N是用于一个块的目标长度。这可以例如通过跨所有子流在公共关键帧处将分段过程初始化来实现,导致同样分段的冗余输入流。
在另一实施例中,块代码转换系统生成等效段,无论两个流在哪里加入,或者无论流在什么时间加入。段识别部件在用于多个代码转换管线的输入流的间隔内识别段边界,并且分段部件基于所识别的段边界而将输入流分段成等效块,其中,输入流包括不同的代码转换质量。组合部件将来自所述多个代码转换管线的输入流组合成具有等效块的单个流,该输入流包括音频流和视频流。术语等效块包括术语等效段,其被定义为大致相同长度的经代码转换视频的一小部分,其对应于音频和/或视频数据的相同源。例如,相同长度可以是相同持续时间或时间长度。
现在参考附图,图1图示出根据各个方面和实施方式的示例性实时流送系统100的框图。可以提供实时流送框架102以摄取和/或处理实时媒体馈送并将其分发到媒体播放器112。媒体播放器112可以解释视频信号并使用每个目标平台的本原媒体堆栈来显示输出。播放器112还可以包括集成的货币化模块。
实时流送基础设施102可以包括摄取基础设施104、源基础设施106、内容分发网络108以及流/事件控制应用编程接口(“API”)110。摄取基础设施104可以接收输入媒体馈送并冗余地处理分立管线中的实时馈送。源基础设施106可以将实时媒体流保存到存储器,并使实时流准备好输送到内容分发网络108,其将实时媒体流输送到媒体播放器112。流控制API 110可以为广播伙伴提供开始和/或停止事件的能力,配置货币化设置,并且一般地管理广播事件组及其生命周期。
现在转到图2,示出了图示出根据各个方面和实施方式的具有并行摄取管线的冗余摄取系统200的示例性、非限制性实施例的框图。在摄取基础设施104中,在摄取输入点202和212处接收冗余实时媒体流。一旦被接收,冗余实时媒体流被并行管线204、210、214和216摄取并处理且最后在经由内容分发网络108分发之前被实时块管理器(例如206)保存到源基础设施106中的存储器208。
摄取输入点202和212可以接收通过与广播发起者的直接对等获取的多播信号或经由通过摄取服务器的全球网获取的实时消息发送协议(“RTMP”)信号。摄取输入点202和212还可以经由可恢复POST请求或作为预分段流(具有会话指示符的独立POST)从基于超文本传输协议(“HTTP”)的摄取接收输入流。摄取输入点202和212还可以从共同地被用于输送实时媒体馈送的其他源接收实时媒体流。一旦接收到冗余实时媒体流,则并行摄取管线204、210、214和216可以并行地摄取并处理冗余实时媒体流。应认识到的是虽然图2描述了管线204和214处理来自输入点202的实时流,并且管线214和216正在处理来自输入点212的实时流,可以存在管线与输入点的任何组合。在某些实施例中,每个输入点可以存在少于或多于两个并行管线,并且在其他实施例中,可以存在多于或少于两个输入点。
摄取管线204、210、214和216可以处理实时流并使其准备好输送到内容分发网络108。在摄取管线204、210、214和216中包括代码转换部件218,并且可以包括其他处理模块,诸如分段识别部件218、缓冲部件(未示出)以及代码转换段。管线204、210、214和216还可以包括可以向实时媒体流中插入可调整的延迟的延迟部件222。摄取管线还可以包括封装器和/或加密部件以将流封装成容器格式和/或将其加密。
管线204、210、214和216中的分段识别部件218可以识别摄取输入流中的段边界且分段部件可以基于段边界而将输入流分段。与被选择用于与每个缓冲段的管线相关联的实时块管理器将段输出到源基础设施106中的下一步骤以便在输送到内容分发网络108之前进行索引和存储。并行摄取管线的此布置在所有层处对系统的鲁棒性进行缩放,从源材料的摄取到编码、存储、到按需资产的转换、发布以及流送。
进一步在这方面,提供相应摄取管线的冗余代码转换器部件222以便支持多个分辨率和位速率,其导致多个实时代码转换器部件222并行地操作。代码转换器部件222的代码转换器部件在发布流时以规则间隔对准地操作,其确保流之间的切换,以适应位速率或者由于任何一个特定管线的故障。
为了确保在不同的任意时间点的流的无缝加入,系统200生成等效段,无论任何两个或更多流在哪里加入该过程。换言之,无论任何一个单独代码转换器部件222在哪里读取输入流,其将忽视输入字节直至代码转换器部件222根据下面进一步讨论的一致的分块规则来检测一致的块或分段间隔。
现在转到图3,图示出系统300的框图,其具有将视频流分离成块且并行地对这些块进行代码转换(例如,MPEG-2传输流视频流块)的代码转换部件222。这些块例如是等效块,所述等效块是作为等效段而生成的,无论这些流在哪里加入或这些流在什么时间被相应处理管线的代码转换部件读取。
代码转换器部件222包括分离部件304,其将输入流302分离成音频和视频流(例如,解复用器或类似部件)。音频流被发送到流送音频代码转换器308,其将音频流从一个或多个格式代码转换成另一个。视频流被发送到流送视频代码转换器310,其并行地或相互基本上同时地对视频流进行代码转换,包括冗余视频流和/或不同视频流。例如,代码转换器部件222利用视频流的等效块或等效段并行地对视频流进行代码转换。块被沿着多个代码转换管线被并行地进行代码转换,其可以包括被操作地连接到流送视频代码转换器310的各种从属代码转换器。
代码转换部件222包括段识别部件306,其可以被容纳在摄取管线内、代码转换部件222内或在别处。段识别部件306识别用于对视频流部分进行代码转换的所述多个代码转换管线的输入流间隔内的段边界。段识别部件306可以包括属性或标记部件,其将元数据归属于或标记成包括等效块数据的时间戳的输入流。例如,可以通过附接到(例如,加标签)到等效块来保持视频流的开始时间和结束时间。替选地,可以通过生成对应于所识别的等效视频流块的流的等效块元数据来保持原始时间戳数据。
代码转换部件222包括联合部件312,其生成代码转换流(例如HTTP实时流送(HLS)MPEGTS/H264/AAC)段或任何类似分段的实时自适应流。联合部件312将输入流组合,使得来自所述多个代码转换管线的音频和视频流被结合成具有流数据的等效块或段的单个流。
为了使得系统300能够在操作上对并行视频流进行代码转换且可适合于各种位速率,代码转换部件222进行操作以经由段识别部件306以一致的间隔创建视频流的等效块,段识别部件306进一步一致地标记这些间隔达相同的长度或持续时间。例如,段识别部件306发现可分块边界(用于流段的时间间隔),其可以例如对应于用于H.264输入的IDR帧。为了获得一致性,采用输入流的位掩码/模N流加入和分块,其中,N是用于块/段的目标长度,其中,该长度可以是指定时间或持续时间长度。例如,如果用于视频分组的时间戳是t1、t2、t3、...,则一致的可分块边界可以是(tk/N)!=(tk-1/N)之后的第一可分块边界,其中,‘/’表示整数除法。
为了获得一致性,可以由代码转换器部件222采用各种规则来对不同代码转换质量的视频流的等效块或段进行代码转换。例如,所有音频和/或视频分组都被丢弃直至识别到可分块边界或所识别边界,其使得能够根据所识别的边界在代码转换过程中将流无缝地结合。另外,根据一致的边界将流分块。换言之,将流一致地分块成等效块。
图4图示出包括时间戳跳跃和在不同的时间加入原始流的两个代码转换流的原始流的示例。在没有分块并用时间戳属性对块进行标记的一致方式的情况下,发布部件例如在能够使接收到的不同流对准方面受到限制,这由于诸如具有时间戳跳跃和重置的MPEG 2传输流(M2TS)之类的高质量输入流而变得复杂。因此,代码转换器部件不一定包含对应于输入流的原始时间戳的时间戳。
图4中的时间戳例如在标签“时间戳跳跃”下面的原始流的时间8和14之间示出。由于原始流具有可分块边界(所识别的段边界),所以可以在任何时间无缝地将并行的冗余或其他代码转换流结合,并且不同的位速率流在该过程中可以是可修改的。如所示,在如箭头点所指定的不同时间将代码转换流txA和代码转换流txB与原始流结合。不一致地等效的块的相应流的一部分被丢弃或忽视。
参考图5,图示出将视频流分离成块、并行地对块进行代码转换且可以将经代码转换的视频块合并的代码转换部件的示例性实施例。流视频代码转换部件222作为实时代码转换系统进行操作,其将视频流划分成块,并且基于可用的从属代码转换器时隙进行操作以提供用于目标代码转换的可调整延迟,诸如用延迟部件220(上文讨论)。
在记录视频并作为输入提供给代码转换部件222之后,例如,段识别部件306识别可分块边界,或者换言之,用于多个代码转换管线的输入流的间隔内的段边界。视频流代码转换器部件310接收视频流中的所识别的边界,其在流音频代码转换器308中被与音频流并行地(基本上同时地)处理。视频流代码转换器部件310向从属代码转换器时隙406分配代码转换流以用于并行处理,其中,故障和自适应流送可以将流加入到在段部件402(例如,块分离器)处正在被处理的原始流。合并器部件404将经代码转换的视频流合并并将其转送到联合部件312,其中,音频和视频流根据块的段边界被组合成具有段的单个流以在管线中生成等效段。
图6图示出根据输入时间和显示时间的块的处理时间。示出了在记录视频的时间与显示时间之间的延迟,使得在记录之后,将视频作为输入提供给代码转换器,当存在足够的数据时,块开始处理。该显示时间因此对应于块的最坏情况处理时间加某个加法因数以考虑不确定性、合并/复用开销以及系统内的其他延迟。在一个实施例中,延迟可以是可针对具有不同代码转换质量(位速率、格式等)的不同输入流而调整的。根据代码转换管线内的处理的等待时间(latency),该延迟例如是自适应的。
现在参考图7,示出了一种根据各种方面和实施方式的生成具有元数据的等效块的系统。系统700可以包括具有段识别部件702、属性或标记部件704、分段部件706和同步部件708的摄取基础设施104的一部分。在710、712和714处示出了处于处理的不同阶段的具有实时媒体流的并行摄取管线。应认识到的是虽然图7示出了摄取基础设施104中的一个分段部件702、一个属性部件704、一个分段部件706以及一个同步部件708,但这是为了简化而完成的,并且每个并行摄取管线可以包括这些部件。
分段识别部件702可以识别所摄取的输入流中的段边界,并且然后分段部件706基于段(可分块)边界而将输入流分段。段识别部件702和段部件706也可以将每个管线中的每个并行摄取的输入流分段,或者替选地分立部件可以识别分立输入流并将其分段。
段识别部件702接收未分段的输入流708并识别输入流中的段。在某些实施例中,所识别的段边界可以基于帧的数目(即每n个帧开始新的段)。替选地,在其他实施例中,段边界可以基于帧的类型(即每个帧内或帧间开始新的段)。其他分段功能可以基于输入流的位掩码/模N流加入和分块来识别段边界,其中,N是用于块/段的目标长度,其中,该长度可以是指定时间或持续时间长度。例如,如果用于视频分组的时间戳是t1、t2、t3、...,则一致的可成块边界可以是(tk/N)!=(tk-1/N)之后的第一可成块边界,其中,‘/’表示整数除法。
在本公开的一方面,为了保持输入流的并行性,段识别部件702用来识别段边界的算法或函数可以在每个输入流范围内是稳定的,使得所识别并分段的段边界对于每个输入流而言是相同的。为此,在某些实施例中,分段识别部件702和/或每个单独部件可以在公共关键帧开始寻找段边界。在其他实施例中,段识别部件702和/或分段部件706可以在流的开头开始。
在另一实施例中,段识别部件702和/或段部件706可以使用针对流不连续性鲁棒的算法。因此,在输入流故障或不连续的情况下,输入流的分段的并行性将不会被中断。
一旦段识别部件702识别到段,则可以将输入流712分段,并且分段的输入流714是分段的结果。每个时间段在每个输入流中可以存在一个段。该时间段可以基于段的长度或者段的长度可以基于时间段的长度。
属性部件704进行操作以将元数据归属于输入流708以便保持属性,诸如等效块的原始时间戳数据。例如,属性部件704将原始开始和结束时间戳附接或标记于所识别或分段的每个等效块。在一个实施例中,属性部件704在处理管线中和不同配置中的任何地方结合分段识别部件702和分段部件706进行操作以便具有用数据/元数据流分组的段。因此,在下游的其他处理部件可以读取视频数据的等效段以及与之相对应的元数据。
另外,同步部件708可操作用于使在所述多个代码转换管线的不同代码转换管线内被处理的具有不同格式的输入流同步。例如,同步部件708基于归属于输入流的元数据而使输入流同步。该流例如可以是在视频流代码转换器中被并行地进行代码转换的视频流,如上文所讨论的,或者是例如来自不同摄取管线的经代码转换的流。
图8图示出根据本公开的一方面的用于将输入流分段和选择段的方法的示例性非限制性实施例的示例性流程图800。为了说明的简化起见,描绘了该方法并描述为一系列动作。然而,根据本公开的动作可以按照各种顺序和/或同时地以及与在本文中描述或未描述的其他动作一起发生。此外,可能并非所有所示动作都是实现根据公开主题的方法所需要的。另外,本领域的技术人员将理解和认识到的是可以经由状态图或事件替选地将该方法表示为一系列互相关状态。另外,应认识到的是在本说明书中公开的方法能够存储在一件制品上以促进将此类方法传送和传输到计算设备。本文所使用的术语制品意图涵盖可从任何计算机可读设备或存储介质(例如,非临时存储介质)访问的计算机程序。
此外,上文已结合各系统图详细地描述了各个动作。应认识到的是图1-7中的此类动作的详细描述可以是且意图是可作为方法和/或根据以下描述方法而实现的。
在802处,识别摄取的输入流中的段边界(例如由段识别部件),以便将相同的长度分段成等效块。可以识别多个输入流的段边界。可以基于帧数来识别段边界(即每n个帧开始新的段)。替选地,在其他实施例中,段边界可以基于帧的类型(即每个帧内或帧间开始新的段)。为了确保输入流被并行地处理,用来识别段边界的算法或函数应在每个输入流范围内是稳定的,使得所识别并分段的段边界对于每个输入流而言是相同的。为此,在本公开的某些方面,分段和识别过程可以跨所有输入流在公共关键帧处发起。替选地,可以从流的开头发起识别。
在804处,在多个代码转换管线中对用边界识别的输入流进行代码转换。例如,冗余并行代码转换管线对具有不同代码转换质量的副本或不同流进行代码转换,诸如不同位速率、不同时间戳、不同开始时间、结束时间、格式等。因此,能够将每个冗余流与在长度或持续时间方面等效的一致的数据块合并。
一旦识别到段边界,可以在806处基于边界将流分段。每个时间段在每个输入流中可以存在一个段。该时间段可以基于段的长度或者段的长度可以基于时间段的长度。每个时间段的每个段可以是可互换的,使得重构的主流可以由每个时间段的输入流中的任何段组成。
在方法800的一个示例中,代码转换部件可以生成等效段,无论不同的流在哪里加入。例如,具有高质量格式(例如,M2TS)的第一代码转换管线流(例如txA)可以在时间戳24处加入,并且已生成具有以下开始和结束时间的段:(26-30)、(30-35)、(35-40)、(40-46)、(46-50)...。此外,具有不同或相同质量格式的不同或第二代码转换管线流(例如txB)可以在时间戳33处加入已处理流且从txA的输入流将不会观察到输入流的不同。将如下生成段:(35-40)、(40-46)...。无论单独代码转换器部件在哪里开始读取输入流,代码转换器部件都将忽视或忽略输入字节直至其发现由所识别的边界定义的一致的可分块间隔为止,如上文所讨论的。然后并行地对这些块进行代码转换以确保高质量的代码转换,原始时间戳被保持在元数据中。
示例性计算设备
参考图9,用于实现本公开的各个方面的适当环境900包括计算设备912。应认识到的是可以结合实现结合图1-7所示和所述的系统或部件中的一个或多个来使用计算机912。计算设备912包括一个或多个处理单元914、系统存储器916以及系统总线918。系统总线918将包括但不限于系统存储器916的系统部件耦合到处理单元914。一个或多个处理单元914可以是各种可用处理器中的任何一个。还可以采用双微处理器及其他多处理器架构作为一个或多个处理单元914。
系统总线918可以是多个类型的总线结构中的任何一个,包括存储器总线或存储器控制器、外围总线或外部总线和/或使用任何种类的可用总线架构的本地总线,包括但不限于工业标准结构(ISA)、微通道架构(MSA)、扩展ISA(EISA)、智能驱动电子设备(IDE)、VESA本地总线(VLB)、外围部件互连(PCI)、卡总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储器卡国际协会总线(PCMCIA)、火警线(IEEE 994)以及小型计算机系统接口(SCSI)。
本文所使用的术语“计算机可读介质”包括计算机可读存储介质和通信介质。计算机可读存储介质包括用任何方法或技术实现以便存储信息(诸如计算机可读指令或其他数据)的易失性和非易失性、可移动和不可移动介质。系统存储器916包括易失性存储器920和非易失存储器922。基本输入/输出系统(BIOS)被存储在非易失存储器922中,其包含用以诸如在启动期间在计算设备912内的元件之间传输信息的基本例程。以图示而非限制的方式,非易失存储器(例如922)可以包括只读存储器(ROM)、可编程序只读存储器(PROM)、电可编程序ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储器或非易失性随机存取存储器(RAM)(例如铁电RAM(FeRAM)。易失性存储器(例如920)包括随机存取存储器(RAM),其充当外部高速缓冲存储器。以图示而非限制的方式,RAM可以许多形式可用,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接Rambus RAM(DRRAM)、直接Rambus动态RAM(DRDRAM)以及Rambus动态RAM。另外,本文中的系统或方法的所公开的存储器部件意图包括但不限于包括这些和任何其他适当类型的存储器。
计算设备912还可以包括可移动/不可移动、易失性/非易失性计算机存储介质。图9图示出例如盘存储924。盘存储924包括但不限于类似于磁盘驱动器、闪速驱动器、软盘驱动器、带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪速存储卡或记忆棒之类的设备。盘存储924还可以包括单独地或与其他存储介质相组合的存储介质,包括但不限于光盘驱动器,诸如压缩盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)。为了促进磁盘存储设备924到系统总线918的连接,通常使用可移动或不可移动接口,诸如接口926。
图9还描述了充当用户与在适当操作环境900中描述的基本计算机资源之间的中间件的软件。此类软件包括例如操作系统928。可以存储在盘存储924上的操作系统928用于控制和分配计算设备912的资源。系统应用930通过例如存储在系统存储器916中或盘存储924上的程序模块932和程序数据934来利用操作系统928进行的资源管理。应认识到的是可以用各种操作系统或操作系统的组合来实现本公开。
用户通过一个或多个输入设备936向计算设备912中输入命令或信息。输入设备936包括但不限于指示设备,诸如鼠标、轨迹球、触针、触控板、键盘、麦克风、操纵杆、游戏板、卫星盘、扫描仪、TV调谐器卡、数字式相机、数字式视频相机、web相机等。这些及其他输入设备经由一个或多个接口端口938通过系统总线918连接到处理单元914。一个或多个接口端口938包括例如串行端口、并行端口、游戏端口以及通用串行总线(USB)。一个或多个输出设备940使用某些相同类型的端口作为一个或多个输入设备936。因此,例如,可使用USB端口来向计算设备912提供输入,并从计算设备912向输出设备940输出信息。提供了输出适配器942以举例说明除其他输出设备940之外,还存在某些输出设备940,例如监视器、扬声器以及打印机,其要求特殊适配器。以图示而非限制的方式,输出适配器942包括视频和声卡,其提供输出设备940与系统总线918之间的连接手段。应注意的是其他设备和/或设备的系统提供输入和输出能力两者,诸如一个或多个远程计算机944。
计算设备912可以使用到一个或多个远程计算机、诸如一个或多个远程计算机944的逻辑连接在联网环境中进行操作。一个或多个远程计算机944可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的设备、对端设备或其他公共网络节点等,并且通常包括相对于计算设备912所述的许多或所有元件。出于简洁的目的,仅用一个或多个远程计算机944来举例说明存储器存储设备946。一个或多个远程计算机944通过网络接口948而被逻辑地连接到计算设备912且然后经由通信连接950而被物理连接。网络接口948涵盖有线和/或无线通信网络,诸如局部区域网络(LAN)、广域网(WAN)、蜂窝式网络等。LAN技术包括光纤分布式数据接口(FDDI)、铜分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括但不限于点到点链路、类似综合服务数字网(ISDN)及其变体的电路交换网、分组交换网以及数字订户线(DSL)。
一个或多个通信连接950指的是用来将网络接口948连接到总线918的硬件/软件。虽然在计算设备912内部为了说明清楚而示出了通信连接950,但其还可以在计算设备912外部。仅仅出于示例性目的,连接到网络接口948所需的硬件/软件包括内部和外部技术,诸如调制解调器,包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器、以太网卡以及无线联网卡。
根据各个方面和实施方式,可以使用计算设备912来将冗余输入流分段并每个时间段从输入流之中选择主段。计算设备912还可以以变化的位速率和/或容器格式将输入流代码转换成输出流。如在本文中更全面地公开的,在某些实施方式中,计算设备912可以包括可以用来处理数据的一个或多个处理器(例如914),包括处理数据以执行各种任务(例如,识别段边界、基于段边界将输入流分段、缓存段并将缓存的段编索引且存储在存储器中,并且每个时间段从缓存的段之中选择主缓存段等)。计算设备912可以包括可以与一个或多个处理器相关联(例如,通信连接)的程序部件905。程序部件905可以包含例如分段部件、缓冲器部件、主选择部件以及代码转换部件和/或其他部件,其可以分别地如本文更全面地公开的那样运行,以促进本文所述公开的实施例。
示例性联网和分布式环境
图10是根据本公开的实施方式的示例性计算环境1000的示意性框图。系统1000包括一个或多个客户端1010。一个或多个客户端1010可以是硬件和/或软件(例如线程、进程、计算设备)。系统1000还包括一个或多个服务器1030。因此,除其他模型之外,系统1000还可以对应于双层客户端服务器模型或多层模型(例如,客户端、中间层服务器、数据服务器)。一个或多个服务器1030还可以是硬件和/或软件(例如线程、进程、计算设备)。例如,服务器1030可以容纳用于通过采用本公开来执行变换的线程。客户端1010与服务器1030之间的一个可能通信可以是在两个或更多计算机进程之间发送的数据分组的形式。
系统1000包括通信框架1050,其可以用来促进一个或多个客户端1010与一个或多个服务器1030之间的通信。一个或多个客户端1010被操作连接到一个或多个客户端数据库1020,其可以用来存储一个或多个客户端1010本地的信息。同样地,一个或多个服务器1030被操作连接到一个或多个服务器数据库1040,其可以用来存储服务器1030本地的信息。
应认识到并理解的是如相对于特定系统和方法所述的部件可包括与如相对于本文公开的其他系统或方法所述的各部件(例如,分别地命名的部件或类似命名的部件)相同或类似的功能。
应注意的是本公开的各方面或特征可与基本上任何无线电信或无线电技术一起使用,例如Wi-Fi;蓝牙;全球互通微波接入(WiMAX);增强型通用分组无线电服务(增强型GPRS);第三代合作伙伴计划(3GPP)长期演进(LTE);第三代合作伙伴计划2(3GPP2)超移动宽带(UMB);3GPP通用移动电信系统(UMTS);高速分组接入(HSPA);高速下行链路分组接入(HSDPA);高速上行链路分组接入(HSUPA);GSM(全球移动通信系统)EDGE(增强型数据速率GSM演进)无线电接入网(GERAN);UMTS陆地无线电接入网络(UTRAN);高级LTE(LTE-A)等。另外,可以将本文所述的某些或所有方面与传统电信技术一起使用,例如GSM。另外,可以将移动以及非移动网络(例如,因特网、数据服务网络,诸如网际协议电视(IPTV)等)与本文所述的各方面或特征一起使用。
虽然上文已在运行于一个和/或多个计算机上的计算机程序的计算机可执行指令的一般背景下描述了本主题,但本领域的技术人员将认识到的是还可以或可能结合其他程序模块来实现本公开。一般地,程序模块包括例程、程序、部件、数据结构等,其执行特定任务和/或特定抽象数据类型。此外,本领域的技术人员将认识到的是可用其他计算机系统配置来实施本发明方法,包括单处理器或多处理器计算机系统、小型计算设备、主计算机以及个人计算机、手持式计算设备(例如PDA、电话)、基于微处理器或可编程消费装置或工业电子装置等。还可在分布式计算环境中实施所示方面,其中,由通过通信网络链接的远程处理设备来执行任务。然而,可以在独立计算机上实施本公开的某些(如果不是全部)方面。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
在本说明书中所使用的术语“部件”、“系统”、“平台”、“接口”等可以指的是和/或可以包括计算机相关实体或与具有一个或多个特定功能的操作机器有关的实体。本文公开的实体可以是硬件、硬件和软件的组合、软件或执行中的软件。例如,部件可以是但不限于是在处理器上运行的进程、处理器、对象、可执行指令、执行线程、程序和/或计算机。以举例说明的方式,在服务器上运行的应用和服务器两者都可以是部件。一个或多个部件可以存在于进程和/或执行线程内,并且可以将部件定位于一个计算机上和/或分布在两个或更多计算机之间。
在另一示例中,各部件可以从具有存储在其上面的各种数据结构的各种计算机可读存储介质执行。该部件可经由本地和/或远程进程进行通信,诸如根据具有一个或多个数据分组的信号(例如,来自在本地系统、分布式系统中和/或经由信号与其他系统跨网络与另一部件相交互的一个部件的数据,所述网络诸如因特网)。作为另一示例,部件可以是具有由电或电子电路操作的机械零件提供的特定功能的设备,所述电或电子电路由处理器所执行的软件或固件应用操作。在这种情况下,处理器可以在设备内部或外部,并且可以执行软件或固件应用的至少一部分。作为另一示例,部件可以是在没有机械零件的情况下通过电子部件来提供特定功能的设备,其中,该电子部件可以包括处理器或其他装置以执行至少部分地赋予电子部件的功能的软件或固件。在一方面,部件可以例如在云计算系统内经由虚拟机来模拟电子部件。在云计算系统中,可以将计算作为服务而非产品来输送。因此,可以通过网络在计算机与服务器之间共享资源、软件以及信息。最终用户可以在商务软件和数据被存储于远程位置处的服务器上的同时通过web浏览器或其他轻量级台式计算机或移动应用来访问基于云的应用。
另外,术语“或”意图意指包括性“或”而非排他性“或”。也就是说,除非另外指明或从上下文显而易见,“X采用A或B”意图意指任何自然的包括性置换。也就是说,如果X采用A;X采用B;或者X采用A和B两者,则根据任何前述情况满足“X采用A或B”。此外,一般地应将在主题说明书和附图中所使用的冠词“一”和“一个”理解成意指“一个或多个”,除非此外指定或从上下文显而易见是针对单数形式。
本文所使用的术语“示例”和/或“示例性”用来意指充当示例、实例或图示。为了避免引起怀疑,本文公开的主题不受此类示例的限制。另外,在本文中被描述为“示例”和/或“示例性”的任何方面或设计不一定被理解为相比于其他方面或设计是优选或有利的,其也不意图排除本领域的技术人员已知的等效示例性结构和技术。
遍及本说明书对“一个实施方式”或“实施方式”或“一个实施例”或“实施例”的引用意指结合该实施方式或实施例所描述的特定特征、结构或特性被包括在至少一个实施方式或一个实施例中。因此,短语“在一个实施例中”或“在实施方式中”或“在一个实施例中”或“在实施例中”在遍及本说明书的不同位置上的出现可以但不一定引用同一实施方式或实施例,取决于环境。此外,可以在一个或多个实施方式或实施例中以任何适当方式将特定特征、结构或特性组合。
可以使用标准编程或工程技术将本文所述的各种方面或特征实现为方法、设备、系统或制品。另外,可以通过实现本文公开的方法中的至少一个或多个的程序模块来实现在本公开中公开的各种方面或特征,该程序模块被存储在存储器中且由至少处理器执行。硬件和软件或硬件和固件的其他组合可以使能或实现本文所述的方面,包括一个或多个公开方法。本文所使用的术语“制品”可以涵盖可从任何计算机可读设备、载体或存储介质访问的计算机程序。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(CD)、数字多功能磁盘(DVD)、蓝光盘(BD)...)、智能卡以及闪速存储设备(例如,卡、棒、键驱动器)等。
如在主题说明书中所采用的术语“处理器”可以指的是基本上任何计算处理单元或设备,包括但不限于单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;并行平台;以及具有分布式共享存储器的并行平台。另外,处理器可以指的是集成电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或可编程序逻辑控制器(PLC)、复杂可编程逻辑器件(CPLD)、离散门或晶体管逻辑、离散硬件部件或其任何组合,其被设计成执行本文所述功能。此外,处理器可以利用纳米级架构,诸如但不限于基于分子或量子点的晶体管、开关或门,以便优化空间使用或增强用户设备的性能。还可将处理器实现为计算处理单元的组合。
在本公开中,利用诸如“库”、“存储”、“数据仓库”、“数据存储”、“数据库”和关于部件的操作和功能的基本上任何其他信息存储部件之类的术语来指代在“存储器”或包括存储器的部件中体现的“存储器部件”实体。应认识到的是本文所述的存储器和/或存储器部件可以是易失性存储器或非易失存储器,或者可以包括易失性和非易失存储器。
上文已描述的内容包括本公开的系统和方法的示例。当然,不可能出于描述本公开的目的而描述部件或方法的每个可设想组合,但本领域的技术人员可以认识到可以有本公开的许多其他组合和置换。此外,在详细描述、权利要求、附录和附图中使用术语“包括”、“具有”、“拥有”等的程度上,此类术语意图以与当在被用作权利要求中的过渡性词语时将术语“包括”解释为“包括”的类似方式是包括性的。
权利要求书(按照条约第19条的修改)
1.一种系统,包括:
存储器,所述存储器存储计算机可执行部件;
处理器,所述处理器执行存储于所述存储器中的以下计算机可执行部件;
段识别部件,所述段识别部件识别用于多个代码转换管线的输入流的间隔内的段边界,其中所述输入流基于媒体流并且所述段边界基于位掩码/模N算法,其中N是目标块长度;
代码转换部件,所述代码转换部件对所述多个代码转换管线的所述输入流进行代码转换;以及
分段部件,所述分段部件基于所识别的段边界将所述输入流分段成等效块,其中所述输入流包括不同的代码转换质量。
2.根据权利要求1所述的系统,进一步包括:
联合部件,所述联合部件将来自所述多个代码转换管线的所述输入流组合成具有所述等效块的单个流,所述输入流包括音频流和视频流。
3.根据权利要求2所述的系统,其中,所述代码转换部件将所述音频流与所述视频流分开地进行代码转换。
4.根据权利要求1所述的系统,其中,所述代码转换部件以每个输入流具有延迟的形式并行地对所述输入流进行代码转换。
5.根据权利要求4所述的系统,其中,所述代码转换部件调整用于不同输入流的延迟。
6.根据权利要求4所述的系统,其中,所述延迟根据相应代码转换管线中的处理的等待时间而是自适应的。
7.根据权利要求1所述的系统,进一步包括:
属性部件,所述属性部件将分别地保持所述输入流的属性的元数据归属于所述输入流,所述属性分别地包括所述等效块的原始时间戳。
8.根据权利要求7所述的系统,其中,所述属性部件将原始的起始和结束时间戳附接于每个所述等效块。
9.根据权利要求1所述的系统,进一步包括:
同步部件,所述同步部件使在所述多个代码转换管线的不同代码转换管线内处理的具有不同格式的输入流同步,所述同步部件基于归属于所述输入流的元数据使所述输入流同步。
10.根据权利要求1所述的方法,其中,所述等效块分别地包括来自同一个源的具有基本上相同的起始和结束时间的输入流的段,所述同一个源是音频源和视频源、或者是该音频源或该视频源。
11.一种方法,包括:
使用处理器来执行存储于存储器中的计算机可执行指令以执行以下动作:
识别用于多个代码转换管线的间隔内的输入流的段边界,其中所述输入流基于媒体流并且所述段边界基于位掩码/模N算法,其中N是目标块长度;
对所述多个代码转换管线的输入流进行代码转换;
基于所识别的段边界将经代码转换的输入流分段成等效块,所述经代码转换的输入流具有不同的代码转换质量。
12.根据权利要求11所述的方法,其中,所述代码转换质量分别地包括所述输入流的不同位速率和不同格式。
13.根据权利要求11所述的方法,进一步包括:
将所述输入流组合成具有所述等效块的单个流。
14.根据权利要求11所述的方法,进一步包括:
通过以所述多个代码转换管线中的每个代码转换管线具有延迟的形式并行地冗余处理所述输入流,来对所述输入流进行代码转换。
15.根据权利要求11所述的方法,进一步包括:
使分别地包括所述输入流的属性的元数据归属于所述输入流。
16.根据权利要求15所述的方法,进一步包括:
基于所述输入流的元数据来使所述输入流同步。
17.根据权利要求11所述的方法,其中,所述输入流包括输入元数据流,所述输入元数据流包括用于所述输入流的代码转换质量,所述代码转换质量包括与每个输入流相关联的位速率和格式数据。
18.根据权利要求16所述的方法,其中,使所述输入流同步包括基于所述元数据分别地使具有不同位速率和不同格式的输入流同步,所述元数据包括分别地用于所述等效块的原始的起始和结束时间戳。
19.根据权利要求11所述的方法,其中,对所述多个代码转换管线的输入流进行代码转换包括对分立并行的代码转换管线中的冗余输入流进行代码转换,所述输入流包括第一格式的第一输入流和第二不同格式的第二输入流以及时间戳,其被组合并同步成具有所述等效块的单个一致流。
20.一种非临时计算机可读存储介质,包括响应于执行而促使计算系统执行操作的计算机可执行指令,所述操作包括:
识别代码转换管线中的第一冗余输入流和第二冗余输入数据流中的段边界,其中所述输入流基于媒体流并且所述段边界基于位掩码/模N算法,其中N是目标块长度;
并行地对所述第一冗余输入流和所述第二输入数据流进行代码转换;
基于所识别的段边界将所述第一冗余输入流和所述第二冗余输入流分段成等效块。
21.根据权利要求20所述的非临时计算机可读存储介质,进一步包括:
基于在并行的代码转换管线中的处理时间使不同的时间戳归属于所述第一冗余输入流和所述第二冗余输入流。
22.根据权利要求21所述的非临时计算机可读存储介质,进一步包括:
使所述第一冗余输入流和所述第二冗余输入流同步成具有所述等效块的单个一致流,所述第一冗余输入流和所述第二冗余输入流具有相互不同的位速率和格式。

Claims (22)

1.一种系统,包括:
存储器,所述存储器存储计算机可执行部件;
处理器,所述处理器执行存储于所述存储器中的以下计算机可执行部件;
段识别部件,所述段识别部件识别用于多个代码转换管线的输入流的间隔内的段边界;
代码转换部件,所述代码转换部件对所述多个代码转换管线的所述输入流进行代码转换;以及
分段部件,所述分段部件基于所识别的段边界将所述输入流分段成等效块,其中所述输入流包括不同的代码转换质量。
2.根据权利要求1所述的系统,进一步包括:
联合部件,所述联合部件将来自所述多个代码转换管线的所述输入流组合成具有所述等效块的单个流,所述输入流包括音频流和视频流。
3.根据权利要求2所述的系统,其中,所述代码转换部件将所述音频流与所述视频流分开地进行代码转换。
4.根据权利要求1所述的系统,其中,所述代码转换部件以每个输入流具有延迟的形式并行地对所述输入流进行代码转换。
5.根据权利要求4所述的系统,其中,所述代码转换部件调整用于不同输入流的延迟。
6.根据权利要求4所述的系统,其中,所述延迟根据相应代码转换管线中的处理的等待时间而是自适应的。
7.根据权利要求1所述的系统,进一步包括:
属性部件,所述属性部件将分别地保持所述输入流的属性的元数据归属于所述输入流,所述属性分别地包括所述等效块的原始时间戳。
8.根据权利要求7所述的系统,其中,所述属性部件将原始的起始和结束时间戳附接于每个所述等效块。
9.根据权利要求1所述的系统,进一步包括:
同步部件,所述同步部件使在所述多个代码转换管线的不同代码转换管线内处理的具有不同格式的输入流同步,所述同步部件基于归属于所述输入流的元数据使所述输入流同步。
10.根据权利要求1所述的方法,其中,所述等效块分别地包括来自同一个源的具有基本上相同的起始和结束时间的输入流的段,所述同一个源是音频源和视频源、或者是该音频源或该视频源。
11.一种方法,包括:
使用处理器来执行存储于存储器中的计算机可执行指令以执行以下动作:
识别用于多个代码转换管线的间隔内的输入流的段边界;
对所述多个代码转换管线的输入流进行代码转换;
基于所识别的段边界将经代码转换的输入流分段成等效块,所述经代码转换的输入流具有不同的代码转换质量。
12.根据权利要求11所述的方法,其中,所述代码转换质量分别地包括所述输入流的不同位速率和不同格式。
13.根据权利要求11所述的方法,进一步包括:
将所述输入流组合成具有所述等效块的单个流。
14.根据权利要求11所述的方法,进一步包括:
通过以所述多个代码转换管线中的每个代码转换管线具有延迟的形式并行地冗余处理所述输入流,来对所述输入流进行代码转换。
15.根据权利要求11所述的方法,进一步包括:
使分别地包括所述输入流的属性的元数据归属于所述输入流。
16.根据权利要求15所述的方法,进一步包括:
基于所述输入流的元数据来使所述输入流同步。
17.根据权利要求11所述的方法,其中,所述输入流包括输入元数据流,所述输入元数据流包括用于所述输入流的代码转换质量,所述代码转换质量包括与每个输入流相关联的位速率和格式数据。
18.根据权利要求16所述的方法,其中,使所述输入流同步包括基于所述元数据分别地使具有不同位速率和不同格式的输入流同步,所述元数据包括分别地用于所述等效块的原始的起始和结束时间戳。
19.根据权利要求11所述的方法,其中,对所述多个代码转换管线的输入流进行代码转换包括对分立并行的代码转换管线中的冗余输入流进行代码转换,所述输入流包括第一格式的第一输入流和第二不同格式的第二输入流以及时间戳,其被组合并同步成具有所述等效块的单个一致流。
20.一种非临时计算机可读存储介质,包括响应于执行而促使计算系统执行操作的计算机可执行指令,所述操作包括:
识别代码转换管线中的第一冗余输入流和第二冗余输入数据流中的段边界;
并行地对所述第一冗余输入流和所述第二输入数据流进行代码转换;
基于所识别的段边界将所述第一冗余输入流和所述第二冗余输入流分段成等效块。
21.根据权利要求20所述的非临时计算机可读存储介质,进一步包括:
基于在并行的代码转换管线中的处理时间使不同的时间戳归属于所述第一冗余输入流和所述第二冗余输入流。
22.根据权利要求21所述的非临时计算机可读存储介质,进一步包括:
使所述第一冗余输入流和所述第二冗余输入流同步成具有所述等效块的单个一致流,所述第一冗余输入流和所述第二冗余输入流具有相互不同的位速率和格式。
CN201380030433.5A 2012-04-11 2013-04-10 用于处理自适应位速率流送的系统和方法 Active CN104380758B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/444,787 US9246741B2 (en) 2012-04-11 2012-04-11 Scalable, live transcoding with support for adaptive streaming and failover
US13/444,787 2012-04-11
PCT/US2013/036044 WO2013155234A1 (en) 2012-04-11 2013-04-10 Scalable, live transcoding with support for adaptive streaming and failover

Publications (2)

Publication Number Publication Date
CN104380758A true CN104380758A (zh) 2015-02-25
CN104380758B CN104380758B (zh) 2019-04-19

Family

ID=48326394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380030433.5A Active CN104380758B (zh) 2012-04-11 2013-04-10 用于处理自适应位速率流送的系统和方法

Country Status (4)

Country Link
US (3) US9246741B2 (zh)
EP (1) EP2837203A1 (zh)
CN (1) CN104380758B (zh)
WO (1) WO2013155234A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604992A (zh) * 2016-05-26 2018-09-28 华为技术有限公司 使用主机内核资源的轻量级虚拟机之间的软件定义开关的系统和方法
CN109640109A (zh) * 2018-12-14 2019-04-16 网宿科技股份有限公司 一种直播视频流转码异常复现的方法及装置

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117418A1 (en) 2011-11-06 2013-05-09 Akamai Technologies Inc. Hybrid platform for content delivery and transcoding
US9246741B2 (en) * 2012-04-11 2016-01-26 Google Inc. Scalable, live transcoding with support for adaptive streaming and failover
US9307344B2 (en) 2013-04-17 2016-04-05 Systech Corporation Gateway device for machine-to-machine communication with dual cellular interfaces
US10440080B2 (en) 2013-10-18 2019-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Software-defined media platform
US8955027B1 (en) 2013-11-21 2015-02-10 Google Inc. Transcoding media streams using subchunking
US9706509B2 (en) 2013-12-05 2017-07-11 Cisco Technology, Inc. Synchronization of streaming data
US9485456B2 (en) * 2013-12-30 2016-11-01 Akamai Technologies, Inc. Frame-rate conversion in a distributed computing system
US10135945B2 (en) 2014-01-15 2018-11-20 Cisco Technology, Inc. Methods and systems for boundary placement in a data stream
US9865303B1 (en) * 2014-02-24 2018-01-09 Google Inc. Creation of media clips from media broadcasts
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
US9344748B2 (en) 2014-03-31 2016-05-17 Arris Enterprises, Inc. Adaptive streaming transcoder synchronization
CN104010232B (zh) * 2014-05-23 2017-12-12 惠州Tcl移动通信有限公司 一种智能播放在线视频的方法、系统、播放器及移动终端
US10136147B2 (en) 2014-06-11 2018-11-20 Dolby Laboratories Licensing Corporation Efficient transcoding for backward-compatible wide dynamic range codec
US9703839B2 (en) 2014-06-20 2017-07-11 International Busines Machines Corporation Managing streams of tuples
US9479720B1 (en) * 2014-09-16 2016-10-25 Amazon Technologies, Inc. Method and/or apparatus for frame accurate hot failover
US20160191961A1 (en) * 2014-12-31 2016-06-30 Imagine Communications Corp. Fragmented video transcoding systems and methods
EP3627337A1 (en) * 2015-02-27 2020-03-25 DivX, LLC Systems and methods for frame duplication and frame extension in live video encoding and streaming
US10855741B2 (en) * 2015-08-06 2020-12-01 Sensormatic Electronics, LLC System and method for multiplexed video stream decoding in web browser
US11287653B2 (en) 2015-09-09 2022-03-29 Vantrix Corporation Method and system for selective content processing based on a panoramic camera and a virtual-reality headset
US10419770B2 (en) * 2015-09-09 2019-09-17 Vantrix Corporation Method and system for panoramic multimedia streaming
US11108670B2 (en) 2015-09-09 2021-08-31 Vantrix Corporation Streaming network adapted to content selection
US10367876B2 (en) 2015-12-21 2019-07-30 AVAST Software s.r.o. Environmentally adaptive and segregated media pipeline architecture for multiple streaming sessions
US10117000B2 (en) * 2016-03-10 2018-10-30 Silveredge Technologies Pvt. Ltd. Method and system for hardware agnostic detection of television advertisements
EP3220262B1 (en) * 2016-03-15 2018-06-13 Axis AB Device which is operable during firmware upgrade
EP3232667A1 (en) * 2016-04-12 2017-10-18 EVS Broadcast Equipment SA Modular software based video production server, method for operating the video production server and distributed video production system
US10944806B2 (en) 2016-06-22 2021-03-09 The Directv Group, Inc. Method to insert program boundaries in linear video for adaptive bitrate streaming
EP3538377A4 (en) 2016-11-09 2019-12-11 IDEMIA Identity & Security USA LLC INTEGRATION OF SECURITY INFORMATION IN AN IMAGE
EP3563300A1 (en) 2016-12-30 2019-11-06 Robert L. Jones Embedded variable line patterns
US11019349B2 (en) * 2017-01-20 2021-05-25 Snap Inc. Content-based client side video transcoding
US20180287943A1 (en) * 2017-03-31 2018-10-04 Microsoft Technology Licensing, Llc Combining Multiple Data Streams at a Receiver for QoS Balance in Asymmetric Communications
US10757453B2 (en) * 2017-09-13 2020-08-25 Amazon Technologies, Inc. Distributed multi-datacenter video packaging system
US10887609B2 (en) 2017-12-13 2021-01-05 Netflix, Inc. Techniques for optimizing encoding tasks
US10419786B1 (en) 2018-07-20 2019-09-17 Fubotv Inc. Systems and methods for securely generating live previews
US10951906B2 (en) 2018-08-16 2021-03-16 Bombbomb, Inc. Method and system for implementing split and parallelized encoding or transcoding of audio and video content
US11314996B1 (en) 2019-06-04 2022-04-26 Idemia Identity & Security USA LLC Embedded line patterns using square-wave linecode
US11812069B2 (en) 2019-11-26 2023-11-07 Fox Corporation System and method for live stream control
US11979947B2 (en) 2020-05-04 2024-05-07 Systech Corporation Dual channel gateway device for machine-to-machine communication
US11509946B1 (en) * 2021-11-08 2022-11-22 Pluto Inc. Methods and systems configured to manage video transcoder latencies

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073550A1 (en) * 2002-10-11 2004-04-15 Orna Meirovitz String matching using data bit masks
WO2009020552A1 (en) * 2007-08-06 2009-02-12 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US20110087794A1 (en) * 2009-10-08 2011-04-14 Futurewei Technologies, Inc. System and Method to Support Different Ingest and Delivery Schemes for a Content Delivery Network

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097435A (en) 1997-01-31 2000-08-01 Hughes Electronics Corporation Video system with selectable bit rate reduction
US6535639B1 (en) * 1999-03-12 2003-03-18 Fuji Xerox Co., Ltd. Automatic video summarization using a measure of shot importance and a frame-packing method
US6560606B1 (en) * 1999-05-04 2003-05-06 Metratech Method and apparatus for processing data with multiple processing modules and associated counters
US6675174B1 (en) * 2000-02-02 2004-01-06 International Business Machines Corp. System and method for measuring similarity between a set of known temporal media segments and a one or more temporal media streams
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7302102B2 (en) * 2001-09-26 2007-11-27 Reynolds Jodie L System and method for dynamically switching quality settings of a codec to maintain a target data rate
JP2003204482A (ja) * 2001-10-22 2003-07-18 Matsushita Electric Ind Co Ltd 放送装置
US8292811B2 (en) * 2003-03-20 2012-10-23 Siemens Medical Solutions Usa, Inc. Advanced application framework system and method for use with a diagnostic medical ultrasound streaming application
US8126318B2 (en) * 2004-08-30 2012-02-28 Panasonic Corporation Recording device, system, integrated circuit, program, and recording method
JP2009522830A (ja) * 2005-12-28 2009-06-11 ヴァントリックス コーポレーション マルチメディアセッションのためのマルチユーザリアルタイムトランスコーディングシステムおよび方法
US7796598B2 (en) 2006-04-03 2010-09-14 Cisco Technology, Inc. Synchronizing redundant video streams encapsulated in IP/UDP packets
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US8233527B2 (en) * 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
US8386630B1 (en) * 2007-09-09 2013-02-26 Arris Solutions, Inc. Video-aware P2P streaming and download with support for real-time content alteration
US20110188567A1 (en) * 2007-11-14 2011-08-04 David Frederic Blum System and method for adaptive rate shifting of video/audio streaming
US8069190B2 (en) * 2007-12-27 2011-11-29 Cloudscale, Inc. System and methodology for parallel stream processing
US8644675B2 (en) * 2008-06-06 2014-02-04 Deluxe Digital Studios, Inc. Methods and systems for use in providing playback of variable length content in a fixed length framework
US8249144B2 (en) * 2008-07-08 2012-08-21 Imagine Communications Ltd. Distributed transcoding
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
CN103069823A (zh) * 2010-04-14 2013-04-24 斯文·里思米勒 与媒体广播的平台无关的交互性
GB2498992B (en) * 2012-02-02 2015-08-26 Canon Kk Method and system for transmitting video frame data to reduce slice error rate
US8325821B1 (en) * 2012-02-08 2012-12-04 Vyumix, Inc. Video transcoder stream multiplexing systems and methods
US9716856B2 (en) * 2012-03-07 2017-07-25 Echostar Technologies L.L.C. Adaptive bit rate transcode and caching for off air television programming delivery
US8838826B2 (en) * 2012-04-04 2014-09-16 Google Inc. Scalable robust live streaming system
US9246741B2 (en) * 2012-04-11 2016-01-26 Google Inc. Scalable, live transcoding with support for adaptive streaming and failover
US9054911B1 (en) * 2012-04-16 2015-06-09 Google Inc. Multicast group ingestion
US8813245B1 (en) * 2013-01-25 2014-08-19 Amazon Technologies, Inc. Securing content using pipelines
US9294530B2 (en) * 2013-05-24 2016-03-22 Cisco Technology, Inc. Producing equivalent content across encapsulators in a network environment
US10013431B2 (en) * 2015-04-29 2018-07-03 Box, Inc. Secure cloud-based shared content
US10078559B2 (en) * 2016-05-27 2018-09-18 Raytheon Company System and method for input data fault recovery in a massively parallel real time computing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073550A1 (en) * 2002-10-11 2004-04-15 Orna Meirovitz String matching using data bit masks
WO2009020552A1 (en) * 2007-08-06 2009-02-12 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US20110087794A1 (en) * 2009-10-08 2011-04-14 Futurewei Technologies, Inc. System and Method to Support Different Ingest and Delivery Schemes for a Content Delivery Network

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604992A (zh) * 2016-05-26 2018-09-28 华为技术有限公司 使用主机内核资源的轻量级虚拟机之间的软件定义开关的系统和方法
CN109640109A (zh) * 2018-12-14 2019-04-16 网宿科技股份有限公司 一种直播视频流转码异常复现的方法及装置
CN109640109B (zh) * 2018-12-14 2021-02-26 网宿科技股份有限公司 一种直播视频流转码异常复现的方法及装置

Also Published As

Publication number Publication date
CN104380758B (zh) 2019-04-19
US20130272374A1 (en) 2013-10-17
US20160173663A1 (en) 2016-06-16
US9246741B2 (en) 2016-01-26
US10218826B2 (en) 2019-02-26
US9843656B2 (en) 2017-12-12
US20180069950A1 (en) 2018-03-08
WO2013155234A1 (en) 2013-10-17
EP2837203A1 (en) 2015-02-18

Similar Documents

Publication Publication Date Title
CN104380758A (zh) 具有用于自适应流送和故障转移的支持的可缩放实时代码转换
US9179183B2 (en) Transcoding media streams using subchunking
KR102051012B1 (ko) 스케일러블하고 강인한 라이브 스트리밍 시스템
US9369508B2 (en) Method for transmitting a scalable HTTP stream for natural reproduction upon the occurrence of expression-switching during HTTP streaming
EP4152730A1 (en) Method for receiving media contents in a multimedia system
CN106576182A (zh) 视频质量提升
US10085051B2 (en) Method and apparatus for converting MMTP stream to MPEG-2TS
CN107005729A (zh) 用于多媒体和文件传输的传输接口
CN102265535A (zh) 以不同编码率将多个可缩放编码视频内容流送到客户端设备的方法和装置
US10863218B2 (en) Method for synchronizing GOPS and IDR-frames on multiple encoders without communication
CN107079177B (zh) 用于媒体内容质量信息的携带的装置及存储介质
US10715880B2 (en) Method for creation and distribution of segmented video over distributed multicast-aware sparse networks with low latency
US10958988B2 (en) Methods and apparatus for media content asset changes
KR101663769B1 (ko) 실시간 부호화 되는 스케일러블 비디오를 다중 송신그룹으로 보내기 위한 소스 버퍼링을 수행하는 시스템 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant