CN107888933B - 用于处理实时视频流的段的方法和系统 - Google Patents

用于处理实时视频流的段的方法和系统 Download PDF

Info

Publication number
CN107888933B
CN107888933B CN201711143767.XA CN201711143767A CN107888933B CN 107888933 B CN107888933 B CN 107888933B CN 201711143767 A CN201711143767 A CN 201711143767A CN 107888933 B CN107888933 B CN 107888933B
Authority
CN
China
Prior art keywords
real
services
processing
time video
service
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
CN201711143767.XA
Other languages
English (en)
Other versions
CN107888933A (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 CN107888933A publication Critical patent/CN107888933A/zh
Application granted granted Critical
Publication of CN107888933B publication Critical patent/CN107888933B/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及实时流送视频处理。提供了用于处理实时视频流的系统和方法。摄取部件与用以处理实时视频流的请求相关联地接收实时视频流的段。控制部件基于预定标准生成用于实时视频流的指令图。该指令图定义用于处理实时视频流的工作流程,该工作流程包括用于处理段的一组服务。代码转换部件采用服务的子集来至少部分地基于指令图处理段且分发部件然后响应于完成段的处理而将段流送至设备。利用实时视频处理系统,随着视频流的段被接收而对其进行处理和分发。因此,在处理整个视频流之前处理并分发视频流的段。

Description

用于处理实时视频流的段的方法和系统
分案说明
本申请属于申请日为2013年4月12日的中国发明专利申请No.201380030581.7的分案申请。
相关申请的交叉引用
本申请要求于2012年4月12日提交的题为“LIVE STREAMING VIDEO PROCESSING”的美国专利申请序号13/445,620的权益。其全部内容被通过引用结合到本文中。
技术领域
本公开涉及用于实况广播的实时视频流的处理。
背景技术
先前,已使用构建于专用硬件平台的设备和基本上专用网络、在硬件层级采用大量的特定于视频的设计元素来实现实时视频广播。此类实况广播系统非常适合于大规模计算基础设施部署(“云计算”)。此外,此类实时处理系统受到在共享计算基础设施中造成的性能和可靠性挑战的压力。
发明内容
下面提出了本公开的简化概要以便提供本公开的某些方面的基本理解。此概要并不是本公开的广泛概述。既不意图识别本公开的关键或必需元素,也不意图描述本公开的特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化形式提出本公开的某些概念作为稍后提出的更详细描述的前奏。
根据一个或多个实施例和相应公开,结合处理用于实况广播的流的实时视频来描述各种非限制性方面。
根据非限制性实施例,提供了一种系统,包括与对处理实时视频流的请求相关联地摄取实时视频流的段的摄取部件。控制部件基于预定标准进一步生成用于实时视频流的指令图。该指令图定义用于实时地处理实时视频流的工作流程,其中,该工作流程包括用于处理段的一组服务。另外,该系统包括采用该组服务至少部分地基于指令图来实时地处理段的代码转换部件、将已处理的段实时地流送至客户端以用于实时视频流的实况广播的分发部件。在一方面,摄取部件在序列中接收段,代码转换部件按照该序列的顺序完成段中的相应一些的过程,并且分发部件响应于完成段的处理而将该段流送。
在另一非限制性实施例中,提供了一种方法,包括与用于处理实时视频流的请求相关联地接收实时视频广播的实时视频流的段和基于预定标准生成用于实时视频流的指令图。该指令图定义用于实时地处理实时视频流的工作流程,该工作流程包括用于处理段的一组服务。该方法还包括执行这些服务的子集以至少部分地基于指令图实时地处理各段,包括:使用第一服务来完成处理第一段,将第一段流送至第二服务,并用第一服务来处理实时视频流的第二段。在一方面,该方法还包括响应于段的处理将段流送至设备,其中,接收段、处理段以及将段流送是基本上同时地执行的。
在另一非限制性实施例中,提供了一种计算机可读存储介质,包括计算机可读指令,其响应于执行而促使计算系统执行操作,包括与用于处理实时视频流的请求相关联地接收实时视频流的实时视频流的段和基于预定标准生成用于实时视频流的指令图。该指令图定义用于实时地处理实时视频流的工作流程,该工作流程包括用于处理段的一组服务。该操作还包括至少部分地基于指令图用这些服务的子集来处理段。另外,该操作可包括响应于与该子集中的任何一个服务相关联的处理故障而用这些服务的该子集来重新处理实时视频流的段。该操作还包括将已处理的段实时地流送至客户端以用于实时视频流的实况广播。
附图说明
图1图示出根据本文所述的各个方面和实施方式的促进用于实时视频广播的实时视频流的处理的示例性非限制性实时视频处理系统。
图2图示出根据本文所述的各个方面和实施方式的由实时视频处理系统实现的实时视频流的示例性处理流程的非限制性图形描述。
图3图示出描述根据本文所述的各个方面和实施方式的实时视频处理系统的处理流程的非限制性流程图的示例。
图4图示出根据本文所述的各个方面和实施方式的根据实施例的包括服务管线的数据工作流程的非限制性图的示例。
图5图示出根据本文所述的各个方面和实施方式的定义用于处理实时视频流的工作流程的非限制性指令图的示例。
图6图示出根据本文所述的各个方面和实施方式的促进用于实时视频广播的实时视频流的处理的另一示例性非限制性实时视频处理系统。
图7图示出根据本文所述的各个方面和实施方式的实时视频处理的高级流程图的非限制性实施例。
图8图示出根据本文所述的各个方面和实施方式的用于处理实时视频流的示例性方法。
图9图示出根据本文所述的各个方面和实施方式的用于处理实时视频流的另一示例性方法。
图10是表示根据本文所述的各个方面和实施方式的其中能够实现各个实施例的示例性非限制性网络环境的框图。
图11是表示根据本文所述的各个方面和实施方式的其中可实现各个实施例的示例性非限制性计算系统或操作环境的框图。
具体实施方式
概述
现在参考附图来描述本创新,其中通篇中使用相同的附图标记来指代相同的元件。在以下描述中,出于说明的目的,阐述了许多特定细节以便提供对本创新的透彻理解。然而,可显而易见的是可在没有这些特定细节的情况下实施本创新。在其他情况下,以框图形式示出了众所周知的结构和部件以便促进描述本创新。
以介绍的方式,本文公开的主题涉及用于实况广播的实时视频流的处理。提供了被设计成向全球所有观众递送实时视频的实时视频代码转换系统和方法。具体地,本文提供的实时代码转换系统和方法派发许多格式和许多位速率下的许多分辨率的实时内容,因此其能够经由任何介质(WiFi、3G、4G等)被所有用户设备(诸如平板电脑、电话、电视和笔记本)消费。主题实时处理系统和方法从单个实时输入流实时地产生多个输出流。
提供了促进视频流的实时处理的适合于使用因特网内容分发网络(CDN)的实况广播的分布式实时视频处理系统。该系统被设计成在通用计算服务器和网络上操作,其跨越广泛的应用被广泛地优化,与被紧密地优化成窄且特定的一组应用相反。在价格对比性能的这些优化适合于大规模计算基础设施部署(“云计算”)。主题实时处理系统和方法采用多个机制来克服在共享计算基础设施中引起的性能和可靠性调整,以换取受益于在与所谓的部署弹性或灵活性有关的硬件成本、操作成本和机会成本方面由此类环境提供的许多规模经济。
示例性实时流送视频处理
现在参考附图,最初参考图1,促进用于实时视频广播的实时视频流的处理的实时视频处理系统100。在本公开中解释的系统、设备和过程的各方面可以组成在一个或多个机器内体现、例如在与一个或多个机器相关联的一个或多个计算机可读介质中体现的机器可执行部件。此类部件在由一个或多个机器、例如一个或多个计算机、一个或多个计算设备、一个或多个虚拟机等执行时可以促使一个或多个机器执行所述操作。系统100可以包括用于存储计算机可执行部件和指令的存储器116。处理器114可以促进由系统100进行的计算机可执行部件和指令的操作。
在一个实施例中,系统100包括视频处理平台122,其包括摄取部件104、控制部件106、代码转换部件108、服务110以及分发部件112。摄取部件104与用于处理实时视频流的请求相关联地接收实时视频流的段。例如,摄取部件104可以从源102、诸如实时视频广播网接各段和相关联的请求。在另一示例中,摄取部件104可以与由客户端120对实时视频流的请求相关联地从源102接收段。控制部件106基于预定标准生成用于实时视频流的指令图。该指令图定义用于处理实时视频流的工作流程且包括用于处理段的一组服务。然后,在控制部件106的指引下,代码转换部件108采用服务的子集以至少部分地基于指令图来处理段。在结束段的处理时,分发部件然后将段流送到客户端设备120。在一方面,处理系统经由一个或多个内容分发网络(CDN)118将段流送到客户端设备120。
系统100(和本文公开的附加系统)被配置成处理实时视频。在实施例中,视频处理平台122使用流送媒体协议通过网络来接收视频和分发视频。例如,系统100可以采用基于HTTP的媒体流送通信协议,其通过将整体流分离成一系列的小的基于HTTP的文件下载而工作,每个下载都加载整体潜在无界传输流的一个短块。例如,系统100可以采用HTTP实时流送(HLS)来接收和/或分发实时视频。在另一示例中,系统100可以采用平滑流送或HTTP动态流送来接收和分发视频。此外,视频处理平台122可使用闪速视频(FLV)流送来接收和分发实时视频。当实时视频经由系统100(和本文所述的附加系统)被流送至客户端时,实时视频被配置成在客户端设备处实时地或基本上实时地播放。在一方面,由用户经由具有关联播放器(例如,flash播放器)的网页上的浏览器来播放并观看实时视频。在另一方面,实时视频可以采取被直接编码到网页中的HLS格式。
在特定实施例中用于对视频进行流送的附加示例性协议可以包括但不限于用户数据报协议(UDP)、实时流送协议(RTSP)、实时传输协议(RTP)、实时传输控制协议(RTCP)以及传输控制协议(TCP)。对视频的引用可涵盖视频流或视频段且反之亦然(在适当的情况下)。在特定实施例中,对视频流的引用涵盖用于传送视频的任何适当格式,其使得能够针对实时视频广播单独地处理视频的单独部分。
系统100可以采用被配置成支持实时视频处理和流送的任何适当网络。在一方面,该网络可以包括因特网、内部网、蜂窝式服务网络、虚拟专用网(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、城域网(MAN)、因特网的一部分或两个或更多此类网络的组合。本公开预期用于接收、处理和分发实时视频流的任何适当网络。
视频处理平台122最初在接收到用以处理实时视频的请求时开始实时视频的处理。该请求可以包括在摄取部件104处从源102接收实时视频流。源102可以包括任何实时视频提供商。例如,源102可以包括商业广播电视网或流送实时视频的小型实体广播公司。视频处理平台122在摄取部件104处接收实时视频流。在一方面,摄取部件104接收对原始实时视频流的流请求并将该实时流输出到代码转换部件108以用于实时代码转换。在一方面,服务通过根据不同的工作流程使得实时视频段的一个或多个副本用于一个或多个副本的同时代码转换而将代码转换初始化。
处理平台122被配置成支持视频的实时流送,包括各种格式的实时视频和音频的接收、发送以及存储。具体地,摄取部件104可以在支持实时视频广播的各种多媒体容器文件中接收实时视频。例如,在一方面,摄取部件104将实时视频流接收为MPEG-2传输流(M2TS)。在另一示例中,摄取部件104可以接收被格式化为以下中的任何一个或多个的实时视频流,(flash视频)FLV文件、F4V文件、MPEG-4文件、MPEG-4部分12文件、Ogg文件、高级视频编码(AVC)文件、H264文件、H264/MPEG-4AVC文件、高级音频编码(AAC)文件或真实媒体(RM)文件。应认识到的是以上格式仅仅是出于示例性目的而提供的且处理平台可以采用支持实时视频流的接收、发送以及存储的附加编码格式。
在一个实施例中,为了处理实时视频流,处理平台122将实时视频流划分成视频的块或段。进而,使块或段通过与代码转换部件108相关联的处理管线。已处理的视频块或段然后被提供给CDN 118以便流送到客户端设备120。在一方面,由处理平台122以分段或块来接收实时视频流。在另一方面,处理平台122在实时视频流的处理期间执行实时视频流的分段或分块。本文所使用的术语分段或分块指的是将实时视频流组织成分立的段或块的过程。
在本文中可互换地使用术语视频块和视频段。视频块或段指的是视频流的一部分。在一方面,各块或段包括视频的一个或多个帧。视频的块或段可以包括任何适当的数据量以促进实时视频流的实时或近实时处理。在一方面,处理平台122将实时视频流划分成促进已处理的视频块的HLS分发的尺寸的块。例如,处理平台可将实时视频流划分成包括适合于HLS分发的第一数据量的块。进而已处理的块可以具有准备好用于HLS分发的尺寸。在另一方面,处理平台122可将实时视频流划分成包括未设计成用于最佳HLS的第一数据量的块。进而可以在发布之前的处理步骤或任务处将块重新组织成适合于HLS的段。
图2呈现了由系统100(本文所述的附加系统)进行的实时视频流的示例性处理流程的图形描述200。用本文公开的实时视频处理系统,随着实时视频流的段被接收而对其进行处理和分发。因此,在由系统处理整个视频流之前处理并分发视频流的段。主题实时代码转换/处理系统将视频划分成块以确保用于目标代码转换视频的固定延迟。与实时代码转换相关联的关键瓶颈是视频的实际代码转换,其在期望的质量足够高时可以比实时的慢。视频的分块促进使代码转换时间最小化以达到实时或近实时处理目标。
如在图2中看到的,以多个块(或段)来处理视频流。随着块被记录并提供给处理平台122而对其进行处理。在一方面,各种块的处理时间和准备时间可以是不同的。例如,将块2和3的处理描述为大于/长于块1。在一方面,处理时间可以直接地与块的准备时间相关。此外,块的处理时间可以与块的尺寸(以字节为单位)相关。例如,在一方面,同一视频流的块可以是不同尺寸或相同尺寸的。线202表示输入时间矢量且线204表示显示时间矢量。距离206表示处理的发起与显示时间之间的延迟。假设某个固定延迟,在记录了在该点处视频被作为输入提供给实时视频处理系统100的视频之后,随着接收到足够的数据,系统100可以生成视频的块以开始处理。在一方面,图形描述200中的显示时间204对应于块的最坏情况处理时间加某些附加时间损失以考虑系统100中的不确定性、合并/混合开销及其他延迟。
返回参考图1,处理系统100(和在本公开中所述的附加系统)将实时视频提供给客户端设备120和/或最终观看者。具体地,处理系统100被配置成基本上同时地将实时视频分发给全世界的多个观看者。客户端设备可以包括与用户相关联的任何适当计算设备并被配置成与媒体内容相交互或接收该媒体内容。例如,客户端设备120可以包括台式计算机、膝上型计算机、智能电话、平板个人计算机(PC)或PDA。在本公开中所使用的术语“消费者”、“用户”或“观看者”指的是经由客户端设备采用处理系统100(或在本公开中描述的附加系统)的人、实体、系统或其组合。
在一方面,客户端设备120可以发起对实时视频广播的请求。例如,客户端可在实时视频广播的记录和处理中的任何点处请求观看实时视频广播。摄取部件104被配置成接收此类请求,使得用实时视频广播以适当格式化方式到客户端设备120的流送来答复该请求以便在客户端设备处观看实时视频广播。在一方面,处理平台经由分发部件112直接地将已处理的实时视频分发到客户端。在另一方面,处理平台122采用一个或多个CDN 118来促进代码转换视频流到客户端的流送。处理平台122和/或CDN 118可以采用任何适当的网络以便分发已处理的视频流。例如,处理平台122和/或CDN可以采用因特网、内部网或蜂窝服务以将实时视频分发到客户端。
在实施例中,控制部件106控制整个实时处理系统100的流程,从摄取、到编码以及分发。控制部件106被配置成监督对处理与请求相关联的实时视频广播的请求的服务。在一方面,控制部件106可以接收用以处理实时视频的请求。进而,控制部件106可以控制摄取部件102处的与请求相关联的实时视频流的摄取。在一方面,对实时视频的请求可以包括视频标识符(VID)。VID可以是识别所请求的视频的随机数。本公开预期任何适当的命名方案。在一方面,用于实时视频流的VID是自由形式的。另外,该请求可包括用于处理视频的一个或多个指令。在一方面,控制部件106可根据VID、一个或多个指令或两者的组合来确定将对视频应用什么处理。该请求不需要应用整个指令集以便处理该视频。具体地,控制部件106可根据请求中的VID、请求中的指令或两者的组合来确定整个指令集。
在实施例中,当控制部件106接收到对处理实时视频的请求时,控制部件106可以生成和/或检索用于该视频的指令图。本文所述的指令图定义用于处理视频的工作流程。在一方面,预先确定并在存储器116或控制部件106可访问的替选存储部件(未示出)中存储用于视频的指令图。例如,请求可包括控制部件106可用来确定用于视频的指令图的视频的VID。控制部件106可以采用视频的VID来确定分配给存储中的VID或与之相关联的指令图。例如,可在存储器1116或其他存储中提供多个不同指令图且其描述用于处理具有一个或多个特定性质的视频的不同工作流程。作为示例而并非以限制的方式,第一指令图可描述用于针对第一客户端处理来自第一源的视频的第一工作流程,第二指令图可描述用于针对第二客户端处理来自第一源的视频的第二工作流程,并且第三指令图可描述用于针对第三客户端处理来自第三源的视频的第三工作流程。控制部件106可基于视频的VID将用于处理的视频映射到第一、第二或第三指令图,其可识别请求视频处理的客户端和从其接收到该视频的源。
在另一方面,控制部件106可基于与处理请求相关联的一个或多个标准来生成或确定指令图。例如,该标准可以考虑多种因素,包括但不限于提供视频的源、VID、视频的分类、与请求相关联的客户端、网络业务、源位置、客户端位置、日时间或当前网络操作参数或当前处理平台操作参数及可用资源和服务。根据此方面,控制部件106可以确定相对于对处理视频的当前请求而确定以上各种因素并应用使上述因素中的一个或多个与指令图相关的一个或多个算法。在实施例中,控制部件106可以从存储器或存储中的预定义或预先形成的指令图中确定适当的指令图。替选地,控制部件106可基于与以上因素有关的确定来生成或创建用于要处理的视频的已修整指令图。
在另一方面,控制部件106可以采用智能部件(未示出)以基于以上一个或多个因素之间的推断或观察关系来生成用于所请求的实时视频处理实例的指令图。智能部件还可以采用与当前事件有关的外来信息和与有影响的外部系统有关的外在信息来生成指令图。智能部件可以执行推断以识别特定上下文或动作或例如生成在各状态上的概率分布。该推断可以是概率性的—亦即,基于数据和事件的考虑的在感兴趣的状态上的概率分布的计算。推断还可以指的是被用于从一组事件或数据组成较高层级事件的技术。此类推断可以导致从一组观察的事件或存储的事件数据进行的新事件或动作的构造,无论事件是否以紧密的时间接近性相关以及无论事件和数据是否来自一个或多个事件和数据源。可以结合与要求保护的主题相结合地执行自动或推断动作而采用各种分类(明示地或隐含地训练)方案或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信念网络、模糊逻辑、数据合成引擎等)。
分类器可以将输入属性矢量x=(x1,x2,x3,x4,xn)映射到输入属于一类的置信度,诸如用f(x)=置信度(类)。此类分类可以采用基于概率或统计的分析(例如,分解成分析实用性和成本)来预测或推断用户期望被自动地执行的动作。支持向量机(SVM)是可以采用的分类器的示例。SVM通过在可能输入空间中找到超表面而进行操作,其中,该超表面尝试将触发标准与非触发事件分离。直观地,这使得该分类对于测试接近于训练数据但并不与之相同的数据而言是正确的。其他有向和无向模型分类法包括例如朴素贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型,并且可以采用提供给不同模式的独立性的概率分类模型。如在本公开中使用的分类还包括被用来开发优先级模型的统计回归。
为了执行实时视频流的处理,处理平台122采用多个服务。服务110包括用于处理视频的多个服务。包括在服务110中的服务执行在指令图中定义的特定处理任务。用于由指令图定义的视频处理的工作流程包括用以处理视频的一组服务。在一方面,该工作流程进一步将该组服务分离成服务的一个或多个子集。每个子集可以以不同的方式专用于处理视频的副本。例如,服务的每个子集可以处理采取不同格式、分辨率、编码和/或具有不同显示要求的实时视频流。
因此基于由控制部件106针对要处理的视频确定或生成的指令图,控制部件106识别将处理视频的一组服务。控制部件106还可以确定各服务将应用于其各自的视频处理的参数值以及服务将处理视频的顺序。控制部件106然后可调用该组中的服务以处理该视频。对服务的引用可涵盖服务的实例且反之亦然(在适当的情况下)。同样地,对任务的引用可涵盖服务的实例且反之亦然(在适当的情况下)。
在实施例中,一旦控制部件106生成或确定用于处理实时视频流的指令图,则控制部件106可以找到该组服务以在共享基础设施内执行处理图的任务。共享基础设施可以包括多个服务,每个被构造成执行由指令图定义的任务中的一个或多个。根据本实施例,系统100(和本文所述的附加系统)被配置成在共享计算基础设施中操作。可以在共享计算基础设施中的一个或多个处理器/机器处执行服务。处理器例如可以在功能上或在地理上分布在云计算环境中。在一方面,控制部件106可以从多个可用服务中选择用于特定指令图的服务组,使得在不同的处理器中采用该组中的每个服务。同样地,控制部件106可以在共享计算基础设施中分配不同的处理器以执行由指令图定义的不同服务。一旦控制部件已在共享基础设施中选择和/或分配服务,则控制部件106可以根据指令图在这些服务之间建立连接。响应于在服务之间建立的连接,控制部件可以触发其之间的数据流程。
在一方面,控制部件106在共享计算基础设施中从可用服务中选择/找到由指令图定义的服务组。可用服务可以指的是服务或与那些服务相关联的处理器,其并未忙于在共享计算基础设施中执行其他任务或作业。例如,可用服务可以包括服务或相关联的处理器,其不在执行任何任务。在另一示例中,可用服务可以包括相对于共享计算基础设施中的其他服务/处理器而言执行较少任务的服务或相关联的处理器。在另一实施例中,控制部件106可确定在共享计算基础设施中不可用来执行指令图的任务的服务或处理器。根据此方面,控制部件106被构造成调度服务,使得由下一可用服务或下一个可用处理器执行指令图任务。此外,控制部件106还被配置成对与分布式计算基础设施中的实时视频处理系统100相关联的服务给以优先级。例如,如果共享计算基础设施中的处理器核正被用于与实时视频处理无关的作业,则控制部件106可促使处理器将作业暂缓以替代地执行实时视频处理服务。
代码转换部件108被配置成执行服务的执行以处理实时视频流。在实施例中,控制部件106被配置成基于针对视频确定或生成的指令图来控制实时视频的编码。具体地,在一方面,控制部件106可以指引代码转换部件调用服务并确保根据由控制部件106确定和/或生成的指令图来执行服务。在一方面,视频处理平台122可以响应于实时视频流的一部分的摄取而开始实时视频流的处理。例如,如上文所讨论的,一旦摄取了适当的数据量,则视频处理平台122可以生成实时视频流的段或块以开始其处理。
此外,在实施例中,响应于对处理视频的请求而在控制部件106的指引下执行实时视频流的摄取。在一方面,摄取和请求可基本上同时地发生。在另一方面,处理平台可随着摄取和处理已开始而接收对实时视频流的请求。换言之,在另一方面,摄取(经由摄取部件104)和请求可在不同的时间发生。
如本文所使用的实时视频流的处理包括实时视频流的代码转换或编码。利用主题实时代码转换,代码转换部件108采用在用于要编码的视频的指令图中定义的服务随着实时视频流被处理平台接收或生成而对其每个段或块进行编码。具体地,在一方面,摄取部件104随着实时视频流的部分或实时视频流的段被与源102相关联地记录而将其在序列中接收。代码转换部件108还被配置成按照序列的顺序来完成段中的相应一些的处理,并且分发部件112被配置成响应于完成段的处理而将段流送。因此,代码转换部件108完成处理实时视频流的段且分发部件在实时视频流的所有段的接收和/或处理之前分发已处理段。
指令图中的服务组定义用于处理实时视频流的工作流程并形成由一个或多个服务组成的一个或多个管线。管线可以包括任何数目的N个服务,其中,N是整数。指令图将服务排序,使得实时视频流的每个段从上游服务传递至下游服务直至所有服务已处理实时视频段为止。管线由图中的服务的子集组成且被配置成根据特定格式(例如,显示格式、分辨率、传输格式、位速率、编码格式等)来处理实时视频流。在一方面,指令图可以定义多个管线,每个与服务的子集相关联。相应地,处理平台可以跨不同的管线同时地(或基本上同时地)处理实时视频流的副本,使得可以在多种不同的客户端设备处以多种格式对结果得到的实时视频流进行消费。
在实施例中,第一服务被配置成生成实时视频流的副本。在另一方面,第一或第二服务被配置成执行实时视频流的分块。在一方面,基于指令图,代码转换部件108在第一服务处处理实时视频流的第一段至完成。一旦第一服务完成第一段的处理,则代码转换部件108可以将第一段流送至第二服务以用于处理。另外,一旦第一服务完成处理第一段,则代码转换部件108将第二段流送至第一服务以用于处理等等。
根据本实施例,指令图中的每个服务每次处理一个逻辑图任务。因此,在一方面,控制部件106(和/或在控制部件106的指引下的代码转换部件)可以调度服务,使得一组中的服务每次仅处理一个逻辑指令图任务。换言之,控制部件106仅调度特定指令图的一个服务任务以在给定时间由服务执行。此外,如上文所讨论的,控制部件106可以分配调度服务,使得在物理上不同的处理核心处执行每个服务。结果,可以基本上隔离服务的故障和/或不可用性的影响。例如,服务的故障和/或不可用性可以直接地影响仅单个段且可能间接地影响在受影响段之后通过管线而来的几个段。
在另一实施例中,控制部件106可以调度服务,使得单个段每次流过服务的子集(例如,管线)。例如,在处理管线由N个服务组成的情况下,控制部件106可以调度服务,使得实时视频流的单个段在N个服务中的任何一个处的另一段的处理之前被N个服务中的每一个处理。根据本方面,可以进一步隔离N个服务中的任何一个处的处理故障的影响。
在另一实施例中,基于指令图,代码转换部件108在其接收到视频段时指引第一服务处理实时视频段。第一服务可以进一步处理视频段的一部分。当第一服务已在工作流程中处理了足以用于工作流程中的第二服务开始处理第一视频段的第一视频段时,第一服务可通知控制部件106。响应于该通知,控制部件106可调用第二服务以处理第一视频段。在一方面,调用第二服务可促使第二服务具体地针对该视频生成本身的实例。
当控制部件106调用第二服务时,控制部件106可指定用于第二服务应用于其视频段的处理的一个或多个参数值。另外,控制部件106可指定第二服务可从哪里获得第一视频段。在其中第二服务在工作流程中直接地在第一服务下游的方面,第二服务可从第一服务获得第一视频段。代码转换部件108可指引第二服务请求第一服务开始将第一视频段流送至第二服务,并且作为响应,第一服务可开始将第一视频段流送到第二服务。因此,代码转换部件108可以随着第一服务完成第一视频段的那些部分的处理而指引第一服务将第一视频段的部分传送至第二服务。在一方面,第一服务不需要在将第一视频流送至第二服务以便由第二服务处理之前完全地完成处理第一视频段。
当第二服务已处理了足以用于工作流程中的第三服务开始处理视频的第一视频段时,第二服务可通知控制部件106。响应于该通知,控制部件106可调用第三服务以处理第一视频段。调用第三服务可促使第三服务具体地针对该视频生成本身的实例。当控制部件106调用第三服务时,控制器可指定用于第三服务应用于其第一视频段处理的一个或多个参数值。另外,控制部件可指定第三服务可从哪里获得第一视频段。在第三服务在工作流程中直接地在第二服务下游的情况下,第三服务可从第二服务获得第一视频段。
第三服务可请求第二服务开始将第一视频段流送至第三服务,并且作为响应,第二服务可开始将第一视频段流送至第三服务,随着第二服务完成其对第一视频段的部分的处理而将第一视频段的那些部分流送至第三服务。第二服务不需要在将第一视频段流送至第三服务以便由第三服务处理之前完全地完成处理第一视频段。此外,第一服务不需要在第二服务开始将第一视频段流送至第三服务以便由第三服务处理之前完全地完成处理第一视频段。控制部件106基于指令图而调用服务且服务在其已处理了足以用于下游处理的视频时通知控制部件的此过程可持续至该工作流程完成为止。在一方面,随着第一视频段的处理完成,处理平台122可将已处理的各种形式的第一视频段存储在存储器或替选的存储中。
在特定实施例中,如果第一服务在管线中的第二服务之后,则工作流程或管线中的第一服务在管线中的第二服务的下游。如果服务直接地在管线中的另一服务之后,则服务直接在管线中的该另一服务的下游。在特定实施例中,如果服务在管线中的另一服务之前,则管线中的服务在管线中的该另一服务的上游。如果服务直接地在管线中的另一服务之前,则服务直接在管线中的该另一服务的上游。
一旦视频段已经被定义用于视频的工作流程的服务子集中的N个服务中的每一个处理,则已处理的视频段被分发给客户端。在一方面,可以将工作流程或管线的最后服务配置成执行通过的段的分发。在另一方面,分发部件112分发实时视频流的已处理段。在实施例中,分发部件112被配置成将实时视频段流送至客户端。在另一实施例中,分发部件112可附有CDN 118。根据本实施例,分发部件112可以采用CDN 118来促进实时视频流到一个或多个客户端的分发。在一方面,分发部件利用HLS来分发视频的实时已处理段。
利用系统100(和本文所述的附加系统),摄取部件104接收实时视频的段,代码转换部件108处理段,并且分发部件112基本上同时地流送段,因此使得能够实现实时视频的实时或近实时处理。具体地,在一方面,代码转换部件108采用服务110的子集来处理第一段和第二段且分发部件112在第二段的处理完成之前将第一段流送至客户端设备。同样地,在一方面,分发部件112可以在由第二服务处理实时视频流的第二段之前将实时视频流的第一已处理段流送至设备。
处理平台122被设计成在共享计算基础设施中在跨广泛的应用阵列被广泛地优化的通用服务器和网络上操作,与被针对狭窄且特定的一组应用而被紧密地优化相反。处理平台122可以采用多个机制来克服在共享计算基础设施中引起的性能和可靠性挑战,以换取受益于在与部署弹性或灵活性有关的硬件成本、操作成本和机会成本方面由此类环境提供的许多规模经济。系统100可以以可变的质量且在可变尺寸的时间处理任何数目N个实时视频。
在一方面,系统100被配置成每次处理比非实时视频处理系统数目更少的视频以便确保相对于实时视频处理的所期望的可靠性水平。在一方面,系统100处理与和非实时视频处理系统相比相对较长持续时间的事件相对应的实时视频。例如,实时视频可对应于几小时持续时间的事件。然而,处理平台还可以处理对应于具有较短持续时间的事件的实时视频,诸如几分钟持续时间的事件。此外,在一方面,系统100以比非实时视频处理系统更高的质量(例如1080p)来处理视频。
在资源管理水平,处理平台可以应用多个机制来增强共享计算基础设施中的服务执行的可预测性。一个机制包括使逻辑服务局限于物理计算任务映射。此机制离开将指令图的逻辑服务组件复用到单独物理作业任务上。换言之,此机制提供单个时隙体系,使得作业调度约束确保单个物理任务每次将仅处理一个逻辑图任务。
视频处理平台122的部件可根据任何适当的布置跨此类服务器或其他计算机系统分布。根据特定需要,每个服务器可以是单式服务器或跨越多个计算机系统或多个数据中心的分布式服务器。在实施例中,处理平台122可以施加约束以确保分配给实时视频处理任务的物理核心被预留以排除存在于共享基础设施中的其他作业。具体地,摄取部件104、控制部件106、代码转换部件108以及分发部件112在共享处理基础设施中操作。可以将处理平台122设计成使得共享处理基础设施的物理处理核心在排除存在于共享处理基础设施中的其他作业的情况下执行摄取、代码转换以及分发的任务。例如,可以将代码转换部件的物理处理核心(诸如与各服务相关联的那些)配置或调度(由控制部件)成在执行共享基础设施中的其他作业(不与实时视频处理相关联)之前执行用于指令图的处理任务。这在更加确定性的执行与相对较低的总资源利用率之间进行权衡且适合于实况广播背景。
现在参考图3,提出了描述根据实施例的实时视频处理系统的处理流程的示例性非限制性流程图。实时视频流的处理可以从用以处理实时视频流的请求开始。在一方面,请求可以源自于源102向处理平台122提供实时视频流。源102提供实时视频流且处理平台执行该实时视频流的实时摄取304。例如,摄取部件104可以随着视频的段被接收到而将其摄取。一旦实时视频流被摄取,则视频处理平台执行实时代码转换308。在一方面,实时代码转换308可以随着视频段被接收到而涉及到其处理。在另一方面,实时代码转换308可以随着实时视频流被接收到而从其生成视频的段且处理生成的段。实时代码转换308包括通过服务的管线312来处理实时视频段。服务的管线312可以包括任何数目N个服务。一旦在第N服务处处理视频段,则视频处理平台122执行已处理的视频段的实时分发310。例如,实时分发部件310可以采用HLS来将已处理的实时视频段分发到CDN 118,其进而可以将实时视频段分发到一个或多个客户端。在一方面,控制部件106执行实时视频处理的每个方面的实时控制306,包括实时摄取304、实时代码转换308和实时分发310。
利用本文所述的主题实时视频处理系统和方法,基本上同时地执行实时摄取304、实时代码转换308和实时分发310。在一方面,在接收、编码和分发的各动作之间的小于一纳秒滞后内执行实时摄取304、实时代码转换308和实时分发310。在另一方面,在接收、执行和分发的各动作之间的小于一毫秒滞后内执行实时摄取304、实时代码转换308和实时分发310。此外,在另一方面,在接收、执行和分发的各动作之间的小于一皮秒滞后内执行实时摄取304、实时代码转换308和实时分发310。换言之,在小于一纳秒、小于一毫秒或小于一皮秒中的一个内,摄取部件可以摄取段且分发部件可以将段流送。
现在参考图4,提出了根据实施例的数据流程的示例性非限制性流程图,其包括与实时视频处理系统100的服务部件110相关联的服务402-416的管线。服务402-416中的每一个被配置成执行特定处理任务。如图4中所描述的,服务402是处理管线中的第一服务且服务416是处理管线中的最后服务。此外,服务404在服务402下游,服务406在服务404下游等等。服务402-414中的每一个被配置成处理视频并将已处理的段流送至下一个下游服务以用于处理。
在一方面,实时读取器服务402使用输入实时流VID从摄取部件104读取输入流。在另一方面,实时读取器服务402还可以接收对处理实时视频流的请求。音频/视频(A/V)解复用器服务404被配置成将输入流分离成分立的音频和视频并对该输入流进行净化。音频代码转换器服务406被配置成将音频流代码转换成目标音频格式。视频代码转换器服务408被配置成将视频流代码转换成目标视频格式。复用器服务412被配置成将音频和视频流复用或组合在一起。HLS分段器服务414从复用器获得输出的视频流并创建该视频流的一个或多个加密的HLS段形式。实时发布器服务416将HLS段输出到分发部件112。在一方面,实时发布器将分发部件元数据连同HLS段一起发送。该元数据可以提供关于HLS段的信息,诸如段的实际时间戳范围和/或用以将段解密的密钥。
在一方面,视频代码转换器408可以采用一个或多个从属视频代码转换器410以促进对实时视频流进行代码转换。从属代码转换器可以提供促进视频流的实时或近实时处理的并行代码转换方案。根据本方面,视频代码转换器408可以将视频流(或实时视频流的第一段或第一块)划分成多个块并采用一组从属代码转换器来并行地处理每个块。视频代码转换器408可以然后在复用之前将经代码转化的块组合或者复用器414可以将经代码转换的块组合。结果,可以增加视频流的代码转换速度。可以在同一处理机器上提供从属代码转换器中的一个或多个,或者可以在分立处理机器上提供每个从属代码转换器。
参考图5,提出了根据实施例的定义用于处理实时视频流的工作流程的示例性指令图500。指令图定义三个不同的管线542、546和548。应认识到的是指令图可以定义任何数目N个管线,并且仅出于示例性目的向指令图500呈现三个管线。管线542、546和548中的每一个还可以包括实时读取器504作为第一服务。在一方面,实时读取器生成接收到的实时视频流的副本以便在每个管线处处理。在另一方面,实时视频流的多个副本是实时读取器504可与视频流信息502相关联地访问的。根据本方面,可以从实时读取器向管线542、546和548中的每一个流送要处理的实时视频流的副本。
管线542、546和548中的每一个包括被配置成处理特定格式的实时视频流的服务。例如,管线542包括服务506-516,管线546包括服务518至528,并且管线548包括服务530-540。可以将各管线的每个服务配置成处理不同格式的视频流。例如,管线542的服务可以处理720P的实时视频流,管线546的服务可以处理1080P的实时视频流,并且管线548的服务可以处理高清晰度的实时视频流。应认识到的是可根据附加实施例使多种附加格式化输出与服务和管线相关联。
诸如指令图500之类的指令图可以是描述用于处理视频的工作流程的有形计算机可读指令。在一方面,指令图500可包括服务描述。每个服务描述可识别用于由指令图描述的工作流程的服务及其参数或格式值。在一方面,服务描述还可以定义服务之间的关系和依赖性。在另一方面,由服务执行的处理的参数值和或依赖性可以是该服务所固有的。结果,该服务的描述可包括少数参数。在特定实施例中,指令图500(及其描述的工作流程)的一个或多个部分可以是非线性的。非线性工作流程可包括每个具有多个依赖性的一个或多个服务。同样地,非线性工作流程可在一个或多个点处分离成可基本上相互并行地运行的两个或更多服务(例如从属代码转换器)。
现在参考图6,提出了根据实施例的实时视频处理系统600的另一示例性非限制性实施例。系统600可以包括缓冲器部件602和元数据部件604。在一方面,缓冲器部件和元数据部件是存储部件。根据本方面,(虽然未同样地描述)缓冲器部件602和/或元数据部件604可以是存储器116和/或处理平台122可访问的另一存储部件的一部分。缓冲器部件602被配置成将处理管线中的服务的输出临时地存储在一个或多个服务间缓冲器中达与该段的处理相关联的预定义时间窗。具体地,缓冲器部件602临时地存储实时视频段的实例,因为其存在于两个或更多服务之间的状态达预定义时间窗。在本文中提及的缓冲器因此被视为窗口化缓冲器。系统600的窗口化缓冲器促进响应于与适合于实时视频处理的管线中的服务相关联的处理故障而重试或重新处理机制。另外,窗口化缓冲器另外提供了无缝地加入由于分配给指令图的不同服务和相关联的处理器的不同处理速度而不同步的服务输出的手段。例如,不同服务可以略微波动的方式消耗和产生数据。窗口化缓冲器可以用于缓冲此变化。
不同于非实时视频处理系统,系统600所采用的缓冲器是基于主存储器。在非实时视频处理系统中,服务之间的输出缓冲器被用文件备份,使得下游服务可以在软故障时重试。这在实时设置下是不适当的。首先,在实时事件中,在任何故障时(例如如果事件已经历超过一小时)返回到事件的开头是无意义的,因为事件的开头已被处理并流送至客户端以用于实时观看。其次,由于实时事件是相对长的,所以大存储要求潜在地对系统约束具有负面影响。最后,基于存储器的缓冲器相对于性能而言比文件更加可预测,因为共享辅助存储的性能一般地具有高得多的变化性(较低隔离)。保证的性能在处理实时视频时促进保持基本上实时的进展。
实时视频处理系统600在服务之间采用窗口化缓冲器模型。窗口化模型确保有限量的主存储器被服务间缓冲器使用。词语窗口指的是滑动窗口概念。具体地,利用主题服务间窗口化缓冲器,随着新的数据被写入缓冲器,较旧的数据可以被丢弃以确保不超过缓冲器的RAM容量。系统600采用窗口化缓冲器以随着在服务之间处理实时视频流的段而将其临时地存储达预定义时间窗。预定义时间窗可以是适合于实时视频处理的任何时间量。在一方面,该预定义时间窗小于5分钟。在另一方面,该预定义时间窗小于3分钟。在另一方面,该预定义窗口小于一分钟、45秒或30秒。
由于有限窗口的假设,窗口化缓冲器在处理故障的情况下实现用于服务重试的新逻辑形式,其允许服务在重试事件之后适度地中途加入正在进行的流中。例如,当在下游服务中发生处理故障时,实时视频处理系统可通过从视频流的当前点重新开始服务来重试该服务。处理故障可以包括处理中的任何错误。例如,可以使处理故障和与在该处采用服务的处理器相关联的硬件故障或诸如退出或核升级之类的操作事件相关联。
在实施例中,控制部件106响应于重试事件的发生而根据指令图来监督视频段的重试或重新处理。重试事件指的是响应于处理故障而进行的视频段的重新处理或重新运行(通过管线)。在一方面,为了促进适合于实时视频处理的高效重试,控制部件106将工作流程中的服务组中的服务的每个子集(例如管线中的每个服务)定义为重试组。根据此方面,当处理故障与重试组中的任何服务相关联时,仅重试该重试组的服务的子集。因此,在由指令图定义多个子集或管线的情况下,仅重试与故障相关联的管线。换言之,可以将一个处理格式的故障与其他的隔离。虽然某些非实时处理系统具有在图中从上游向下传播重试的支持,但本文公开的实时处理系统的重试组增加了用于某些故障向下和向上(从下游至上游)两者传播的能力。重试组的一个优点是简化。例如,用以处理重试情况的任何服务逻辑被局限于群组的“根”节点。另一优点是隔离,重试群组限制故障的影响。
例如,在一方面,代码转换部件108可以基于用于实时视频流的指令图采用服务的子集(例如管线)来处理实时视频流的多个段。实时视频流可以包括任何数目N个段,其中,N是整数。假设编码平台正在响应于与子集中的任何服务相关联的处理故障而通过服务的子集(其中,在本示例中,该第N段不一定是最后一段)每次处理任何段N,代码转换部件108可以采用服务的该子集来重新处理第N段。
在一方面,在处理故障与在该处采用子集中的服务的硬件故障相关联时,控制部件106可以指引代码转换部件108通过使用新的物理处理器采用子集中的服务中的至少一个来重新处理第N段。此外,如果代码转换部件不能在预定时间窗内重新处理实现的段,则代码转换部件108可以放弃重试过程并继续进行实时视频流的下一段。例如,代码转换部件然后可以响应于在预定时时间段内不能重新处理第N段而采用服务的子集来处理实时视频流的第M段,其中,M是大于N的整数。
元数据部件604可包括用于存储用于正在被视频处理系统600处理或将被其处理的实时视频的元数据的一个或多个数据库或其他系统。在特定实施例中,视频元数据存储仅存储对视频处理有用的视频元数据。作为示例且并非以限制的方式,视频元数据存储604可存储用于视频的视频元数据,其指示视频的源、与视频相关联的客户端、视频的位置、按字节计算的视频的大小、按时间计算的视频的长度,例如小时、分钟以及秒。另外,元数据可以包括与视频段相关联的时间戳和用于将段解密的密钥。本公开预期存储对视频处理有用的任何适当视频元数据的视频元数据存储部件604。此外,系统600的所有部件可以可访问元数据部件604中的视频元数据。
到视频元数据存储的输入和来自视频元数据存储的输出可以分别地是放入和获得。在一方面,视频元数据存储可随时间推移记录视频的处理历史。作为示例且并非以限制的方式,视频处理平台122可处理来自采取多个格式的多个源且随时间推移而用于多个客户端的多个视频。在一方面,视频元数据部件可随时间推移而记录与此类视频处理有关的信息。视频的视频处理历史可在生成用于新视频的指令图时对控制部件有用。
参考图7,提出了根据本文公开的一个或多个实施例的实时视频处理的高级流程图700的另一示例性非限制性实施例。图7描述了经由实时处理平台708的从源至CDN 118的实时视频的实时视频处理的流程。实时处理平台708包括同时地运行以用于冗余的两个自主实时管线,分别地为管线710和管线716。两个管线710和716分别对应于源自于两个不同位置702的分立视频流。具体地,管线710对应于从LGA 714(纽约)摄取的视频流且管线716对应于从LHR706(伦敦)摄取的视频流。此外,在每个位置处,摄取两个视频流,一个用于源A且一个用于源B。然后经由处理平台使这些摄取点704和706中的每一个经受实时处理。管线710包括两个辅助管线,一个用于处理用于源A 712的视频流且另一个用于处理用于源B714的视频流。同样地,管线716包括两个辅助管线,一个用于处理用于源A 718的视频流且另一个用于处理用于源B 720的视频流。在一方面,管线710-720中的每一个可以共同位于同一集群中。在一方面,将管线710或716中的一个标记为主要且将另一个标记为备份。在另一方面,将管线712或714中的一个标记为主要且将另一个标记为备份。同样地,将管线718或720中的一个标记为主要且将另一个标记为备份。在实施例中,如果关于主要管线的任何东西出现错误(例如摄取问题、编码减慢、光纤切断等),则实时分发部件/系统将自动地从主要切换至备份。
图8-10图示出根据本公开的某些方面的方法或流程图。虽然出于说明的简化的目的示出了所述方法并描述为一系列动作,但公开的主题不受动作顺序的限制,因为某些动作可按照与本文所示和所述不同的顺序和/或与其他动作同时地发生。例如,本领域的技术人员将理解并认识到的是可以替选地将方法表示为一系列互相关状态或事件,诸如在状态图中。此外,可能并非所有所示动作都是实现根据公开主题的方法所需要的。另外,应认识到的是在本公开中公开的方法能够存储在制品上以促进将此类方法传送和传输到计算机或其他计算设备。
现在参考图8,提出了根据实施例的在本描述中公开的系统的示例性应用的流程图。在一方面,示例性方法800,实时视频处理系统被存储在存储器中且利用处理器来执行计算机可执行指令以执行功能。在802处,与用于处理视频流(例如使用摄取部件104)的请求相关联地接收实时视频广播的实时视频流的段。在804处,基于预定标准(例如使用控制部件)针对实时视频流生成指令图。该指令图定义用于实时地处理实时视频流的工作流程且包括用于处理段的一组服务。然后,在806处,执行服务的子集(例如管线)以至少部分地基于指令图(例如使用执行部件108)来实时地处理段。服务子集的执行还可以包括以下过程:在808处,使用第一服务来完成第一段的处理,在810处,将第一段流送至第二服务,并且在812处,由第一服务(例如使用执行部件108)来处理实时视频流的第二段。
现在参考图9,提出了根据实施例的在本描述中公开的系统的示例性应用的另一流程图900。在一方面,示例性方法900,实时视频处理系统被存储在存储器中且利用处理器来执行计算机可执行指令以执行功能。在902处,与用于处理实时视频流(例如使用摄取部件104)的请求相关联地接收实时视频流的段。在904处,基于预定标准(例如使用控制部件)来针对实时视频流生成指令图。该指令图定义用于实时地处理实时视频流的工作流程且包括用于实时地处理段的一组服务。然后,在906处,至少部分地基于指令图(例如使用控制部件106和/或执行部件108)来实时地处理段。在908处,将段实时地流送至客户端以用于响应于完成段的处理的实时视频流的实况广播。
鉴于上述示例性系统,参考各种图的流程图将更好地认识到根据所述主题可实现的方法。虽然出于说明简化的目的示出了所述方法并描述为一系列方框,但应理解和认识到的是要求保护的主题不受方框的顺序的限制,因为某些方框可按照与在本文公开中所描绘和描述的不同的顺序和/或与其他方框同时地发生。在经由流程图来图示非顺序或有分支流程的情况下,可以认识到可实现各种其他分支、流程路径以及方框顺序,其实现相同或类似的结果。此外,可能并非所有所示方框都是实现根据下文所述的方法所需要的。
除在本公开中所述的各种实施例之外,应理解的是在不与之偏离的情况下可以使用其他类似实施例且可对一个或多个所述实施例进行修改或添加以便执行一个或多个相应实施例的相同或等价功能。此外,多个处理芯片或多个设备可共享在本公开中描述的一个或多个功能的执行,并且同样地,可以跨多个设备实现存储。相应地,本发明不限于任何单个实施例,相反地可以在宽度、精神和范围方面根据所附权利要求来理解。
示例性操作环境
下面所述的系统和过程可以用硬件来体现,诸如单个集成电路(IC)芯片、多个IC、专用集成电路(ASIC)等。此外,不应将某些或所有过程在每个过程中的出现视为是限制性的。相反地,应理解的是可以按照多种顺序来执行某些过程方框,在本公开中并未明确地举例说明其中的全部。
参考图10,用于实现要求保护的主题的各种方面的适当环境1000包括计算机1002。计算机1002包括处理单元1004、系统存储器1006、编解码器1005以及系统总线1008。在一方面,处理单元1004和系统存储器1006可以分别地表示处理器114和存储器116。系统总线1008将包括但不限于系统存储器1006的系统部件耦合到处理单元1004。处理单元1004可以是各种可用处理器中的任何一个。还可以采用双微处理器及其他多处理器架构作为一个或多个处理单元1004。此外,处理单元1004可以包括与多核处理机相关联的多个处理器。处理器114可以表示多核处理机的一个或多个处理器。因此,可以使与计算环境1000相关联地描述的部件与共享计算基础设施中的一个或多个多核处理器相关联。
系统总线1008可以是多个类型的总线结构中的任何一个,包括存储器总线或存储器控制器、外围总线或外部总线和/或使用任何种类的可用总线架构的本地总线,包括但不限于工业标准结构(ISA)、微通道架构(MSA)、扩展ISA(EISA)、智能驱动电子设备(IDE)、VESA本地总线(VLB)、外围部件互连(PCI)、卡总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储器卡国际协会总线(PCMCIA)、火线(IEEE 13104)以及小型计算机系统接口(SCSI)。
系统存储器1006包括易失性存储器1010和非易失性存储器1012。基本输入/输出系统(BIOS)被存储在非易失性存储器1012中,其包含用以诸如在启动期间在计算机1002内的元件之间传输信息的基本例程。另外,根据本创新,编解码器1005可包括编码器或解码器中的至少一个,其中,编码器或解码器中的至少一个可由硬件、硬件和软件的组合或软件组成。虽然将编解码器1005描述为分立部件,但可将编解码器1005包含在非易失性存储器1012内。以图示而非限制的方式,非易失性存储器1012可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)或闪速存储器。易失性存储器1010包括随机存取存储器(RAM),其充当外部高速缓冲存储器。根据当前方面,易失性存储器可存储写操作重试逻辑(图10中未示出)等。以图示而非限制的方式,RAM以许多形式可用,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDRSDRAM)和增强型SDRAM(ESDRAM)。
计算机1002还可包括可移动/不可移动、易失性/非易失性计算机存储介质。图10图示出例如盘存储1014。盘存储1014包括但不限于类似于盘驱动器、固态盘(SSD)、软盘驱动器、带驱动器、Jaz驱动器、Zip驱动器、LS-70驱动器、闪速存储卡或记忆棒之类的设备。另外,盘存储1014可以包括单独地或与其他存储介质相组合的存储介质,包括但不限于光盘驱动器,诸如压缩盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能磁盘ROM驱动器(DVD-ROM)。为了促进盘存储设备1014到系统总线1008的连接,通常使用可移动或不可移动接口,诸如接口1016。
应认识到的是图10描述了充当用户与在适当操作环境1000中描述的基本计算机资源之间的中间件的软件。此类软件包括操作系统1018。可以存储在盘存储1014上的操作系统1018用于控制和分配计算机系统1002的资源。应用1020利用由操作系统718通过程序模块1024以及存储在系统存储器1006中或盘存储1014上的启动/关闭交易表等的程序数据1026进行的资源管理。应认识到的是可用各种操作系统或操作系统的组合来实现要求保护的主题。
用户通过一个或多个输入设备1028向计算机1002中输入命令或信息。输入设备1028包括但不限于指示设备,诸如鼠标、轨迹球、触针、触控板、键盘、麦克风、操纵杆、游戏板、卫星盘、扫描仪、TV调谐器卡、数字式相机、数字式视频相机、web相机等。这些及其他输入设备经由一个或多个接口端口1030通过系统总线1008连接到处理单元1004。一个或多个接口端口1030包括例如串行端口、并行端口、游戏端口以及通用串行总线(USB)。一个或多个输出设备1036使用某些相同类型的端口作为一个或多个输入设备1028。因此,例如,可使用USB端口来向计算机1002提供输入,并从计算机1002向输出设备1036输出信息。提供了输出适配器1034以举例说明除其他输出设备1036之外,还存在某些输出设备1036,例如监视器、扬声器以及打印机,其要求特殊适配器。以图示而非限制的方式,输出适配器1034包括视频和声卡,其提供输出设备1036与系统总线1008之间的连接手段。应注意的是其他设备和/或设备的系统提供输入和输出能力两者,诸如一个或多个远程计算机1038。
计算设备1012可以使用到一个或多个远程计算机、诸如一个或多个远程计算机1038的逻辑连接在联网环境中进行操作。一个或多个远程计算机1038可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的设备、对端设备、智能电话、平板电脑或其他网络节点等,并且通常包括相对于计算机1002所述的许多元件。出于简洁的目的,仅用一个或多个远程计算机1038来举例说明存储器存储设备1040。一个或多个远程计算机1038通过网络接口1042而被逻辑连接到计算机1002且然后经由一个或多个通信连接1044被连接。网络接口1042涵盖有线和/或无线通信网络,诸如局域网(LAN)和广域网(WAN)和蜂窝式网络。LAN技术包括光纤分布式数据接口(FDDI)、铜导线分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括但不限于点到点链路、类似综合服务数字网(ISDN)及其变体的电路交换网、分组交换网以及数字订户线(DSL)。
一个或多个通信连接1044指的是用来将网络接口1042连接到总线1008的硬件/软件。虽然在计算机1002内部为了说明清楚而示出了通信连接1044,但其还可以在计算机1002外部。仅仅出于示例性目的,连接到网络接口1042所需的硬件/软件包括内部和外部技术,诸如调制解调器,包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器和有线和无线以太网卡、集线器以及路由器。
现在参考图11,图示出根据本公开的计算环境1100的示意性框图。系统1100包括一个或多个客户端1102(例如膝上计算机、智能电话、PDA、媒体播放器、计算机、便携式电子设备、平板电脑等)。可以例如结合实现图1和图6中所示的本文所述系统或部件中的一个或多个系统或部件而采用系统1100。一个或多个客户端1102可以是硬件和/或软件(例如线程、进程、计算设备)。系统1100还包括一个或多个服务器1104。一个或多个服务器1104还可以是硬件或与软件相结合的硬件(例如线程、进程、计算设备)。服务器1104例如可以容纳线程以通过采用本公开的各方面而执行变换。客户端1102与服务器1104之间的一个可能通信可以是在两个或更多计算机进程之间发送的数据分组的形式,其中,所述数据分组可包括视频数据。数据分组可以包括例如元数据,例如关联上下文信息。系统1100包括可以用来促进一个或多个客户端1102与一个或多个服务器1104之间的通信的通信框架1106(例如,诸如因特网之类的全球通信网或一个或多个移动网络)。
可以经由有线(包括光纤)和/或无线技术来促进通信。一个或多个客户端1102包括或被操作连接到可以用来存储一个或多个客户端1102(例如,关联上下文信息)本地的信息的一个或多个客户端数据库1108。同样地,一个或多个服务器1104在操作上包括或被操作连接到一个或多个服务器数据库1110,其可以用来存储服务器1104本地的信息。
在一个实施例中,客户端1102可以根据公开主题将已编码文件传输至服务器1104。服务器1104可以存储文件,将文件解码,或将文件发送到另一客户端1102。应认识到的是客户端1102还可以将未压缩文件传输至服务器1104且服务器1104可以根据公开主题来压缩文件。同样地,服务器1104可以将视频信息进行编码并经由通信框架1106将该信息发送到一个或多个客户端1102。
还可在分布式计算环境中实施本公开的所示方面,其中,由通过通信网络链接的远程处理设备来执行某些任务。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备两者中。
此外,应认识到的是在本描述中所述的各种部件可以包括一个或多个电路,其包括适当值的部件和电路元件以便实现一个或多个主题创新的实施例。此外,可以认识到的是可以在一个或多个集成电路(IC)芯片上实现许多的不同部件。例如,在一个实施例中,可以在单个IC芯片中实现一组部件。在其他实施例中,在单独IC芯片上制造或实现各部件中的一个或多个。
上述内容包括本发明的实施例的示例。当然,为了描述要求保护的主题的目的,不可能描述组件或技术的每一个可设想的组合,但是应当明白,各个创新的许多另外的组合和排列是可能的。因此,要求保护的主题意欲涵盖落在所附权利要求的精神和范围内的所有这样的改变、修改和变化。而且,包括在摘要中的内容的本公开的所说明的实施例的上面的说明不意欲是穷尽性的或将所公开的实施例限于所公开的精确的形式。虽然为了说明的目的而在本公开中描述了特定实施例和示例,但是本领域内的技术人员可以认识到,在这样的实施例和示例的范围中的考虑的各种修改是可能的。
具体地说并且关于由上述组件、装置、电路和系统等执行的各个功能,用于描述这样的组件的术语除了另外指示意欲对应于执行所述组件的指定功能(例如,功能上等同)的任何组件,即使在结构上未等同于所公开的结构,该所公开的结构执行在本公开说明的、所要求的主题的说明性示例性方面中的功能。在这一点上,也可以认识到,所述创新包括系统以及计算机可读存储介质,所述计算机可读存储介质具有用于执行所要求保护的主题的各个方法的行为和/或事件的计算机可执行指令。
已经参考在几个组件/块之间的交互描述了上述系统/电路/模块。可以明白,这样的系统/电路和组件/块可以包括那些组件或指定的子组件、指定组件或子组件的一些和/或另外的组件,并且根据上述的各种排列和组合。子组件也可以被实现为可通信地耦合到其他组件而不是被包括在父组件(分层)中的组件。另外,应当注意,一个或多个组件可以被组合为单个组件,该单个组件提供集合功能或被划分为几个分立的子组件,并且,诸如管理层的任何一个或多个中间层可以被提供来可通信地耦合到这样的子组件,以便提供集成功能。在本公开中描述的任何组件也可以与在本公开中未具体说明但是被本领域内的技术人员已知的一个或多个其他组件交互。虽然主要与执行相应的行为或功能相关地描述了在此所述的组件,应当明白,在非活动状态中,这些组件可以被配置为执行这样的行为或功能。
另外,虽然已经相对于几种实现方式的仅一个描述了主题创新的特定特征,但是这样的特征可以与可能期望并且任何给定或特定应用有益的其他实现方式的一个或多个其他特征组合。而且,在详细说明或权利要求中使用术语“包括”、“具有”、“包含”、其变化形式和其他类似词的意义上,这些术语意欲以类似于作为开放转换词的术语“包括”的方式是包括性的,而不排除任何另外或其他的元素。
在本申请中使用的术语“组件”、“模块”或“系统”等一般意欲指代硬件(例如,电路)、硬件和软件的组合、软件的计算机相关的实体或者与具有一个或多个特定功能的操作机器相关的实体。例如,组件可以是但是不限于在处理器(例如,数字信号处理器)上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过例示,在控制器上移动的应用和控制器两者可以是组件。一个或多个组件可以驻留在执行的进程和/或线程内,并且组件可以位于一个计算机上和/或被分布在两个或更多计算机之间。而且,“装置”可以具有下述形式:专门设计的硬件;通过其上的软件的执行而被使得特殊化的硬件,该软件使得该硬件执行特定功能:在计算机可读存储介质上存储的软件;在计算机可读传输介质上发送的软件;或其组合。
而且,在本公开中使用词“示例”或“示例性”来表示作为示例、实例或例示。在本公开中描述为“示例性”的任何方面或设计不必然被解释为相对于其他方面或设计是优选的或有益的。而是,词“示例”或“示例性”的使用意欲以具体的方式来提供概念。在本申请中使用的术语“或”意欲表示包括性的“或”而不是排他性的“或”。即,除非指定或从上下文清楚,“X使用A或B”意欲表示自然包括排列的任何一种。即,如果X使用A、X使用B或X使用A和B两者,则在上述情况的任何一种下满足“X使用A或B”。另外,在本申请中以及所附的权利要求使用的冠词“一个”应当一般被解释为表示“一个或多个”,除非指定或从上下文清楚与单数形式相关。
计算装置通常包括多种介质,其可以包括计算机可读存储介质和/或通信介质,其中,这两个术语在本说明书中彼此不同地被使用如下。计算机可读存储介质可以是可以被计算机访问、通常是非永久本质并且可以包括易失性和非易失性介质、可移动和非可移动介质的任何可用存储介质。通过示例而不是限制性地,可以与用于存储诸如计算机可读指令、程序模块、结构化数据或无结构的数据的信息的任何方法或技术相关地实现计算机可读存储介质。计算机可读存储介质可以包括但是不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储或其它磁存储设备或者可以用来存储期望的信息的其他有形和/或永久介质。计算机可读存储介质可以被一个或多个本地或远程计算装置例如经由访问请求、查询或其他数据检索协议访问,以用于相对于由介质存储的信息的各种操作。
另一方面,通信介质通常包含在数据信号中的计算机可读指令、数据结构、程序模块或其他结构化或非结构化的数据,该数据信号可以是暂时的,诸如调制的数据信号,例如载波或其他传送机制,并且包括任何信息传递或传送介质。术语“调制的数据信号”或信号是指以编码在一个或多个信号中的信息的方式来设置或改变其特性的一个或多个的信号。通过示例而不是限制性地,通信介质包括:有线介质,诸如有线网络或直接有线连接;以及无线介质,诸如声音、RF、红外线和其他无线介质。
鉴于上述示例性系统,参考各种图的流程图将更好地认识到根据所述主题可实现的方法。为了说明的简化起见,描绘了该方法并将其描述为一系列动作。然而,根据本公开的动作可以按照各种顺序和/或同时地发生,并且其他动作在本公开中并未提出和描述。此外,可能并不是所有的所示动作都是实现根据本公开的某些方面所需要的。另外,本领域的技术人员将理解和认识到的是可以经由状态图或事件替选地将该方法表示为一系列互相关状态。另外,应认识到的是在本公开中公开的方法能够存储在制品上以促进将此类方法传送和传输到计算设备。如在本公开中所使用的术语意图涵盖可从任何计算机可读设备或存储介质访问的计算机程序。

