CN106462490B - 多媒体流水线架构 - Google Patents

多媒体流水线架构 Download PDF

Info

Publication number
CN106462490B
CN106462490B CN201580026032.1A CN201580026032A CN106462490B CN 106462490 B CN106462490 B CN 106462490B CN 201580026032 A CN201580026032 A CN 201580026032A CN 106462490 B CN106462490 B CN 106462490B
Authority
CN
China
Prior art keywords
media content
media
buffer area
buffer
stream
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
CN201580026032.1A
Other languages
English (en)
Other versions
CN106462490A (zh
Inventor
D·尚柏林
R·R·科杜里
A·邦科夫斯基
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.)
Adeia Media Solutions Inc
Original Assignee
Tivo Solutions 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 Tivo Solutions Inc filed Critical Tivo Solutions Inc
Priority to CN201910789467.1A priority Critical patent/CN110543747B/zh
Publication of CN106462490A publication Critical patent/CN106462490A/zh
Application granted granted Critical
Publication of CN106462490B publication Critical patent/CN106462490B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/108Transfer of content, software, digital rights or licenses
    • G06F21/1083Partial license transfers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4147PVR [Personal Video Recorder]
    • 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/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4433Implementing client middleware, e.g. Multimedia Home Platform [MHP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data

Abstract

描述了一种媒体内容流水线架构,其使媒体设备能够有效地接收、存储、播放和流传输媒体内容。总的来说,如本文所述的媒体内容流水线被配置成从一个或多个输入源接收媒体内容流,分段并存储该媒体内容流到固定大小或可变大小的数据缓冲区中,加密存储在缓冲区中的数据,并将加密的数据存储在内存缓冲区缓存中,以便进一步处理。媒体内容流水线还可被配置为响应于一个或多个定义的操作条件的发生而将存储在内存缓冲区缓存中的加密缓冲区写入辅助存储设备(例如,硬盘)。媒体内容流水线可以使媒体设备能够有效地接收和处理媒体内容数据流,将该媒体内容数据流写入存储器,并且将该媒体内容数据流传输到客户端设备。

Description

多媒体流水线架构
要求优先权
本申请根据35U.S.C.§119(e)要求于2014年3月26日提交的临时申请号61/970894和于2014年4月3日提交的临时申请号61/975001的权益,这些申请的全部内容通过引用的方式结合于此,就像这些全部内容在文中充分阐述。
技术领域
实施方案总体上涉及通过媒体设备处理媒体内容。
背景技术
本部分描述的方法是可以执行的方法,但并不必要是之前已经想到或执行的方法。因此,除非另有说明,否则不应该仅凭它们被包含在本部分中就认为本部分中描述的任何方法是现有技术。
媒体设备,例如数字视频录像机(VDR)、机顶盒(STB)、便携式媒体设备等,从无线广播、卫星广播、有线频道等接收多种类型的媒体内容,并且使得用户能够播放、记录媒体内容并且以另外的方式与媒体内容进行交互。在一些安排中,“主机”媒体设备可以被配置成从一个或多个内容源接收内容并将内容流传输到一个或多个“客户端”媒体设备。例如,主机媒体设备可以是用户客厅中的DVR,而客户端媒体设备可以包括安置在用户房屋的其它地方或别处的其它DVR、媒体服务器、移动设备等。
目前的媒体内容流系统通常包括主机媒体设备,其从内容源接收可流媒体内容,将该媒体内容存储在本地硬盘或其它辅助存储设备上,并且将该媒体内容从存储设备流传输到一个或多个客户端设备。因为在这些系统中媒体内容从辅助存储设备流传输到客户端设备,因此主机媒体设备将媒体内容流写入辅助存储器花的时间越少,内容能够越早用于流传输到客户端设备。因此,主机媒体设备接收媒体内容和将媒体内容存储到磁盘所花的时间的延迟可能导致客户端设备处的从主机媒体设备流传输媒体内容的差强人意的用户体验。
附图说明
所附附图的图中以示例而非限制的方式示出本发明,图中相似的附图标记指示相似的元件,其中图中:
图1是示出根据一个或多个实施例的用于通过媒体设备处理媒体内容的示例系统的框图;
图2A是示出根据一个或多个实施例的示例媒体设备的框图;
图2B是示出根据一个或多个实施例的示例流媒体设备的框图;
图3是示出根据一个或多个实施例的示例媒体内容流水线的框图;
图4示出根据一个或多个实施例用于使用媒体内容流水线来处理媒体内容的示例处理流程;
图5示出了根据一个或多个实施例的用于将媒体内容流传输到一个或多个客户端设备的示例处理流程;以及
图6是实施本发明的实施例的计算机系统的框图。
具体实施方式
以下描述中,出于解释的目的,阐述了许多具体的细节,以便提供对本发明的全面理解。然而,显而易见地,本发明可以在没有这些具体细节的情况下实施。在其它实例中,以框图的形式示出了公知的结构和设备,以避免不必要地模糊本发明。
这里将依照以下提纲描述实施例:
1.0总体概述
2.0.结构概述
3.0.示例媒体设备
4.0.示例媒体内容流水线架构
5.0.实施示例
5.1.媒体内容处理
5.2.在媒体设备上播放媒体内容
5.3.媒体内容流
6.0.实施机构—硬件概述
7.0.扩展和替代
1.0总体概述
公开了用于通过媒体设备处理的媒体内容的方法、技术、和机构。根据多种实施例,描述了一种媒体内容流水线架构,其使媒体设备能够有效地接收、存储、播放、以及流传输媒体内容。总的来说,如本文所述的媒体内容流水线被配置成从一个或多个输入源接收媒体内容流,分段媒体内容流并将媒体内容流存储在固定大小或可变大小的数据缓冲区中,加密存储在缓冲区中的数据,和将加密的数据存储在内存缓冲区缓存中以便进一步处理。媒体内容流水线可以被进一步配置为响应于一个或多个定义的操作条件的发生而将存储在内存缓冲区高速缓冲中的加密缓冲区写入辅助存储设备(例如,硬盘)。
根据文中描述的方法,媒体内容流水线被配置成提高主机媒体设备将由主机媒体设备接收到的媒体内容流传输到其它客户端媒体设备的能力。在一些实施中,在主机媒体设备将媒体内容流传输到客户端设备之前,主机设备接收、处理媒体内容,并在接收到媒体内容时将该媒体内容存储到辅助存储设备。然后媒体内容从辅助存储设备被读取和发送到请求客户端端设备。因此,用于提高主机媒体设备将媒体内容迅速流传输至客户端设备的能力的一个选择是主机媒体设备更频繁地将进入媒体内容流的部分写入媒体设备的本地存储器。例如,通过增加进入媒体内容流的部分被写入本地存储器的频率,媒体内容流的那些部分能够更早地用于流传输到客户端设备。然而,将媒体内容流的部分写入存储器是一个相对昂贵的操作,无论是在完成每次写操作的时间还是存储设备上的物理磨损方面。此外,主机媒体设备可以同时接收若干媒体内容流,因此,媒体内容流的部分被写入存储设备的频率的任何增加可以随着时间的推移显著增加写操作的总数量。
公开了一种用于通过主机设备将媒体内容流传输到其它客户端设备以被客户端设备回放的方法和计算机装置。总的来说,如文中所述的媒体内容流水线架构有效地处理和管理进入媒体内容流,以使内容流能迅速用于流传输,同时减少写入辅助存储器的写操作的频率。根据一个实施例,媒体设备接收多个媒体内容数据流。多个媒体内容数据流中的特定媒体内容流的至少一部分被存储在一个或多个内存缓冲区中,并且一个或多个内存缓冲区被加密。对特定媒体内容流的请求从客户端设备被接收到,该请求指示该特定媒体内容流内的位置。响应于确定媒体内容流内的位置对应于一个或多个内存数据缓冲区的特定缓冲区,该特定缓冲区被发送到客户端设备。通过使媒体设备管理在加密内存缓冲区的缓存中的媒体内容流的部分并响应于来自客户端设备的流请求而提供来自缓存的缓冲区,将缓冲区写入辅助存储器的频率可降低。
在一个实施例中,在对一个或多个内存缓冲区进行加密之后,一个或多个内存缓冲区被存储到辅助存储设备。
在一个实施例中,响应于确定一个或多个未加密内存缓冲区已经达到加密限制而对内存缓冲区进行加密,其中加密限制是时限和当前存储的未加密内存缓冲区的数量中的一个或多个。
在一个实施例中,其中响应于确定已经达到写限制而将一个或多个内存缓冲区存储在辅助存储设备中,其中写期满限制是时限和当期存储的加密内存数据缓冲区的数量中的一个或多个。
在一个实施例中,其中特定媒体内容流内的位置由时间戳或缓冲区序号指示。
在一个实施例中,其中一个或多个内存缓冲区的大小相同。
在一个实施例中,其中一个或多个内存缓冲区中的至少一个缓冲区用非媒体内容数据填补。
在其它方面,本发明囊括被配置成执行前述步骤的计算机装置和计算机可读介质。
2.0.结构概述
图1是根据一个实施例的文中描述的技术在其中被实施的示例系统100的多个方面的说明性视图。系统100包含一个或多个计算设备。这些一个或多个计算设备包含硬件和被配置成实施文中所描述的各种逻辑组件的软件的任意组合。例如,该一个或多个计算设备可以包括一个或多个内存、一个或多个硬件处理器、和多种数据存储库。内存存储用于实施文中描述的多种组件的指令,硬件处理器被配置成执行存储在一个或多个内存中的指令,数据存储库在一个或多个内存中用于存储被多种组件利用和操纵的数据结构。虽然描述了具体的系统,但是其它实施例也可应用到能够用来执行文中描述的功能的任何系统。
在一个实施例中,系统100包括一个或多个媒体设备(例如,媒体设备102),一个或多个客户端设备(例如,客户端设备104),一个或多个内容源(例如,内容源106),以及一个或多个服务提供者(例如,服务提供者108)。系统100的组件可以经由一个或多个网络连接(例如,网络110A,110B)。网络110A,110B可通过用于系统100的组件之间的数据交换的任何介质或机构来实现。网络110A、110B的示例包括但不限于诸如局域网(LAN)、广域网(WAN)、无线网络、因特网、内联网、外联网等的网络。系统100内的任何数量的设备可以通过有线或无线通信段直接连接到彼此。
在一个实施例中,媒体设备102一般可以指任何类型的计算设备,其能够从电缆信号、地面信号、数字基于网络数据等接收媒体内容项,例如电视节目、电影、视频点播(VOD)内容等等。媒体设备102的示例包括,但不限于,数字视频录像机(DVR)、媒体服务器、机顶盒、数字媒体接收器等。
媒体设备102一般可以包括被配置成从多种内容源106接收媒体内容的一个或多个调谐器。调谐器可以指,但不限于,任何的:视频调谐器、音频调谐器、视听调谐器、有线卡、系统资源单元、系统组件、信号处理部等,它们都可以(例如,在需要时,提前等)被媒体设备102供应、调谐、分配、指定、使用等,以接收来自内容源106的媒体内容。例如,一个内容源106可以包括电视直播馈送。其它示例内容源106包括但不限于,视频点播(VOD)库、第三方内容提供者(例如,的或Amazon)和基于网络的媒体内容。
在一个实施例中,客户端设备104一般表示能够播放媒体内容的任何设备。客户端设备104的示例包括但不限于,数字视频录像机(DVR)、平板计算机、手持设备(例如,蜂窝电话等)、笔记本电脑、电子书阅读器、个人计算设备、游戏设备等。总的来说,客户端设备104可以指任何类型的计算装置,其能够通过一个或多个数字网络110,例如公共因特网接收媒体内容,但是其可以或可以不包括TV调谐器输入。用户通常可能拥有可以位于用户的房屋和别处的多个位置处的数个媒体设备102和客户端设备104。
在一些实施例中,媒体设备102和多个客户端设备104可以位于建筑物(例如房屋)的多个房间中,并连接到一个或多个局域网(LAN)(例如,网络110B)。例如,一种媒体设备102可以位于用户的客厅,客户端设备104可以位于用户房屋的另一个房间中。作为一个示例,客户端设备104可以少调谐器流设备,其被配置为通过一个或多个网络110B从媒体设备102流传输媒体内容并在连接到客户端设备104的输出设备(例如,TV)上播放被流传输的媒体内容。媒体设备102可以接收从一个或多个媒体内容源106流传输到客户端设备104的媒体内容。
在一个实施例中,媒体设备102可以支持一个或多个流协议,流协议允许客户端设备104通过一个或多个网络110B访问媒体内容。例如流协议包括但不限于,TiVo多房间流(MRS)协议、HTTP实时流(HLS)协议、其它标准或专有流协议等。
在一个实施例中,媒体设备102和客户端设备104可以经由一个或多个网络110A、110B与一个或多个服务提供者108进行通信。服务提供者108可通常承载并以其它方式提供对信息的访问,如节目指南数据、图形资源(例如字体,图片等)、服务信息、软件、广告、和使媒体设备102和/或客户端设备104能够满足对媒体内容项的用户的搜索请求,生成并显示图形用户界面,并执行其它操作的其它数据。
系统100只示出了配置成提供文中描述的功能的组件的许多可能安排中的一个。其它安排可包括更少、附加或不同的组件,并且组件之间的分工可以根据安排而变化。系统100的每个组件可以设有开放端口,API或其它合适的通信接口,组件可以根据需要通过开放端口通信地耦接到系统100的其它组件以完成文中描述的系统100的任何功能。
3.0示例媒体设备
图2A是示出根据一个或多个实施例的媒体设备的内部结构和操作的示例的框图。诸如数字视频录像机(DVR)的媒体设备的内部结构和操作的示例进一步在本申请人所有的美国专利号6233389中描述,其通过引用的方式并入,就像在本文中原始公开一样。
图2A中示出的媒体设备包含输入模块202、媒体交换机204、输出模块206、和流模块214。输入模块202经由一个或多个输入调谐器接收任意的各种的形式的电视(TV)和其它媒体内容输入流。在一个实施例中,由输入模块202接收到的模拟TV输入流可以采取依从国家电视标准委员会(NTSC)的信号或者PAL兼容广播信号的形式。在另一个实施例中,由输入模块202接收的数字广播输入流可以采取数字形式,数字形式包括但不限于任何的:MPEG2,MPEG4等,该数字广播输入流从源接收,源包括但不限于任何:有线卡、卫星、地面等。在一个实施例中,输入模块202接收模拟媒体内容输入流,并且产生MPEG格式的流。在一个实施例中,输入模块202接收数字媒体内流,并将数字媒体内容流的代码转换至另一数字格式。在另一个实施例中,输入模块202产生使用不同编解码器编码的流。
MPEG传输多路复用支持在可包括多个视频和音频馈送和私有数据的同一广播频道中的多个节目。输入模块202将频道调谐到特定节目,从频道提取指定的MPEG流,并且将MPEG流馈送到系统的其余部分。使用视频和音频编码器将模拟TV信号编码成类似MPEG格式,以使得该系统的其余部分不知道信号是如何获得的。可以以一些标准方式将信息调制到模拟TV信号的垂直消隐间隔(VBI);例如,北美广播图文电视标准(NABTS)可以用于将信息调制到NTSC信号的某些线路上,其中针对隐藏字幕(CC)和扩展数据服务(EDS),FCC授权某一其它线路的使用。这样的信号由输入模块202解码并传递到其它模块,就像信号已经通过MPEG私有数据信道传送。
输入模块202还可以从诸如本地或远程NAS存储设备、因特网内容提供者、本地或远程媒体设备等的网络源接收流内容。接收到的内容流可能会有许多不同格式,如MPEG、MPEG 2、MPEG 4、WMV、AVCHD、MOV、H.264、MKV等。输入模块202可以产生对应于所接收到的内容流的MPEG流。
在一个实施例中,媒体设备可以容纳多个输入模块202(例如,调谐器),每一个都可以被调谐到不同类型的输入。例如,一个调谐器可以在另一调谐器从因特网源接收数字输入的同时接收模拟TV信号。类似地,媒体设备可以容纳多个输出模块206(例如,解码器)。多个解码器可以用来例如将相同或不同的内容同时输出到多个显示设备或用来实现各种特殊效果,例如画中画(PiP)。
在一个实施例中,媒体交换机204管理微处理器CPU 208、存储器210、和内存212之间的数据传送。内存212一般表示媒体设备102的主内存,主内存可以被CPU 208和媒体设备102的其它组件直接访问。存储器210一般表示媒体设备102的辅助存储设备,辅助存储设备通常不由CPU 208直接访问。存储器210的示例包括但不限于硬盘、闪存等。
在一个实施例中,媒体交换机204可以把时间序列信息嵌入进入内容流或以其它方式将时间序列信息与进入内容流相关联。时间序列信息可以作为一系列时间戳与流一起存储。这些时间戳例如可以单调递增并在系统每次启动时以零开始。这允许该系统的其它组件更容易地找到内容流中的特定位置。例如,如果系统接收到读进入内容流五秒的请求,那么系统可以在流中简单地开始向前读并定位相应的时间戳。
在一个实施例中,在系统处理内容流时可以创建索引。例如,索引可以跟踪存储的内容流中的I帧(用于MPEG流),这使系统能快速地执行特技播放功能,例如快进,倒退,可变速率快进,可变速率倒退,帧步进等。例如,如果用户期望在处于媒体内容流的中间的播放位置开始回放,则该系统可以使用索引找到最接近内容流的中间点的I帧,并从该I帧开始显示内容流,从而用最少信息量获得所期望的结果。
在一个实施例中,输入模块202将输入流转换成MPEG流并将该MPEG流发送到媒体交换机204以用于进一步处理。总的来说,媒体交换机204可以同时执行涉及由媒体设备接收到的输入流的一个或多个操作。例如,如果媒体设备的用户正在观看直播电视节目,则媒体交换机204可以处理和发送媒体内容流到输出模块206,同时引起媒体内容流被写入存储器210。
在一个实施例中,输出模块206接收媒体内容流作为输入,并产生输出显示信号,输出显示信号可以包括与多种设备兼容的任何数字或模拟格式,设备包括但不限于任何的:数字监视器、数字电视、模拟电视、计算机、智能手机、平板电脑等。输出模块206可包含MPEG解码器、屏幕显示(OSD)发生器、数字或模拟显示信号编码器和音频逻辑。OSD发生器允许程序逻辑提供可覆盖在所得输出显示信号上面上的图像。此外,输出模块206可将由程序逻辑提供的信息调制成一些标准格式(包括NABTS、CC和EDS)的输出信号的VBI(针对模拟设备)。
在一个实施例中,流模块214从客户端设备接收对特定媒体内容流的请求,从存储器210和/或内存212取回用于请求的媒体内容的数据,并发送该媒体内容流至请求客户端设备。例如,流模块214可通过一个或多个有线或无线网络链路接收来自客户端设备的请求并将媒体内容流发送至客户端设备。在一个实施例中,流模块214的网络接口可以被配置为使用直接内存存取(DMA)直接从内存212访问媒体内容数据。
图2B是示出根据一个或多个实施例的流媒体设备的内部结构和操作的示例的框图。示例流媒体设备可类似于在图2A中示出的媒体设备,除了图2A中的媒体设备的一些组件(例如,输出模块206和存储器210)可以减少或不存在之外。如图2B所示,示例流媒体设备可以包含输入模块202、媒体交换机204、CPU 208、内存212、和流模块214。通过减少如图2B所示的流媒体设备中存在的组件数量,例如,可以生产较低成本的专注于将媒体内容流传输到其它客户端设备的设备。
在一个实施例中,流媒体设备的输入模块202可以从包括模拟TV输入流、数字广播输入流、和网络源的任何数量的源接收输入。作为另一示例,流媒体设备可以从其它媒体设备例如图2A中示出的媒体设备接收输入。采用这种安排,流媒体设备可以单独于另一媒体设备操作以将媒体内容从媒体设备流传输到其它客户端设备。
4.0示例媒体内容流水线架构
图3是示出根据一个或多个实施例的示例媒体内容流水线的框图。在图3中,媒体内容流水线300被表示为一系列数据处理模块,这些数据处理模块被共同配置成从一个或多个输入模块202接收、缓冲、缓存、加密和存储媒体内容流,等等。在一个实施例中,媒体内容流水线300包含处理模块,处理模块包括源312,磁盘大小调整器302、变换器304、片段缓存306、片段文件308和片段写缓存310。从概念上讲,这些处理模块中的每一个握手通过媒体内容流水线300从一个或多个输入模块202接收到的媒体内容流缓冲区。
在一个实施例中,源312代表配置为从数据源取回数据,并且将数据发送到媒体内容流水线300的其余部分进行处理的程序逻辑,数据源可以包括但不限于调谐器、流内容服务器、URL,网络访问存储器(NAS)、机顶盒、媒体设备、视频服务器、付费观看源、视频点播源等中的任何一个。在一个实施例中,源312将从数据源取回的数据发送到磁盘大小调整器302,磁盘大小调整器302将数据分配到缓冲区中,如下文所述。
在一个实施例中,磁盘大小调整器302从源312接收媒体内容数据并将媒体内容数据分段到分开的数据缓冲区。在这种情况下,缓冲区通常表示来自内存池的能够暂时存储进入媒体内容流的部分的内存区域。存储在缓冲区中的数据可以随后经历由媒体内容流水线300的其它组件执行的多种处理步骤。每个缓冲区可以例如存储近似相同量的媒体内容数据(例如,64KB、128KB或1MB),其中该缓冲区大小可被选择以方便存储在辅助存储设备上和/或用于媒体内容流水线300的其它处理步骤。
在一个实施例中,磁盘大小调整器302从变换器304请求空缓冲区,以用从源312接收到的媒体内容数据的部分填充。例如,如果变换器304被配置成将缓冲区分配为128KB的块,然后磁盘大小调整器302可以将从源312接收到的媒体内容数据流分段成128KB的段,从变换器304请求一个或多个空的缓冲区,并且将128KB的段存储在空缓冲区中。通过将媒体内容流水线300配置成对作为存储在数据缓冲区中的一批相同大小的段的媒体内容流进行操作,流的下游处理可以更加有效。在其它示例中,可取决于存储优化和媒体内容数据的比特率而将缓冲区分配成可变大小。
在一个实施例中,如果磁盘大小调整器302尚不可使用当前缓冲区来存储从源312接收到的媒体内容流,那么磁盘大小调整器302请求变换器304从存储在内存212中的缓冲内存池分配新的缓冲区。在一个实施例中,媒体设备的每一个调谐器可以与单独的媒体内容流水线相关联,并且内存池可以用每个流水线可用的内存的特定量配置。变换器304可以例如通过调用从内存池中的可用空间创建缓冲区的系统功能来创建新缓冲区,供相关联的媒体内容流水线300使用。当磁盘大小调整器302从源312接收媒体内容数据时,磁盘大小调整器302将数据的部分以及任何元数据一起存储在当前缓冲区中,其中元数据提供关于存储在缓冲区中的媒体内容的描述性信息。
总的来说,磁盘大小调整器302将从源312接收到的媒体内容数据存储在当前缓冲区中,直到当前缓冲区“装满”为止(例如,如果缓冲区被创建以存储128KB的数据,那么当磁盘大小调整302已经将近似128KB的媒体内容数据和其它元数据存储在当前缓冲区中时,该缓冲区被装满)。在一个实施例中,在当前缓冲区装满时,磁盘大小调整器302将装满的缓冲区发送到片段缓存306用于进一步处理。
取决于分配给每个缓冲区的空间量,在磁盘大小调整器302能够存储足够的数据来装满当前的缓冲区之前,可能会逝去显著量的时间,特别是对于低比特率的媒体内容流(例如,无线电转播)。因为媒体内容流水线300的其它处理元件可以等待从磁盘大小调整器302接收装满的缓冲区用于进一步处理(例如,为了将缓冲区存储到磁盘或将缓冲区流传输到客户端设备),因此在低比特率流下装满缓冲区的时间量可能会导致不希望的处理延迟。
在一个实施例中,为了确保被磁盘大小调整器302使用的缓冲区被及时推到媒体内容流水线300的其余部分,可以允许非装满缓冲区。例如,如果媒体内容流水线300中的每个缓冲区的固定大小为128KB,那么磁盘大小调整器302能够用小于128KB的媒体内容数据填充一个或多个缓冲区,并且如果一个或多个条件达到就用“填料”填充剩余空间。在这种情况下,填料一般指的是用于占据缓冲区中的空间从而使得缓冲器被填充成固定数据大小的任何非媒体内容数据。被检查以确定磁盘大小调整器302是否填补缓冲区的条件的一个示例可以包括达到阈值时限(例如,100毫秒)。例如,磁盘大小调整器302可以跟踪填充每个特定缓冲区所花的时间量,并且如果当前缓冲区未在阈值时限内被装满,则磁盘大小调整器302可以用填料来填补缓冲区并将被填补的缓冲区发送到系统的其余部分进行处理。
如上所述,媒体设备102可以同时接收多个媒体内容流用于处理。例如,媒体设备102可以包括能够同时接收单独的媒体内容输入流的多个调谐器。在一个实施例中,媒体设备102可以从输入模块202同时接收多个媒体内容流并且作为一个单独的流水线处理各该多个媒体内容流中的每个。例如,当接收到单独的媒体内容输入流时,磁盘大小调整器302可以从相同或单独的内存池创建用于单独的媒体内容输入流中的每一个的单独一组缓冲区。
片段缓存306从磁盘大小调整器302接收装满的缓冲区,并保持装满的缓冲区成成队列。通过片段缓存306管理的缓冲区的队列可以被例如作为存储介质(诸如内存212)上的缓存文件被保持。
在一个实施例中,在队列中的缓冲区排队等待加密。缓冲区被加密的原因可以有许多,包括由媒体设备接收的受版权保护的媒体内容的安全性。例如,内容所有者经常关注媒体内容的未经授权的复制,因此,媒体内容的流水线可以加密媒体内容,使更难将受版权保护的媒体内容非法从一个媒体设备传送到另一个媒体设备。任何数量的安全系统和加密方案可以被用于加密由媒体设备102接收的媒体内容,并确保媒体设备102能够将受版权保护的内容仅传送到其它授权的设备。可用于安全存储和/或传送媒体内容的安全系统的示例在本申请人所有的美国申请序列号10741596中进一步描述,其通过引用并入,就像本文原始公开一样。
在一个实施例中,片段缓存306将未加密缓冲区列队以加密,直到确定在队列中的一个或多个缓冲区已达到“加密限制”为止。加密限制通常可以指可配置条件或阈值,当被触发时,其引起由片段缓存306列队的未加密的缓冲区被加密。例如,一个加密限制可以被配置成当每次从磁盘大小调整器302接收到新的未加密的缓冲区时使得未加密的缓冲区被加密。然而,由于加密缓冲区的过程可包括设置加密密钥,使用密钥来加密数据等,因此分别加密从磁盘大小调整器302接收到的每个新缓冲区可能会显著降低媒体设备的性能,特别是对于高比特率流下的媒体内容。
作为另一示例,加密限制可以基于时限,其中片段缓存306列队从磁盘大小调整器302接收到的未加密的缓冲区,并且按周期时刻表例如每100毫秒一次或基于任何其它时间增量,发送用于加密的一个或多个列队缓冲区。通过使用基于周期时间表的加密限制,即使媒体内容流的比特率非常高,媒体内容流水线300也可以在给定的时间范围内执行大致相同数量的加密。
作为又一示例,片段缓存306可以被配置成具有基于当前由片段缓存306列队以加密的未加密缓冲区的特定数量的加密限制。例如,片段缓存306可以只被分配足够在任何给定的时间列队某一数量的未加密的缓冲区的内存空间。因此,片段缓存306可从磁盘大小调整器302接收未加密的缓冲区,直到提供给片段缓存306的缓冲区的数量满了为止,此时片段缓存306将缓冲区发送到片段文件308以待被加密。
在一个实施例中,片段文件308从片段缓存306接收未加密的缓冲区作为输入,使得未加密的缓冲区被加密(例如,通过发送缓冲区到加密引擎),并发送加密的缓冲区到片段写缓区310。各种各样的加密技术或安全方案可以被用来加密缓冲区,加密技术或安全方案包括但不限于:数据加密标准(DES)、高级加密标准(AES)、加密散列函数(例如MD5、SHA-1、SHA-2、SHA-3)、私人和公共密钥等。如本文所述的加密技术可以在硬件、软件、或两者的组合中实施。
在一个实施例中,片段缓存306中的一些或全部缓冲区可以不被片段文件308加密,并且代替地片段缓存306可以发送缓冲区到片段写缓存310而不加密数据。例如,一些缓冲区可以不在加密状态下被存储在辅助存储器中,因为对于特定内容复制保护是不必要。作为另一示例,由片段文件308接收到的一些媒体内容可能事先被内容源或其它中介加密,因此,片段缓存306可以发送预先加密的缓冲区数据到片段写缓存310而不加密数据。
在一个实施例中,片段写缓存310从片段文件308接收加密的缓冲区并保持缓冲区在加密缓冲缓存中。加密的缓冲区缓存通常表示存储在媒体设备的主内存中的、一组排队等待写入媒体设备的辅助存储器的加密缓冲区。加密缓冲区缓存也可以用于满足在当前存储在加密缓冲区缓存中的媒体内容流中的任何播放位置处播放或流传输媒体内容流的请求。例如,因为加密缓冲区缓存在将媒体内容数据写入磁盘之前存储最近从输入模块202接收的加密媒体内容数据,所以如果所请求的播放点在直播点或附近,那么媒体设备可以播放来自加密的缓冲区缓存的加密的缓冲区或将其流传输到请求客户端设备。如本文中所使用的,直播点指的是在媒体内容流的最当前点。例如,现场广播的直播点通常指的是流的最近广播的部分。通过在可能时从加密的缓冲区缓存满足来自媒体设备来自和/或客户端设备的请求,媒体内容流水线300可以不那么频繁地将加密缓冲区写入存储器210而不会妨碍对存储在缓冲区中的数据的访问。在一个实施例中,片段写缓存310将加密的缓冲区保持在加密的缓冲区缓存中,直到缓冲区被写入磁盘并且已超过规定的将缓冲区中保持在缓存中的时间阈值。
在一个实施例中,过程定期检查存储在加密的缓冲区缓存中的尚未被写入磁盘的加密缓冲区并且如果满足一个或多个阈值就将缓冲区写入磁盘。用于将加密缓冲区写入磁盘的示例阈值可以包括当前存储在缓存中的未写入缓冲区的数量限制,和一个或多个未写入缓冲区已经存储在缓存中的时间长度。如果过程检测到达到阈值,则过程取回尚未写入到辅助存储器的加密的缓冲区,并将其写入到辅助存储器。
在一个实施例中,已写入到辅助存储器的加密的缓冲区在缓存中被标记以指示该缓冲区已经存储;但是,存储的缓冲区可以在分配给缓冲区的空间被释放并可供其它流水线组件使用之前保持在加密缓冲区缓存一段时间。在此期间,该缓冲区可以保持可用以直接从加密缓冲区缓存满足对缓冲区的进入请求(例如,来自媒体设备或流客户端),直到缓冲区“期满”。在实施例中,片段写缓存310可能会导致已被写入磁盘的缓冲区在某段时间已经过去之后,或基于任何其它条件“期满”,缓冲区是不再使用。一旦缓冲区已期满,分配给缓冲区的空间可以被释放并返回到相关联的内存池。例如,该释放的空间可以返回到与片段写缓存310相关联,并用于存储来自片段文件308的其它进入数据的内存池。作为另一示例,释放的缓冲区空间可供由变换器304使用的内存池用来分配缓冲区。
在一个实施例中,片段写缓存310可以被单独的转码流水线用来将媒体内容有效地流传输至客户端设备。例如,将HLS流传递给客户端设备的转码流水线可以访问存储在片段写缓存310中的缓冲区,转换缓冲区的代码,并将代码转换的媒体内容发送到客户端设备,而不是等待转换来自辅助存储器的直播点附近的媒体内容的代码。
5.0实施示例
5.1媒体内容处理
图4示出根据一个或多个实施例的用于使用媒体内容流水线处理媒体内容的示例处理流程。流程200的各种元件可以在各种系统,包括诸如上面描述的系统100的系统中执行。在一个实施例中,结合下面描述的功能块描述的每个过程的实施可以使用任何通用计算机或特殊用途计算机中的一个或多个计算机程序、其它软件元件、和/或数字逻辑,同时执行涉及与计算机的内存的物理状态交互和变换的数据取回、变换、和存储操作。图4中示出的步骤可以重新安排或省略。此外,未在图4中示出的附加步骤可以根据一个或多个实施例来执行。因此,在图4中示出的步骤的选择或安排不应该被解释为限制。
在框402处,一个或多个媒体内容数据流由媒体设备接收。例如,媒体设备102可以利用媒体设备的一个或多个调谐器从内容源106接收一个或多个媒体内容数据流。媒体设备102可以接收单个媒体内容数据流或同时接收多个媒体内容数据流。例如,媒体设备102的用户可以同时播放和/或记录多个节目。作为另一示例,媒体设备102可以正接收多个内容流用于流传输到一个或多个客户端设备104。
在框404中,媒体内容数据流的至少一部分被存储在一个或多个内存缓冲区中。例如,对于由媒体设备102接收的每个媒体内容数据流,媒体设备102可以将媒体内容流的部分存储在存储于内存212中的一个或多个缓冲区中。在一个实施例中,由媒体设备102创建用于存储媒体内容数据流的部分的缓冲区可以被列队以被媒体设备102进一步处理。
在框406中,确定一个或多个内存缓冲区是否达到加密限制。如参照图3中示出的示例媒体内容流水线而在上面描述的,媒体内容流数据可以由媒体设备102接收并最初分段并存储在一个或多个未加密的缓冲区中。出于安全和其它原因,媒体设备102可以在将缓冲区存储在存储器210或将媒体内容数据发送到客户端设备104之前加密缓冲区。在一个实施例中,确定一个或多个内存缓冲区是否达到加密限制可以包括:确定已经达到特定的时限,或一定数量的未加密缓冲区当前排队等待加密。
在框408,媒体设备对一个或多个内存缓冲区进行加密,并将加密的缓冲区存储在缓冲区缓存中。例如,媒体设备102可以使用由硬件、软件、或其组合实现的任何数量的加密技术来加密缓冲区。媒体设备102可以将加密的缓冲区存储在片段写缓存310中,片段写缓存310队列加密的缓冲区,以便进一步处理,包括将加密缓冲区写入存储器210中。在一个实施例中,片段写缓存310中的加密缓冲区还可供输出模块206和/或流模块214读取。
在框410,媒体设备确定存储在加密缓冲区缓存中的一个或多个缓冲区是否已经达写限制。例如,确定存储在加密缓冲区缓存中的一个或多个缓冲区是否达到写限制包括:确定是否已经达到特定的时限,或某一数量的加密缓冲区当前已经存储在加密缓冲区缓存中以并且尚未写入存储器。
如果,在框410中,媒体设备确定未达到写限制,则在框408中,媒体设备可以继续新接收、加密缓冲区,并将新加密的存储在加密缓冲区缓存中。
如果,在框410,媒体设备确定存储在加密缓冲区缓存中的一个或多个加密缓冲区达到写限制,则在框412该媒体设备将存储在缓冲区缓存中的一个或多个加密缓冲区写入存储器。例如,媒体设备102可以将缓冲区写入存储器210。在一个实施例中,将缓冲区写入存储210可以包括修改与存储在内存212中的缓冲区相关联的值以指示该缓冲区已写入存储器210。
5.2在媒体设备播放媒体内容
除其它特性之外,媒体设备102被配置成接收和处理播放媒体内容的请求。例如,用户可请求使媒体设备102播放特定媒体内容,该特定媒体内容是由媒体设备使用媒体设备的一个或多个调谐器从内容源106接收的。作为另一示例,单独的客户端设备可以请求播放可从单独的媒体设备102流传输的内容。在一个实施例中,请求的媒体内容流可被媒体设备使用媒体内容流水线(例如上述的媒体内容流水线300)接收和处理。
概念上,用户可请求在相对于作为整体的媒体内容流的三个时间段中的一个处播放媒体内容流:(1)在流中的直播点或最当前播放点处;(2)在直播点后面但仍是其附近的播放点处(例如,其中用于播放点的缓冲区仍然存储在由媒体内容流水线管理的缓存中);以及(3)在不在直播点附近的播放点处(例如,其中用于播放点的缓冲区已经被媒体内容流水线处理,写入磁盘,并且不再存储在由媒体内容流水线保持的缓存中)。在一个实施例中,媒体内容流水线可将数据提供给输出模块206和/或流模块214,以取决于用户请求播放的媒体内容流在内容流的位置而在媒体设备播放来自不同源的媒体内容流。
在一个实施例中,如果用户请求在媒体内容流的直播点处或附近播放媒体内容流,那么媒体设备可以在许多不同模式中的任一模式中访问用于媒体内容流的数据,其中每一种模式均可以或可以不绕过本文所描述通过媒体内容流水线处理媒体内容流。
作为一个示例,当在直播点或附近播放时,输出模块206可以直接读取由输入模块202接收的数据。由输入模块202接收的数据可以如上所述仍然可以由媒体内容流水线的组件进行处理和以其它方式管理,然而,输出模块206可以从输入模块202直接访问数据,而不是从片段写缓存310或流水线的其它组件。然而,因为输入模块202在可用来存储进入数据流的空间量方面是有限的,因此从输入模块202直接取回用于媒体内容流的数据的能力可能只对在直播点或附近播放媒体内容流的请求起作用。此外,如果媒体设备不被允许从输入模块直接访问数据,那么为输入模块预留的内存尺寸可以减少并且用于系统的其它部分。
作为另一示例,输入模块202可从内容源接收媒体内容并编码媒体内容,并且将已编码的媒体内容数据存储在内存为输入模块202预留的部分中。此外,内存为输入模块202预留的部分可以通过使用DMA或其它技术而被输出模块206直接访问。在此示例中,来自输入模块202的由输出模块206读取的数据可以完全绕过媒体内容流水线。在一些情况下,这个过程可以被称作媒体内容数据的“现场解码”。
作为又一个示例,输出模块206可以从由片段写缓存310管理的内存缓冲区读取直播点处或附近的数据。总的来说,可使用读取和播放直播点或附近的媒体内容的一个或多个模式中的任一个,例如,这取决于当前播放点离直播点确切多远。此外,模式的各种组合可在特定实施方案中使用,并且在同一实施方案中可以共存。
如上所述,由媒体设备接收到的在媒体内容流的直播点或附近播放媒体内容的请求反而可以至少部分地由存储在由媒体内容流水线管理的缓存中的一个或多个缓冲区中的数据来满足。例如,媒体设备的程序逻辑可以被配置为取决于所请求的播放点在媒体内容流中后退多远以及当前存储在缓存中的是媒体内容流哪个部分而从缓存或从磁盘取回用于回放的数据。
在一个实施例中,对于媒体内容流内的播放点的请求可以由媒体内容流水线的控制对象接收,该控制对象调用一个返回存储用于所请求的播放点的数据的一个或多个缓冲区的函数。该函数可以首先检查存储用于所请求的播放点中的数据的缓冲区在由媒体内容流的媒体内容流水线保持的加密缓冲区的列表中(例如,在片段写缓存310中)是否可用。例如,该功能可以利用时间戳或与该请求相关联的缓冲区序号检查播放点在缓冲区的列表中是否可用。如果所请求的一个或多个缓冲区在加密缓冲区的列表中可用,那么缓冲区可以从内存被解密并作为解密缓冲区返回到输出模块用于解码和显示。
如果用于所请求的播放点的缓冲区在加密缓冲区的列表中不可用(例如,因为该缓冲区已经写入磁盘并且已经从缓冲区的缓存列表期满),则函数可替代地从磁盘存储器取回缓冲区。因为媒体内容流水线处理缓冲区并将其作为相同大小的缓冲区存储在加密缓冲区缓存中并且存储在磁盘上,所以从缓存或磁盘返回的缓冲区可被输出模块类似地处理以显示内容。
总的来说,从一个源到另一个的过渡播放内容(例如,从辅助存储器到内存缓存,或从内存缓存到DMA)是无缝的并且可不被观看媒体内容的用户发觉(例如,播放给用户的内容没有中断或突变)。
5.3媒体内容流
图5示出根据一个或多个实施例的用于将媒体内容从媒体设备流传输到一个或多个客户端设备的流程图。图5中示出的步骤可以重新安排或省略。此外,图5中未示出的附加步骤可以根据一个或多个实施例来执行。因此,图5中示出的步骤的选择或安排不应该被解释为限制。在一个实施例中,图5中示出的一个或多个步骤可以与图4中示出的示例流程图的步骤同时进行。例如,媒体设备可以接收、加密、并且存储一个或多个媒体内容数据流,如图4的示例流程图所示,并且同时接收来自一个或多个客户端设备的将媒体内容数据流发送到客户端设备的请求。
在框502,媒体设备从客户端设备接收针对媒体内容流的请求。例如,客户端设备104可被配置成提供屏幕显示并从用户接收选择在客户端设备播放的特定媒体内容项的用户命令。例如,用户可以导航屏幕显示,以获取关于用户感兴趣的媒体内容项的信息,并播放所选择的媒体内容项。关于可用媒体内容项的信息可能由客户端设备104从媒体设备102和/或服务提供者108获得。
关于可用媒体内容项的信息可以包括地址(例如,信道、统一资源定位符、文件名、媒体数据数据库、媒体服务器、媒体分发系统等),媒体内容项可以从地址流传输或以其它方式访问。如本文所描述可用编程信息可以包括可经由媒体设备102接收的媒体节目的可用性信息。例如,客户端设备104可以请求可能没有被存储在媒体设备102上,但是媒体设备102可以通过媒体设备的调谐器接收的直播电视广播。为了接收所请求的广播,媒体设备102可以分配一个或多个调谐器中的一个来接收直播广播,处理接收到的媒体内容(例如,如以上参考图4描述),并将内容流传输到请求的客户端设备104。在一些实施例中,多个媒体内容流可以由媒体设备102同时流传输到一个或多个不同的客户端设备104。
在一个实施例中,请求可以由客户端设备104产生,并被媒体设备102的协调访问所请求的媒体内容流的流模块214接收。该请求可以指定媒体内容流内的位置,这可以部分取决于在客户端设备接收到的用户输入。例如,客户端设备104的用户可以操纵菜单,并选择特定的信道用于在直播点播放。在这个示例中,客户端设备104将用于选择信道的媒体内容流,并且指示媒体内容流中的当前直播点作为流中的请求位置的请求发送到媒体设备102。作为另一个示例,在用户选择用于观看的特定信道之后,客户端设备104的用户可以在客户端设备104提供输入以倒退、暂停或在不同于直播点的播放点处播放选择的媒体内容。在这个示例中,指定的位置可以是媒体内容流内的直播点之前的一些点。在一个实施例中,媒体内容流内的位置可以通过时间戳、缓冲区排序值或指示媒体内容流内的位置的任何其它值进行指定。
在框504中,媒体设备确定对应于媒体内容流中的指定位置的媒体内容流的缓冲区当前是否存储在内存缓冲区缓存中。确定媒体内容流中的指定位置当前是否被存储在缓冲区缓存中可以包括将表示指定的位置的值与元数据或与存储的与缓冲区缓存中的缓冲区相关联的其它信息相比较。
如果,在框504,媒体设备确定对应于所请求的位置的缓冲区当前被存储在缓冲区缓存中,则媒体设备从缓冲区缓存取回缓冲区,以及可能的一个或多个周围缓冲区。如果,在框504,媒体设备确定对应于所请求的位置的缓冲区没有存储在缓冲区缓存中,则媒体设备从存储器取回缓冲区和可能的一个或多个周围缓冲区。例如,媒体设备102可能已经将对应于指定位置的缓冲区写入存储器210,并从内存212释放缓冲区。在这种情况下,媒体设备102可以从存储器210而不是内存212取回缓冲区。
在框510,媒体设备发送一个或多个缓冲区到客户端设备。例如,媒体设备102的流模块214可以经由一个或多个有线或无线网络链路从媒体内容流水线300接收一个或多个缓冲区并且将一个或多个缓冲区发送到客户端设备104。媒体设备102可以将一个或多个缓冲区直接发送到请求客户端设备104,或者一个或多个缓冲区可经由一个或多个中间设备被传递到客户端设备104。
图4和图5的示例处理流程示出使用媒体内容流水线在媒体设备播放媒体内容项和/或将媒体内容项流传输到客户端设备。在一个实施例中,任何数量的媒体设备和/或客户端设备可以同时播放和/或流传输相同的媒体内容项,并且每个设备可以从不同的播放点播放或流传输媒体内容项。例如,媒体设备可以使用本文描述的媒体内容流水线接收并处理媒体内容流,并且从存储在内存缓存中的缓冲区同时播放媒体内容流到输出设备。同时,第一客户端设备可以从相同的播放点播放相同的媒体内容流并且从相同点流传输作为媒体设备的内存缓存中的媒体内容。此外,第二客户端设备可以从不同的播放点(例如,媒体设备和第一客户端设备的播放点之后10分钟)同时播放相同的媒体内容流并从不同的播放点流传输媒体内容,无论是从内存缓存的不同部分或从辅助存储器。
在一个实施例中,主机媒体设备可以通过保持从相同媒体内容流播放的每个媒体设备和客户端设备的“读取环境”来管理针对单独的设备的许多不同的播放点。例如,对于从主机媒体设备流传输特定的媒体内容流的每个客户端设备,主机媒体设备可以跟踪该客户端设备的当前读取位置,其可包括对内存缓存中的缓冲区或辅助存储器中的位置的引用。主机媒体设备还可以存储指示哪些缓冲区当前由特定的客户端设备使用的信息和其它状态信息。
在一个实施例中,响应于客户端设备访问存储在缓冲区缓存中的缓冲区,媒体设备可以“保留”缓冲区,并等到确定任何和所有媒体设备/客户端设备已停止访问缓冲区时从内存缓存释放缓冲区。例如,如果媒体设备和从媒体设备流传输媒体内容的客户端设备目前正在访问相同的缓冲区,那么媒体设备可以存储“引用计数”或指示两个设备当前正访问缓冲区的其它值。当每个设备停止访问缓冲区时,引用计数可以减少,直到没有设备当前正访问缓冲区,此时媒体设备可以从内存缓存释放缓冲区。以这种方式,当多个设备访问内存缓存中的相同缓冲区时,一般只有缓冲区的一个副本存在于缓存中,并可坚持在缓存中直到所有设备已停止访问缓冲区之后的某个时间。
实施例包括计算机可读存储介质,计算机可读存储介质储存软件指令,当被一个或多个处理器执行时软件指令施行前述任何一种方法。
实施例包括一种装置,其包含处理器并被配置成施行前述方法的任何一个。
需要注意的是,尽管单独的实施例在本文中被讨论,但是本文所讨论的实施例和/或部分实施例的任何组合可以被组合以形成更多的实施例。
6.0实施机构-硬件概述
根据一个实施例,本文描述的技术通过一个或多个专用计算设备实施。专用计算设备可以被硬连线以执行技术,或者可以包括数字电子设备,例如一个或多个专用集成电路(ASIC)或被持续编程以执行技术的现场可编程门阵列(FPGA),或者可以包括被编程以根据在固件、内存、其它存储器、或组合中的程序指令执行技术的一个或多个通用硬件处理器。这种专用计算设备还可以将硬连线逻辑、ASIC、FPGA与自定义编程结合以实现技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、网络设备、或并入硬连线和/或程序逻辑以实施技术的任何其它设备。
例如,图6是示出了可在其上实施本发明的实施例的计算机系统600的框图。计算机系统600包括总线602或用于信息通信的其它通信机构、以及与总线602耦接并用于处理信息的硬件处理器604。硬件处理器604可以是,例如,通用微处理器。
计算机系统600还包括主内存606,诸如随机存取内存(RAM)或其它动态存储设备,其耦接到总线602用于存储将被处理器604执行的信息和指令。主内存606也可用于存储在处理器604执行待被执行的指令期间的临时变量或其它中间信息。这样的指令,当存储在处理器604可访问的永久存储介质中时,使计算机系统600成为被定制以执行指令中所指定的操作的专用机器。
计算机系统600还包括只读内存(ROM)608或其它静态存储设备,其耦接至总线602,用于存储用于处理器604的静态信息和指令。存储设备610,如磁盘、光盘、闪存盘等,被提供并耦接到总线602用于存储信息和指令。
计算机系统600可以经由总线602耦接到显示器612,诸如阴极射线管(CRT),用于向计算机用户显示信息。包括字母数字和其它键的输入设备614耦接至总线602,用于将信息和命令选择传送到处理器604。用户输入设备的另一种类型是光标控制装置616,诸如鼠标、跟踪球、或光标方向键,用于将方向信息和命令选择传送到处理器604并控制显示器612上的光标移动。这个输入设备通常具有在两个轴线(第一轴线(例如x)和第二轴线(例如y))上的两个自由度,允许设备指定平面中的位置。
计算机系统600可以使用与计算机系统组合而导致或编程计算机系统600成为专用机器的定制硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实施文中描述的技术。根据一个实施例,计算机系统600响应于处理器604执行包含在主内存606中的一个或多个指令的一个或多个序列而执行文中的技术。这类指令可从另一个存储介质(例如存储设备610)读入到主内存606。包含在主内存606中指令序列的执行使得处理器604执行文中描述的处理步骤。在替代实施例中,硬连线电路可以代替或者与软件指令组合使用。
如本文所用的术语“存储媒介”指的是存储导致机器以特定方式操作的数据和/或指令的任何永久媒介。这类存储媒介可以包含非易失性媒介和/或易失性媒介。非易失性媒介包括例如光盘或磁盘,如存储设备610。易失性媒介包括动态存储器,诸如主内存606。存储媒介的常见形式包括,例如,软盘、柔性盘、硬盘、固态驱动器、磁带、或任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、任何具有孔图案的实体介质、RAM、PROM和EPROM、快擦编程只读内存、NVRAM、任何其它内存芯片或胶卷盒。
存储媒介与传输媒介不同但可以与传输媒介结合使用。传输媒介参与存储媒介之间的信息传送。例如,传输媒介包括同轴电缆、铜线和光纤,包括包含总线602的电线。传输媒介还可以采取声波或光波的形式,如在无线电波和红外线数据通信中产生的那些声波或光波。
媒介的各种形式可以涉及携带一个或多个指令的一个或多个序列到处理器604以供执行。例如,指令最初可以携带在远程计算机的磁盘或在固态驱动器上。远程计算机可以将指令加载到其动态内存中并且使用调制解调器通过电话线发送指令。计算机系统600的本地调制解调器可以接收电话线上的数据并使用红外发射器将数据转换为红外信号。红外线检测器可以接收红外信号携带的数据并且适当的电路能够将数据放置在总线602上。总线602将数据携带到主内存606,处理器604从主内存606取回并执行指令。由主内存606接收的指令可在被处理器604执行之前或之后存储选择地存储在存储设备610上。
计算机系统600还包括耦接到总线602的通信接口618。通信接口618提供双向数据通信,双向数据通信耦接到连接到本地网络622的网络链路620。例如,通信接口618可以是综合服务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,以向相应类型的电话线提供数据通信连接。作为另一示例,通信接口618可以是局域网(LAN)卡,以向兼容LAN提供数据通信连接。无线链路也可以被实施。在任何这种实施方案中,通信接口618发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
网络链路620通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路620可以通过本地网络622向主机计算机624或由因特网服务提供者(ISP)626操作的数据设备提供连接。ISP 626转而通过现在通常被称为“互联网”628的全球分组数据通信网络提供数据通信服务。本地网络622和因特网628都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号、在网络链路620上和通过将数字数据带入和带出计算机系统600的通信接口618的信号,都是传输媒介的示例形式。
计算机系统600可以通过(多个)网络、网络链路620和通信接口618发送消息和接收包括程序代码的数据。在因特网示例中,服务器630可以通过因特网628,ISP 626、本地网络622和通信接口618发射所请求的应用程序的代码。
接收的代码可在被接收时由处理器604执行,和/或存储在存储设备610或其它非易失性存储器,用于之后执行。
在一个实施例中,文中描述的一些或所有系统可以是或包含服务器计算机系统,其包括共同实施作为一组服务器侧过程的系统的各种组件的一个或多个服务器计算机设备。服务器计算机系统可以包括web服务器、应用服务器、数据库服务器、和/或所描绘的组件用来提供所描述的功能的其它常规服务器组件。服务器计算机系统可以接收包含来自任何多种源的输入数据的基于网络的通信,源包括但不限于用户可操作的客户端计算设备,诸如台式计算机、平板电脑或智能手机、遥感设备、和/或其它服务器计算机系统。
在一个实施例中,某些服务器组件可以全部或部分地使用通过一个或多个网络(例如因特网)耦接到系统的基于“云”的组件来实施。基于云的组件可以暴露接口,它们通过接口向系统的其它组件提供处理、存储、软件、和/或其它资源。在一个实施例中,基于云的组件可以被第三第三方实体实施,第三方实体代表组件为之部署的另一个实体。在其它实施方案中,然而,所描述的系统可以完全由单一实体所拥有和操作的计算机系统来实现。
7.0扩展和替换
本文所用的术语“第一”、“第二”、“某些”和“特定的”被用作命名约定以将问题、计划、表示、步骤、对象、设备或其它项目彼此区分,从而使得在引入这些项目后可以引用这些项目。除非本文另有说明,这些术语的使用并不意味着是所引用的项目的排序、定时、或任何其它特性。
在前述的说明书中,已经参照根据不同实施方案而改变的许多具体的细节描述了本发明的实施例。因此,关于本发明是什么以及申请人意欲本发明是什么的唯一和独有的指示,是本申请发布的权利要求组,在本申请中这样的权利要求采用特定形式发布,包括任何后续修正。对此,尽管本申请的权利要求中提出了具体权利要求从属关系,但是应注意的是,本申请的从属权利要求的特征可以与其它从属权利要求的特征以及本申请的独立权利要求的特征适当组合,而不仅仅根据权利要求组中记载的具体从属关系。
对包含在这样的权利要求中的术语所明确作出的任何解释应规定如在权利要求中使用的这类术语的含义。因此,未在权利要求中明确记载的限定、元素、性质、特征、优点或特性不应以任何方式限制这类权利要求的范围。说明书和附图相应地被认为是说明性的而非限制性的。

Claims (9)

1.一种方法,所述方法包含:
通过媒体设备接收多个媒体内容数据流;
将所述多个媒体内容数据流中的特定媒体内容流的至少一部分存储在一个或多个内存缓冲区中;
从客户端设备接收针对所述特定媒体内容流的请求,所述请求指示所述特定媒体内容流内的位置;
响应于确定所述特定媒体内容流内的位置对应于所述一个或多个内存数据缓冲区中的特定缓冲区,而将所述特定缓冲区发送到所述客户端设备;
还包含对所述一个或多个内存缓冲区进行加密;
其中响应于确定一个或多个未加密的内存缓冲区已达到加密限制而对所述内存缓冲区进行加密,其中所述加密限制是以下中的一个或两个:时限、和当前存储的未加密的内存缓冲区的数量。
2.如权利要求1所述的方法,还包含在对所述一个或多个内存缓冲区进行加密之后,将所述一个或多个内存缓冲区存储到辅助存储设备。
3.如权利要求2所述的方法,其中响应于确定达到写期满限制而将所述一个或多个内存缓冲区存储在所述辅助存储设备中,其中所述写期满限制是以下中的一个或两个:时限和当前存储的内存数据缓冲区的数量。
4.如权利要求1所述的方法,还包含在未对所述一个或多个内存缓冲区进行加密的情况下将所述一个或多个内存缓冲区存储到辅助存储设备。
5.如权利要求1-4中任一项所述的方法,其中所述特定媒体内容流内的位置由缓冲区序号和时间戳中的一个或两个指示。
6.如权利要求1-4中任一项所述的方法,其中所述多个内存缓冲区的大小相同。
7.如权利要求1-4中任一项所述的方法,其中所述一个或多个内存缓冲区中的至少一个缓冲区用非媒体内容数据填补。
8.一种永久性计算机可读介质,该永久性计算机可读介质存储能够被用来施行如权利要求1-7中任一项所述的方法的一种设备执行的程序指令。
9.一种被配置成施行如权利要求1-7中任一项所述的方法的装置,所述装置包含至少部分由所述装置内的硬件实现的子系统。
CN201580026032.1A 2014-03-26 2015-03-26 多媒体流水线架构 Active CN106462490B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910789467.1A CN110543747B (zh) 2014-03-26 2015-03-26 多媒体流水线架构

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461970894P 2014-03-26 2014-03-26
US61/970,894 2014-03-26
US201461975001P 2014-04-03 2014-04-03
US61/975,001 2014-04-03
PCT/US2015/022861 WO2015148866A1 (en) 2014-03-26 2015-03-26 Multimedia pipeline architecture

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910789467.1A Division CN110543747B (zh) 2014-03-26 2015-03-26 多媒体流水线架构

Publications (2)

Publication Number Publication Date
CN106462490A CN106462490A (zh) 2017-02-22
CN106462490B true CN106462490B (zh) 2019-09-24

Family

ID=54192042

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580026032.1A Active CN106462490B (zh) 2014-03-26 2015-03-26 多媒体流水线架构
CN201910789467.1A Active CN110543747B (zh) 2014-03-26 2015-03-26 多媒体流水线架构

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910789467.1A Active CN110543747B (zh) 2014-03-26 2015-03-26 多媒体流水线架构

Country Status (6)

Country Link
US (2) US10169621B2 (zh)
EP (2) EP3419245B1 (zh)
JP (2) JP6393776B2 (zh)
CN (2) CN106462490B (zh)
PT (1) PT3419245T (zh)
WO (1) WO2015148866A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT3419245T (pt) * 2014-03-26 2021-11-04 Tivo Solutions Inc Arquitetura pipeline de conteúdo multimédia
US10855741B2 (en) * 2015-08-06 2020-12-01 Sensormatic Electronics, LLC System and method for multiplexed video stream decoding in web browser
US11310212B2 (en) 2016-07-27 2022-04-19 Comcast Cable Communications, Llc Segmented encryption for content delivery
CN108595109B (zh) * 2017-12-29 2021-06-29 郑州云海信息技术有限公司 一种基于Ceph分布式存储系统的多客户端写的方法
US11150920B2 (en) * 2018-05-25 2021-10-19 Vmware, Inc. 3D API redirection for virtual desktop infrastructure
US10819996B2 (en) * 2018-08-09 2020-10-27 Intel Corporation Technologies for increasing reporting granularity of media rendering data transfers
US10783080B2 (en) * 2018-10-29 2020-09-22 Arm Limited Cache maintenance operations in a data processing system
US10884933B2 (en) 2019-01-18 2021-01-05 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing pipeline-based accessing management in a storage server
US10944697B2 (en) * 2019-03-26 2021-03-09 Microsoft Technology Licensing, Llc Sliding window buffer for minimum local resource requirements
CN112668033B (zh) * 2019-10-15 2023-04-25 抖音视界有限公司 数据处理方法、装置及电子设备
CN115016741B (zh) 2022-07-15 2022-10-25 中国长江三峡集团有限公司 一种智能电力电子设备数据存储和传输系统及方法

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519693B1 (en) * 1989-08-23 2003-02-11 Delta Beta, Pty, Ltd. Method and system of program transmission optimization using a redundant transmission sequence
JP2945757B2 (ja) * 1989-09-08 1999-09-06 オースペックス システムズ インコーポレイテッド 多重装置オペレーティングシステムのアーキテクチャ
US5572645A (en) * 1994-03-01 1996-11-05 International Business Machines Corporation Buffer management policy for an on-demand video server
JP3698328B2 (ja) 1994-10-06 2005-09-21 本田技研工業株式会社 データ入力の保護方法
IL117133A (en) * 1996-02-14 1999-07-14 Olivr Corp Ltd Method and system for providing on-line virtual reality movies
US6806909B1 (en) * 1997-03-03 2004-10-19 Koninklijke Philips Electronics N.V. Seamless splicing of MPEG-2 multimedia data streams
US6483838B1 (en) * 1997-12-19 2002-11-19 Telefonaktiegolaget Lm Ericsson (Publ) Combined header parameter table for ATM node
US6233389B1 (en) * 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system
US6209024B1 (en) * 1999-04-05 2001-03-27 Diva Systems Corporation Method and apparatus for accessing an array of data storage devices by selectively assigning users to groups of users
US6381746B1 (en) * 1999-05-26 2002-04-30 Unisys Corporation Scaleable video system having shared control circuits for sending multiple video streams to respective sets of viewers
US6937599B1 (en) * 1999-10-21 2005-08-30 Matsushita Electric Industrial Co., Ltd. Data source, data conversion device, inverse data conversion device, auxiliary data file generation device, reception method, medium and information aggregate
US7213005B2 (en) * 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
US7051110B2 (en) * 1999-12-20 2006-05-23 Matsushita Electric Industrial Co., Ltd. Data reception/playback method and apparatus and data transmission method and apparatus for providing playback control functions
US20010048676A1 (en) * 2000-01-07 2001-12-06 Ray Jimenez Methods and apparatus for executing an audio attachment using an audio web retrieval telephone system
US6766376B2 (en) * 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US8595372B2 (en) * 2000-09-12 2013-11-26 Wag Acquisition, Llc Streaming media buffering system
EP1193962A1 (en) * 2000-09-21 2002-04-03 Siemens Aktiengesellschaft Transmission of real-time data from a network element to an application server with recovery method for link failure
WO2002027622A1 (en) * 2000-09-29 2002-04-04 Thomson Licensing S.A. Internet multimedia advertisement insertion system selection architecture
CN101883233B (zh) 2001-02-21 2012-10-03 联合视频制品公司 具有个人视频记录特征的交互式节目导视器的系统和方法
US20020161911A1 (en) * 2001-04-19 2002-10-31 Thomas Pinckney Systems and methods for efficient memory allocation for streaming of multimedia files
JP4667639B2 (ja) * 2001-05-10 2011-04-13 パナソニック株式会社 映像プロクシサーバ
US20050079477A1 (en) * 2001-11-01 2005-04-14 Automatic E-Learning, Llc Interactions for electronic learning system
US7681222B1 (en) * 2002-03-27 2010-03-16 Unisys Corporation Method of reducing disc workload in a video-on-demand system by seamlessly replacing memory-based video streams with disc-based video streams, and visa-versa
US20040198223A1 (en) * 2002-10-08 2004-10-07 Loh Weng Wah Flow control in a bluetooth wireless communication system
JP4497804B2 (ja) * 2002-10-08 2010-07-07 キヤノン株式会社 受信装置及び受信装置の制御方法
US7809252B2 (en) * 2003-04-09 2010-10-05 Corel Inc. Systems and methods for caching multimedia data
WO2005003921A2 (en) 2003-07-02 2005-01-13 Mediabolic, Inc. A networked personal video recording system
US7454120B2 (en) 2003-07-02 2008-11-18 Macrovision Corporation Methods and apparatus for client aggregation of television programming in a networked personal video recording system
KR101081729B1 (ko) * 2003-07-07 2011-11-08 로비 솔루션스 코포레이션 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안
US20050193235A1 (en) * 2003-08-05 2005-09-01 Miklos Sandorfi Emulated storage system
KR100608715B1 (ko) * 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
US7502796B2 (en) * 2004-06-16 2009-03-10 Solid Information Technology Oy Arrangement and method for optimizing performance and data safety in a highly available database system
US20060182425A1 (en) * 2005-02-11 2006-08-17 Paul Boerger Converting a still image to a plurality of video frame images
US7668914B2 (en) * 2005-03-28 2010-02-23 Alcatel Lucent Milestone synchronization in broadcast multimedia streams
JP2007068111A (ja) 2005-09-02 2007-03-15 Toshiba Corp 動画像再生装置、動画像再生方法及び動画像再生プログラム
JP2008009303A (ja) 2006-06-30 2008-01-17 Sony Corp コンテンツ配信サーバ及びコンテンツ配信方法
US8112702B2 (en) * 2008-02-19 2012-02-07 Google Inc. Annotating video intervals
US8624908B1 (en) 2008-06-27 2014-01-07 Rovi Guides, Inc. Systems and methods of transitioning from buffering video to recording video
CN102224500A (zh) * 2008-09-24 2011-10-19 法国电信公司 用于简化内容分析的利用简约描述调色板的内容分类
US8621044B2 (en) * 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
CN102460393B (zh) * 2009-05-01 2014-05-07 思杰系统有限公司 用于在虚拟存储资源之间建立云桥的系统和方法
US20110060812A1 (en) * 2009-09-10 2011-03-10 Level 3 Communications, Llc Cache server with extensible programming framework
US8954596B2 (en) 2010-04-02 2015-02-10 Netflix, Inc. Dynamic virtual chunking of streaming media content
CN102868908B (zh) * 2011-07-04 2015-05-20 哈尔滨融智达网络科技有限公司 高效流媒体播放方法和装置
US8478890B2 (en) * 2011-07-15 2013-07-02 Damaka, Inc. System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
US8719440B2 (en) * 2011-09-14 2014-05-06 Mobitv, Inc. Intelligent device media stream caching
JP5857591B2 (ja) 2011-09-29 2016-02-10 三菱電機株式会社 映像配信装置
US20130166922A1 (en) * 2011-12-23 2013-06-27 Ati Technologies Ulc Method and system for frame buffer protection
JP2013223090A (ja) 2012-04-16 2013-10-28 Sony Computer Entertainment Inc サーバ、クライアント装置、送信方法、番組再生方法、および配信システム
US9936267B2 (en) * 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
EP2893707B1 (en) * 2012-09-04 2020-10-21 TiVo Solutions Inc. Wireless media streaming system
US20140259038A1 (en) * 2013-03-07 2014-09-11 Rawllin International Inc. Demographic prediction channel
US9247316B2 (en) * 2013-04-23 2016-01-26 Microsoft Technology Licensing, Llc Protected media decoding using a secure operating system
EP2819345A1 (en) * 2013-06-25 2014-12-31 British Telecommunications public limited company Content distribution system and method
US9621963B2 (en) * 2014-01-28 2017-04-11 Dolby Laboratories Licensing Corporation Enabling delivery and synchronization of auxiliary content associated with multimedia data using essence-and-version identifier
PT3419245T (pt) * 2014-03-26 2021-11-04 Tivo Solutions Inc Arquitetura pipeline de conteúdo multimédia

Also Published As

Publication number Publication date
EP3123335B1 (en) 2018-08-29
US20150281297A1 (en) 2015-10-01
CN110543747A (zh) 2019-12-06
CN106462490A (zh) 2017-02-22
EP3419245B1 (en) 2021-09-01
WO2015148866A1 (en) 2015-10-01
EP3123335A4 (en) 2017-04-05
US10515235B2 (en) 2019-12-24
JP2018182771A (ja) 2018-11-15
CN110543747B (zh) 2023-07-21
US10169621B2 (en) 2019-01-01
EP3123335A1 (en) 2017-02-01
EP3419245A1 (en) 2018-12-26
JP2017517912A (ja) 2017-06-29
PT3419245T (pt) 2021-11-04
US20190073492A1 (en) 2019-03-07
JP6393776B2 (ja) 2018-09-19

Similar Documents

Publication Publication Date Title
CN106462490B (zh) 多媒体流水线架构
US10917449B2 (en) Systems, methods, and media for delivery of content
JP7284906B2 (ja) メディアコンテンツの配信および再生
US10958865B2 (en) Data segment service
US11363323B2 (en) Method and system for providing content
US9203816B2 (en) Controlling access to copies of media content by a client device
US20140108585A1 (en) Multimedia content management system
US20140223502A1 (en) Method of Operating an IP Client
US10015542B2 (en) Method and apparatus for secure storage and retrieval of live off disk media programs
US9942578B1 (en) Methods and apparatuses for a distributed live-on-demand (LOD) origin
US9465923B2 (en) Blackouts architecture
KR101187386B1 (ko) 브이오디 콘텐츠 채널을 통한 방송 서비스 시스템 및 방법
EP3217674A1 (en) Distributed cloud pvr

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170418

Address after: California, San Carlos, USA

Applicant after: TiVo Solutions Ltd

Address before: American California

Applicant before: TIVO Inc.

GR01 Patent grant
GR01 Patent grant