Claims (20)

1.一种用于处理实时视频流的段的系统,包括:
存储器,所述存储器上存储有计算机可执行部件;以及
处理器,所述处理器被配置成执行存储于所述存储器中的以下计算机可执行部件;
控制部件,所述控制部件针对所述实时视频流生成指令图,所述指令图定义用于实时地处理所述实时视频流的工作流程,所述工作流程包括用于处理所述实时视频流的多组服务;
处理部件,所述处理部件被配置为至少部分地基于所述指令图来执行所述多组服务以实时且并行地处理所述段的副本,其中所述处理部件被配置为在对所述段中的第N段的处理期间识别与所述多组服务中的第一组服务中的服务相关联的处理故障,其中N是整数,并且重新执行所述第一组服务以重新处理所述第N段;以及
分发部件,所述分发部件被配置为实时地将已处理的段流送至客户端以用于所述实时视频流的实况广播。
2.根据权利要求1所述的系统,其中,摄取部件被配置为依序地摄取所述段,所述处理部件被配置为按照所述段被接收的相应顺序来处理所述段,并且所述分发部件被配置为响应于完成对每个段的处理而流送该已处理的段。
3.根据权利要求2所述的系统,其中,所述已处理的段在所述实时视频流的所有段被所述摄取部件接收到之前被分发。
4.根据权利要求1所述的系统,其中,所述多组服务分别包括被配置为依序地处理所述段的相应副本的多个服务,并且其中,所述分发部件被配置为在所述多组服务中的一个子组完成对所述实时视频流的第二段的处理之前将已经由所述子组处理的所述实时视频流的第一段流送至所述客户端。
5.根据权利要求1所述的系统,其中,摄取部件被配置为摄取所述段,所述处理部件被配置为对所述段的所述副本进行处理并且所述分发部件被配置为同时地将所处理的段流送。
6.根据权利要求1所述的系统,其中,相应的各组服务被配置为以不同的格式输出所述实时视频流。
7.根据权利要求1所述的系统,其中,所述多组服务分别包括被配置为通过执行相应服务任务来依序地处理所述段的多个服务,并且其中所述多个服务中的一个服务被配置为针对多个视频流同时地执行其服务任务,并且其中所述控制部件被配置为调度所述多个服务中的一个服务以仅针对所述实时视频流执行其服务任务。
8.根据权利要求1所述的系统,其中,所述多组服务中的服务在共享处理基础设施中进行操作,所述共享处理基础设施促进实时视频流处理和非实时视频流处理,并且其中所述控制部件被配置为使得由所述多组服务中的服务进行的所述实时视频流处理优先于所述非实时视频流处理。
9.根据权利要求1所述的系统,其中,所述处理部件被配置为在重新执行所述第一组服务期间维持相应的所述多组服务的执行。
10.根据权利要求1所述的系统,其中,所述处理部件被配置为通过以下步骤来执行相应的所述多组服务:
响应于第一服务完成对所述实时视频流的一个或多个段的处理,将所述一个或多个段流送到第二服务;以及
由所述第一服务和所述第二服务同时地处理所述实时视频流的所述段,其中所述第一服务继续处理所述实时视频流的一个或多个未经处理的段并且所述第二服务处理从所述第一服务流送来的所述实时视频流的所述一个或多个段。
11.根据权利要求1所述的系统,进一步包括:
缓冲器部件,所述缓冲器部件被配置为随着所述实时视频流的段在服务之间被处理而将其存储达预定义时间段。
12.根据权利要求1所述的系统,其中所述多组服务中的服务是包括多个服务的共享计算基础设施中的部分并且所述控制部件被配置为基于各个服务的可获得性来从所述多个服务中选择所述多组服务中的服务。
13.根据权利要求12所述的系统,其中所述控制部件被配置为限制所述多组服务中的服务以执行在所述指令图中定义的相应任务,并且其中所述多组服务中的服务分别被配置为执行在所述指令图中定义的单个任务。
14.一种用于处理实时视频流的段的方法,包括:
由处理器生成用于所述实时视频流的指令图,所述指令图定义用于实时地处理所述实时视频流的工作流程,所述工作流程包括用于处理所述实时视频流的多组服务;以及
生成所述段的副本;
至少部分地基于所述指令图来执行相应的所述多组服务以并行地处理所述段的相应副本;
在对所述段中的第N段的处理期间识别与所述多组服务中的第一组服务中的服务相关联的处理故障,其中N是整数;以及
响应于识别与所述第一组服务中的所述服务相关联的所述处理故障,重新执行所述第一组服务以重新处理所述第N段。
15.根据权利要求14所述的方法,进一步包括实时地将所述段流送至客户端。
16.根据权利要求14所述的方法,其中,所述多组服务分别包括被配置为依序地处理所述段的多个服务,所述方法进一步包括在所述多组服务中的一个组完成对所述实时视频流的第二段的处理之前将已经由所述组处理的所述实时视频流的第一段流送至客户端。
17.根据权利要求14所述的方法,其中相应的所述多组服务被配置为以不同的格式输出所述实时视频流。
18.根据权利要求14所述的方法,所述多组服务分别包括被配置为通过执行相应服务任务来依序地处理所述段的多个服务,并且其中所述多个服务中的一个服务被配置为针对多个视频流同时地执行其服务任务,所述方法进一步包括调度所述多个服务中的一个服务以仅针对所述实时视频流执行其服务任务。
19.根据权利要求14所述的方法,其中,所述多组服务中的服务在共享处理基础设施中进行操作,所述共享处理基础设施促进实时视频流处理和非实时视频流处理,所述方法进一步包括使得由所述多组服务中的服务进行的所述实时视频流处理优先于所述非实时视频流处理。
20.根据权利要求14所述的方法,进一步包括:
与重新执行所述第一组服务同时地维持相应的所述多组服务的执行,并排除所述第一组服务。
CN201711143767.XA 2012-04-12 2013-04-12 用于处理实时视频流的段的方法和系统 Active CN107888933B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/445,620 US8752112B2 (en) 2012-04-12 2012-04-12 Live streaming video processing
US13/445,620 2012-04-12
CN201380030581.7A CN104365108B (zh) 2012-04-12 2013-04-12 实时流送视频处理

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380030581.7A Division CN104365108B (zh) 2012-04-12 2013-04-12 实时流送视频处理

Publications (2)

Publication Number Publication Date
CN107888933A CN107888933A (zh) 2018-04-06
CN107888933B true CN107888933B (zh) 2020-04-28

Family

ID=48190632

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380030581.7A Active CN104365108B (zh) 2012-04-12 2013-04-12 实时流送视频处理
CN201711143767.XA Active CN107888933B (zh) 2012-04-12 2013-04-12 用于处理实时视频流的段的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380030581.7A Active CN104365108B (zh) 2012-04-12 2013-04-12 实时流送视频处理

Country Status (4)

Country Link
US (1) US8752112B2 (zh)
EP (1) EP2837195A1 (zh)
CN (2) CN104365108B (zh)
WO (1) WO2013155457A1 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10083621B2 (en) 2004-05-27 2018-09-25 Zedasoft, Inc. System and method for streaming video into a container-based architecture simulation
US9565239B2 (en) 2009-05-29 2017-02-07 Orions Digital Systems, Inc. Selective access of multi-rate data from a server and/or peer
US8930959B2 (en) 2011-05-13 2015-01-06 Orions Digital Systems, Inc. Generating event definitions based on spatial and relational relationships
US9184884B2 (en) * 2012-05-18 2015-11-10 Futurewei Technologies, Inc. System and method for cloud-based live media ingestion and transcoding
US20140074961A1 (en) * 2012-09-12 2014-03-13 Futurewei Technologies, Inc. Efficiently Delivering Time-Shifted Media Content via Content Delivery Networks (CDNs)
US9635334B2 (en) * 2012-12-03 2017-04-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Audio and video management for parallel transcoding
GB2509323B (en) * 2012-12-28 2015-01-07 Glide Talk Ltd Reduced latency server-mediated audio-video communication
US8813245B1 (en) 2013-01-25 2014-08-19 Amazon Technologies, Inc. Securing content using pipelines
US9183049B1 (en) 2013-01-25 2015-11-10 Amazon Technologies, Inc. Processing content using pipelines
US9223621B1 (en) * 2013-01-25 2015-12-29 Amazon Technologies, Inc. Organizing content using pipelines
US20140351871A1 (en) * 2013-05-22 2014-11-27 Microsoft Corporation Live media processing and streaming service
US20150081627A1 (en) * 2013-09-13 2015-03-19 Portal Architects, Inc. Managing Data Items Across Multiple Data Services
US20150082337A1 (en) * 2013-09-19 2015-03-19 Broadcom Corporation Pipelined encryption and packetization of audio video data
US20150134846A1 (en) * 2013-11-14 2015-05-14 Qualcomm Incorporated Method and apparatus for media segment request retry control
US8955027B1 (en) 2013-11-21 2015-02-10 Google Inc. Transcoding media streams using subchunking
ITBA20130077A1 (it) * 2013-11-25 2015-05-26 Cicco Luca De Meccanismo per il controllo del bitrate di codifica in un sistema di video streaming adattivo basato su buffer di playout e sulla stima di banda.
US9912707B2 (en) 2014-07-31 2018-03-06 Istreamplanet Co. Method and system for ensuring reliability of unicast video streaming at a video streaming platform
US9826011B2 (en) 2014-07-31 2017-11-21 Istreamplanet Co. Method and system for coordinating stream processing at a video streaming platform
US10110911B2 (en) 2014-11-11 2018-10-23 Cisco Technology, Inc. Parallel media encoding
US9819972B1 (en) * 2014-12-10 2017-11-14 Digital Keystone, Inc. Methods and apparatuses for a distributed live-on-demand (LOD) origin
US10439815B1 (en) * 2014-12-30 2019-10-08 Morphotrust Usa, Llc User data validation for digital identifications
US10929353B2 (en) 2015-04-29 2021-02-23 Box, Inc. File tree streaming in a virtual file system for cloud-based shared content
US9344751B1 (en) 2015-05-08 2016-05-17 Istreamplanet Co. Coordination of fault-tolerant video stream processing in cloud-based video streaming system
US9686576B2 (en) * 2015-05-08 2017-06-20 Istreamplanet Co. Coordination of video stream timing in cloud-based video streaming system
US9407944B1 (en) 2015-05-08 2016-08-02 Istreamplanet Co. Resource allocation optimization for cloud-based video processing
US10164853B2 (en) 2015-05-29 2018-12-25 Istreamplanet Co., Llc Real-time anomaly mitigation in a cloud-based video streaming system
US9942578B1 (en) * 2015-12-07 2018-04-10 Digital Keystone, Inc. Methods and apparatuses for a distributed live-on-demand (LOD) origin
KR101722673B1 (ko) * 2015-12-08 2017-04-03 네이버 주식회사 생중계에서 타임머신 기능을 제공하는 방법 및 시스템
US10104187B2 (en) * 2016-06-15 2018-10-16 Futurewei Technologies, Inc. System, computer program, and method for dividing services into subsets based on interdependencies
US10511864B2 (en) * 2016-08-31 2019-12-17 Living As One, Llc System and method for transcoding media stream
US11412272B2 (en) * 2016-08-31 2022-08-09 Resi Media Llc System and method for converting adaptive stream to downloadable media
US20180093645A1 (en) * 2016-09-30 2018-04-05 Melanie Ochoa Exterior Vehicle Heating System
US10223604B2 (en) 2016-11-06 2019-03-05 Microsoft Technology Licensing, Llc Live video analytics at scale
CN106791993B (zh) * 2016-12-29 2019-08-09 上海云熵网络科技有限公司 P2p直播系统及p2p直播方法
US11470131B2 (en) 2017-07-07 2022-10-11 Box, Inc. User device processing of information from a network-accessible collaboration system
US10853439B2 (en) * 2017-08-08 2020-12-01 Nice Ltd. Systems and methods for fast play back of recorded data
WO2019051608A1 (en) 2017-09-15 2019-03-21 Imagine Communications Corp. SYSTEMS AND METHODS FOR PRODUCING FRAGMENTED VIDEO CONTENT
US10657118B2 (en) 2017-10-05 2020-05-19 Adobe Inc. Update basis for updating digital content in a digital medium environment
US10733262B2 (en) 2017-10-05 2020-08-04 Adobe Inc. Attribute control for updating digital content in a digital medium environment
US10685375B2 (en) 2017-10-12 2020-06-16 Adobe Inc. Digital media environment for analysis of components of content in a digital marketing campaign
US11551257B2 (en) 2017-10-12 2023-01-10 Adobe Inc. Digital media environment for analysis of audience segments in a digital marketing campaign
US20190114680A1 (en) * 2017-10-13 2019-04-18 Adobe Systems Incorporated Customized Placement of Digital Marketing Content in a Digital Video
US10795647B2 (en) 2017-10-16 2020-10-06 Adobe, Inc. Application digital content control using an embedded machine learning module
US11544743B2 (en) 2017-10-16 2023-01-03 Adobe Inc. Digital content control based on shared machine learning properties
US10853766B2 (en) 2017-11-01 2020-12-01 Adobe Inc. Creative brief schema
US10991012B2 (en) 2017-11-01 2021-04-27 Adobe Inc. Creative brief-based content creation
CN108174226B (zh) * 2017-12-19 2020-11-10 平安科技(深圳)有限公司 直播视频的转码装置、方法及计算机可读存储介质
US10616616B2 (en) * 2018-01-01 2020-04-07 Nice Ltd Method and system for streaming a media file during a concurrent transcoding thereof
US10965964B2 (en) * 2018-02-20 2021-03-30 Logitech Europe S.A. System and methods for integrated multistreaming of media with graphical overlays
US11611784B2 (en) * 2019-08-02 2023-03-21 Dao Lab Limited System and method for transferring large video files with reduced turnaround time
US11516152B2 (en) 2019-09-28 2022-11-29 Tencent America LLC First-in first-out function for segmented data stream processing
CN110677687B (zh) * 2019-10-21 2023-01-24 上海网达软件股份有限公司 一种支持延时的直播转码方法及系统
US11140431B2 (en) 2020-02-18 2021-10-05 Wipro Limited Method and system for prioritizing contents for content processing by multichannel video programming distributors
CN111432236A (zh) * 2020-03-20 2020-07-17 北京百度网讯科技有限公司 用于输出信息的方法和装置
US11824751B2 (en) * 2020-04-21 2023-11-21 Grass Valley Canada System and method for controlling distribution of media content in a distributed system
US11481203B2 (en) 2020-04-30 2022-10-25 Forcepoint Llc Shared pipeline for multiple services
CN112866814A (zh) * 2020-12-30 2021-05-28 广州虎牙科技有限公司 一种音视频加工的方法及装置
US11240544B1 (en) * 2021-05-02 2022-02-01 Allot Ltd. System, device, and method of differentiating between streaming live-video flows and streaming non-live-video flows
US11829239B2 (en) 2021-11-17 2023-11-28 Adobe Inc. Managing machine learning model reconstruction

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6407680B1 (en) * 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7117499B2 (en) * 2001-11-22 2006-10-03 Hitachi, Ltd. Virtual computer systems and computer virtualization programs
CN101321275A (zh) * 2007-06-06 2008-12-10 华为技术有限公司 视频流的处理系统和处理方法
WO2009020552A1 (en) * 2007-08-06 2009-02-12 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
CN102130958A (zh) * 2011-03-22 2011-07-20 宋健 一种基于http协议的小文件切片模式的视频直播方法与系统
US8042142B1 (en) * 2008-12-10 2011-10-18 Google Inc. Streaming video processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1410645B1 (en) * 2001-07-12 2007-10-10 Research In Motion Limited System and method for providing remote data access for a mobile communication device
US7743161B2 (en) 2006-10-10 2010-06-22 Ortiva Wireless, Inc. Digital content buffer for adaptive streaming
US20080195664A1 (en) * 2006-12-13 2008-08-14 Quickplay Media Inc. Automated Content Tag Processing for Mobile Media
JP2009272706A (ja) * 2008-04-30 2009-11-19 Toshiba Corp 動画像トランスコード装置およびその方法
US8959366B2 (en) * 2010-01-28 2015-02-17 Cleversafe, Inc. De-sequencing encoded data slices
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
US20130064286A1 (en) * 2011-09-14 2013-03-14 Mobitv, Inc. Weighted encoder fragment scheduling

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6407680B1 (en) * 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7117499B2 (en) * 2001-11-22 2006-10-03 Hitachi, Ltd. Virtual computer systems and computer virtualization programs
CN101321275A (zh) * 2007-06-06 2008-12-10 华为技术有限公司 视频流的处理系统和处理方法
WO2009020552A1 (en) * 2007-08-06 2009-02-12 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8042142B1 (en) * 2008-12-10 2011-10-18 Google Inc. Streaming video processing
CN102130958A (zh) * 2011-03-22 2011-07-20 宋健 一种基于http协议的小文件切片模式的视频直播方法与系统

Also Published As

Publication number Publication date
WO2013155457A1 (en) 2013-10-17
CN104365108A (zh) 2015-02-18
US20130276048A1 (en) 2013-10-17
CN104365108B (zh) 2017-12-08
EP2837195A1 (en) 2015-02-18
US8752112B2 (en) 2014-06-10
CN107888933A (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN107888933B (zh) 用于处理实时视频流的段的方法和系统
US11457088B2 (en) Adaptive transfer rate for retrieving content from a server
US10218826B2 (en) Scalable, live transcoding with support for adaptive streaming and failover
US10291673B2 (en) Transcoding method and system, and distributed file apparatus
JP6928038B2 (ja) ライブビデオエンコーディングおよびストリーミングにおけるフレーム複写およびフレーム拡張のためのシステムおよび方法
CN102740159B (zh) 媒体文件存储格式和自适应传送系统
EP3072301B1 (en) Transcoding media streams using subchunking
US10484737B2 (en) Methods and systems for instantaneous asynchronous media sharing
US20110302238A1 (en) Virtual playback speed modification
US9179169B2 (en) Adaptive media delivery
US10728304B2 (en) Redundancy control in streaming content packager pools
US20170214927A1 (en) Video processing workload management
Olivers QoE-Aware Segment Scheme for MapReduce Based Hadoop Video Transcoding
Sanchez et al. Enhanced Image Processing beyond Baseband: CPU/GPU Process Model Unlocks Performance Possibilities

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