CN112106375B - 用于视频流式传输的差异媒体呈现描述 - Google Patents

用于视频流式传输的差异媒体呈现描述 Download PDF

Info

Publication number
CN112106375B
CN112106375B CN201980029217.6A CN201980029217A CN112106375B CN 112106375 B CN112106375 B CN 112106375B CN 201980029217 A CN201980029217 A CN 201980029217A CN 112106375 B CN112106375 B CN 112106375B
Authority
CN
China
Prior art keywords
media presentation
presentation description
client
instance
segments
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
CN201980029217.6A
Other languages
English (en)
Other versions
CN112106375A (zh
Inventor
Z·卡瓦
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.)
Hulu LLC
Original Assignee
Hulu 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 Hulu LLC filed Critical Hulu LLC
Publication of CN112106375A publication Critical patent/CN112106375A/zh
Application granted granted Critical
Publication of CN112106375B publication Critical patent/CN112106375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/765Media network packet handling intermediate
    • 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
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
    • 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/27Server based end-user applications
    • H04N21/278Content descriptor database or directory service for end-user access
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4314Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for fitting data in a restricted space on the screen, e.g. EPG data in a rectangular grid
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6175Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via Internet
    • 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/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • 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/81Monomedia components thereof
    • H04N21/8126Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts
    • H04N21/8133Monomedia components thereof involving additional data, e.g. news, sports, stocks, weather forecasts specifically related to the content, e.g. biography of the actors in a movie, detailed information about an article seen in a video program
    • 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
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在一些实施例中,一种方法向客户端发送针对媒体呈现的第一片段集合的媒体呈现描述的第一实例。媒体呈现描述的第一实例包括基于媒体呈现中的第一片段集合的状态信息。接收对媒体呈现描述的更新的请求,其中该请求包括状态信息。该方法使用状态信息来识别客户端已经在媒体呈现中接收到的最新片段。然后,该方法发送针对在媒体呈现中的最新片段之后发生的第二片段集合的媒体呈现描述的第二实例作为对媒体呈现描述的第一实例的更新。媒体呈现描述的第二实例排除了针对第一片段集合的信息的至少一部分。

Description

用于视频流式传输的差异媒体呈现描述
相关申请的交叉引用
本公开要求于2019年4月8日提交的标题为“Differential Media PresentationDescriptions For Video Streaming”的编号为16/378,300的美国非临时申请的优先权,该申请要求于2018年4月9日提交的标题为“Differential Manifests For VideoStreaming”的编号为62/654,964的美国临时申请的优先权。出于所有目的,该申请的全部内容通过引用全文并入本文。
背景技术
直播流式传输(live streaming)要求使用媒体呈现描述向客户端连续递送(delivery)片段。HTTP动态自适应流式传输(Dynamic Adaptive Streaming over HTTP,DASH)是一种类型的直播流式传输协议。在DASH中,客户端经由DASH规范中内置的轮询协议来获取片段信息。为了启用如程序重新启动、数字录像机(DVR)窗口和无缝翻转之类的特征,服务器连续地向媒体呈现描述发送更新,该更新包括从客户端加入流的时间以来的所有已知的流信息。新的媒体呈现描述包括用于附加片段的一些新信息,但是还包括所有已发送的先前信息,诸如流初始化信息和先前的片段。重复发送这种信息浪费服务器和客户端的计算时间以及带宽,因为在每个轮询请求中接收到的媒体呈现描述中只呈现非常少的新信息。
附图说明
图1描绘了根据一个实施例的用于多比特率(MBR)切换算法的系统。
图2描绘了根据一些实施例的客户端的更详细示例。
图3描绘了根据一些实施例的用于处理针对媒体呈现的初始加入请求的方法的简化流程图。
图4描绘了根据一些实施例的媒体呈现描述的示例。
图5描绘了根据一些实施例的用于处理媒体呈现描述的实例的方法的简化流程图。
图6描绘了根据一些实施例的扩展存储器中媒体呈现描述(in-memory mediapresentation description)的补丁的示例。
图7描绘了根据一些实施例的通过提供其标识符与存储器中媒体呈现描述中的任何时段都不匹配的新时段来扩展存储器中媒体呈现描述的补丁。
图8描绘了根据一些实施例的对于现有时段扩展存储器中媒体呈现描述并且还提供新时段的补丁。
图9描绘了根据一些实施例的媒体呈现。
图10描绘了根据一些实施例发生的调用表。
图11描绘了根据一些实施例的第二客户端的调用表。
图12描绘了根据一些实施例的示出故障恢复的调用表。
图13描绘了根据一个实施例的经由一个或多个通信网络与多个客户端设备通信的视频流式传输系统。
图14描绘了用于观看视频内容和广告的装置的示意图。
具体实施方式
本文描述了用于视频流式传输系统的技术。在下面的描述中,出于解释的目的,阐述了许多示例和具体细节,以便提供对一些实施例的透彻理解。如权利要求书所限定的一些实施例可以单独地或与下面描述的其它特征组合地包括这些示例中的一些或全部特征,并且还可以包括本文描述的特征和概念的修改和等同形式。
一些实施例计算可用于媒体呈现的第一信息与客户端已经接收到的第二信息的差异。然后,服务器仅将媒体呈现描述中的差异发送给客户端,以减少处理和传输成本。为了流式传输媒体呈现(诸如正在直播发生的媒体呈现),客户端需要在媒体呈现随着时间的推移而前进时从服务器连续接收描述媒体呈现的片段信息。按照惯例,通过使客户端定期地刷新客户端已接收到的媒体呈现描述来发送分段信息,其中刷新的媒体呈现描述将包含从当前时间点回到客户端加入时媒体呈现的原始开始的所有片段信息。随着媒体呈现的继续,媒体呈现描述的尺寸以用于更多片段的附加信息继续增长,这需要越来越多的时间在服务器侧生成并且需要越来越多的时间在客户端侧解析。另外,随着媒体呈现描述的增长,客户端使用越来越多的存储器来存储它。而且,刷新的媒体呈现描述中除最后几个片段以外的所有片段都将是客户端已经知道的信息的重复,从而造成数据传送越来越浪费。
更复杂的是,为了使客户端在程序之间具有无缝过渡体验,客户端无法重新初始化其媒体播放器,因为这会造成瞬时缓冲和播放黑屏并且用户看到黑屏。按照常规,通过使客户端在特定的开始时间加入流并将媒体呈现描述增长到最大窗口尺寸来解决这个问题,并且一旦媒体呈现描述达到这个最大尺寸,就在将新片段添加到末尾时从头开始移除旧片段。这种方法大大地增加了由媒体呈现描述所使用的高速缓存,因为用户可以加入任何程序并保留在流中,直到他们的授权到期为止,这可以意味着必须向客户端提供价值18小时的六小时媒体呈现描述,这增加了先前所述的对客户端和服务器的计算要求。
一些实施例使用基于差异的媒体呈现描述(MPD),其经由补丁连续地扩展媒体呈现描述。补丁向客户端提供新信息,而不包括所有先前发送的信息(例如,所有已知信息与客户端已接收到的信息之间的差异)。服务器将状态信息插入补丁中,客户端使用该补丁来请求接下来的一个或多个片段。使用状态信息,服务器可以知道客户端已经接收到什么信息并且仅发送新要求的信息。
DASH规范内对客户端扩展的时间线信息的唯一当前规定是对最后宣布的片段条目(S@r)使用负重复计数,其发信号通知具有相等持续时间的未来片段的可用性以及下一个片段信息在最后下载的片段的电影片段方框(movie fragment box,moof)内的包含关系。虽然这些规定允许由客户端延长时间线,但这些规定没有描述媒体呈现描述中的较大结构改变(诸如时段削减或附加事件流数据),因此客户端仍必须刷新整个媒体呈现描述来获取这个信息。为了弥合这一差距,一些实施例发送媒体呈现描述补丁。在客户端接收到媒体呈现描述补丁后,客户端使用该补丁来更新存储器中媒体呈现描述,而不是批量替换媒体呈现描述。
系统概述
图1描绘了根据一个实施例的用于多比特率(MBR)切换算法的系统100。系统100包括服务器102和客户端104。虽然示出了服务器102和客户端104的一个实例,但是可以使用服务器102和客户端104的多个实例。
服务器102可以将媒体呈现110递送给客户端104。在一个示例中,服务器102包括已经(或将要)以多个比特率进行编码的各种媒体呈现,诸如视频(例如,标题或节目)。例如,媒体呈现110已经被划分为编码器以从高到低的多个比特率进行编码的片段。如图所示,媒体呈现以不同的版本(即,比特率)存储为媒体呈现110-1(高比特率)、媒体呈现110-2(中等比特率)、…、和媒体呈现110-N(低比特率)。不同的比特率提供不同质量级别的视频。例如,较高比特率的视频将比中等比特率具有更高的质量,并且中等比特率将比较低比特率具有更高的质量。虽然描述了这些编码,但是各种实施例可以以任何数量的比特率包括不同的编码。
客户端104可以包括各种用户设备,诸如蜂窝电话、机顶盒、流式传输设备、个人计算机、平板计算机等。客户端104可以包括可以播放媒体呈现的媒体播放器106。例如,媒体播放器106可以播放视频和/或音频。
客户端104从服务器102接收媒体呈现。例如,客户端104(例如,媒体播放器106)可以从服务器102请求媒体呈现的片段。在接收媒体呈现的片段时,客户端104可以评估客户端104接收片段的带宽。客户端104可以执行的一个评估是测量在一段时间内接收到的媒体呈现(例如,视频)的量来估计可用带宽。
取决于可用带宽,客户端104可以决定请求媒体呈现的哪个比特率(或版本)。例如,MBR管理器108确定对于媒体呈现的片段请求媒体呈现的哪个版本。
MBR管理器108可以使用MBR算法来确定何时切换到媒体呈现的不同比特率版本。MBR算法分析可用带宽和可能的其它因素(例如,计算机处理单元负载),以确定何时切换到不同的比特率。例如,如果MBR算法确定可用比特率是2Mbps并且客户端104正在以1Mbps的比特率请求媒体呈现的片段,那么MBR算法可以确定客户端104应当请求以2Mbps编码的媒体呈现的片段。MBR系统可以使用媒体呈现描述来播放媒体呈现。
基于差异的媒体呈现描述
图2描绘了根据一些实施例的客户端104的更详细示例。诸如包括HTTP动态自适应流式传输(DASH)的协议规范之类的传输机制(也被称为MPEG-DASH)可以被用于将媒体呈现的片段运输到客户端104。但是,也可以使用HTTP直播流式传输(HTTP Live Streaming,HLS)或其它协议。客户端104可以使用基于差异的媒体呈现描述处理来请求媒体呈现的片段。基于差异的媒体呈现描述的使用允许视频递送系统更好地缩放,诸如向用户提供媒体呈现的线性时间表的直播视频服务的缩放。
客户端104可以使用两种类型的请求:加入(join)和补丁(patch)。加入请求可以加入用于媒体呈现的直播流。而且,补丁请求可以请求对媒体呈现描述的补丁。例如,客户端104的媒体呈现描述处理器202从服务器102请求对媒体呈现描述的补丁。而且,媒体呈现描述处理器202处理补丁并更新存储器206中的存储器中媒体呈现描述208。存储器206可以在客户端104的本地存储器中,但是也可以是附接到客户端104的存储器。存储器中媒体呈现描述208是客户端104存储在存储器206中的媒体呈现描述的版本。存储器中媒体呈现描述208包括媒体呈现的片段的回放的时间线,并且客户端104可以将存储器中媒体呈现描述208的任何持续时间保持在存储器206中,从而为用户保持所有持续时间的节目的重新开始能力。经由补丁不断扩展存储器中媒体呈现描述208的时间线允许客户端104提供无缝翻转,同时减少用户的整体资源消耗,因为更新不包括已经接收到的片段的所有先前细节。通过客户端104管理存储器中媒体呈现描述208来提供无缝翻转。随着直播流中的时间前进超过逻辑媒体呈现边界点,如果客户端104具有存储在存储器中媒体呈现描述208中的两个媒体呈现的片段,那么客户端104客户端可以跨多个媒体呈现无缝地播放。
服务器102为客户端104提供未知的片段信息的更新。状态信息被用于跟踪每个不同客户端104已经接收到什么信息。例如,服务器102可以在发送到客户端104的每个通信(例如,补丁)中插入状态信息,该状态信息指示客户端104已经接收到什么信息。客户端104可以在向服务器102的下一个补丁请求中插入状态信息。然后,服务器102使用状态信息来确定客户端104已经从媒体呈现描述接收到什么信息,然后为客户端104选择用于下一个补丁更新的信息。使用状态信息,服务器102提供用于在客户端上更新存储器中媒体呈现描述208的补丁机制,并且服务器102保持对流时间线构造的完全控制。
差异补丁更新允许客户端104请求被用于更新存储器中媒体呈现描述208的补丁,而不是完全替换存储器中媒体呈现描述208。补丁可以被用于执行动作,诸如扩展存储器中媒体呈现描述208的时间线、在存储器中媒体呈现描述208中引入新的时段、截断/移除存储器中媒体呈现描述208中的现有时段、和/或在存储器中媒体呈现描述208中引入带内流事件。时段可以是片段的某种分组,其中直播流可以具有多个时段。带内流事件可以包含关于插入到流中的广告的信息,或者可以是其它插入内容。可以在广告插入时间段内开始新的时段。媒体呈现描述也可以被用于截断广告插入时段。使用状态信息,服务器102可以确定其先前已发送给每个个体客户端的所有内容。服务器102可以依赖于客户端104来协助其状态的持久性,但是服务器102可以不依赖于客户端104对此这个态执行操纵或者具体地操纵针对补丁的更新请求。除了在下一个补丁请求中插入状态信息之外,一些实施例对客户端104没有另外的要求。这将在下一个补丁中包括什么的决策留给了服务器102。
客户端104将直播流的媒体呈现描述的完整时间线保留在存储器206中。被包含在存储器中媒体呈现描述208内的时间线是由客户端104引用的媒体呈现描述,以继续进行媒体呈现的回放。例如,客户端104使用存储器中媒体呈现描述208中的链接来请求媒体呈现的片段。存储器中媒体呈现描述208可以以不同的格式存储。例如,考虑到客户端效率,不需要以完整的可扩展标记语言(XML)结构格式存储存储器中媒体呈现描述208,而是存储存储器中媒体呈现描述208使得保留所有定义的标识符并可以用于更新存储器中媒体呈现描述208。例如,客户端104可以知道它正在解析媒体呈现描述,并且将在媒体呈现描述中找到的相同结构信息存储在高效打包的数据结构中,该数据结构被优化为使用更少的存储器而不是使用在每次发送整个媒体呈现描述时需要的完整XML结构。
补丁更新最优地使用带宽更新,并减少服务器和客户端侧处理。由于直播流内最新的所有客户端104共享相同的未知信息集,因此对于大多数客户端而言,补丁更新将在服务器102(例如,边缘服务器)处高度可高速缓存(highly cacheable)。高度可高速缓存的更新可以意味着服务器102可以高速缓存补丁并将相同的补丁发送到多个客户端。例如,扩展以支持数千个同时进行的直播呈现本身可能需要大量的精力,因为平均四到十秒的片段持续时间意味着不断地重新生成媒体呈现描述。在这种情况下,虽然通常几分钟的缓冲区深度可以扩展,但覆盖直播呈现的经过全面训练的用户、内容和法律要求产生过多的置换集合,从而使大多数高速缓存结构无用。为了提供某种程度上可扩展的解决方案,服务器102可以尽可能地统一客户端媒体呈现描述的消费,但是设备计算和存储器能力的变化意味着最低公分母最终导致驱动流复杂性。在更强大的客户端设备可以轻松地处置超过六小时的缓冲区深度的多兆字节媒体呈现描述的情况下,最低端的客户端设备却在努力处理不到一小时内容的千字节媒体呈现描述。为了提供诸如体育赛事的完整节目回溯之类的特征并满足合同流限制要求,差异媒体呈现描述可以使呈现可缩放性与设备能力和流稳定性解耦。
初始媒体呈现描述处理
图3描绘了根据一些实施例的用于处理针对媒体呈现的初始加入请求的方法的简化流程图300。在302处,服务器102接收对媒体呈现的加入请求。加入请求是客户端104发出的第一媒体呈现描述请求。例如,客户端104可以发送对媒体呈现的直播流的初始回放的请求。客户端104的用户可以从实时服务中选择媒体呈现以在用户界面上回放。当客户端104加入直播流时,客户端104将请求从媒体呈现的开始到从服务器102回放媒体呈现的当前时间的一切。而且,加入请求指定客户端104具有处理媒体呈现描述的补丁的能力(与针对每个更新接收整个媒体呈现描述的传统方法相反)。例如,支持补丁处理的客户端104在初始请求中包括使得能够使用补丁的查询参数。
在304处,服务器102确定媒体呈现的回放的时间。媒体呈现可以刚刚开始回放,并且该时间是服务器102接收到请求时媒体呈现的开始。但是,服务器102可以在媒体呈现开始之后接收该请求,并且该时间可以是媒体呈现中间的某个时间。
在306处,服务器102在媒体呈现描述中插入用于回放媒体呈现的片段信息。为这个请求生成的媒体呈现描述包含从媒体呈现内用户权限的开始直到直播流的当前时间(例如,边缘)的所有片段信息。取决于媒体呈现处于已经直播的时间,直播流内可以有任何数量的内容时段和广告时段。因而,来自服务器102的媒体呈现描述的第一实例可以包含从所请求的开始时间已知的所有片段信息。发送媒体呈现描述的第一实例被称为初始媒体呈现描述。媒体呈现描述的后续实例可以被称为补丁或更新。
图4描绘了根据一些实施例的媒体呈现描述的示例400。在402处,媒体呈现描述包括一个时段id“foo-1”。这个时段具有两个适配集,一个在404处用于视频(id 1),并且另一个在406处用于音频(id 2)。在每个适配集内指定片段时间线,该片段时间线详细描述用于表示的片段信息。例如,片段时间线可以包括从时间t=0到时间t=60的片段。
返回参考图3,在308处,服务器102将状态信息插入媒体呈现描述中。例如,状态信息可以是片段的下一个位置。在图4中,在408处,服务器102已经设置了具有状态信息的“位置”标签,该状态信息是足以将客户端知道的最后信息告知服务器的信息。在这个示例中,该位置包括时间t=70的指示,以指示请求下一个片段的时间。在这种情况下,客户端104已经接收到直到片段t=60(其持续到t=70)的媒体呈现描述。位置标签可以以用于客户端104的统一资源定位符(URL)的形式描述下一个请求,但是这个信息的确切形式可能变化并且这个示例仅出于说明目的。例如,位置标签可以指示刚刚接收到t=60处的片段。然后在310处,服务器102向客户端104发送媒体呈现描述。在另一个实施例中,客户端104可以不宣布其具有处理对媒体呈现描述的补丁的能力并且服务器102仍然可以在兼容性信令描述符内主动提供状态信息,仅兼容的客户端处理该状态信息,而不兼容的客户端执行正常轮询并接收完整的媒体呈现描述。
补丁处理
客户端104接收对媒体呈现描述的补丁。图5描绘了根据一些实施例的用于处理媒体呈现描述的实例的方法的简化流程图500。在502处,客户端104从服务器102接收初始媒体呈现描述补丁。初始媒体呈现描述补丁可以包括用于一个或多个片段的信息,这取决于客户端104请求用于媒体呈现的直播流的时间。在504处,客户端104将用于直播流的回放的信息存储在存储器206中的存储器中媒体呈现描述208中。该信息可以包括来自媒体呈现描述400的时段和适配集。而且,在506处,客户端104将状态信息存储在存储器中媒体呈现描述208中。状态信息可以是到下一个补丁的链接。
在508处,当到达请求更新媒体呈现描述的时间时,客户端104发送具有状态信息的请求。客户端104可以基于更新时段开始对更新的轮询。如果客户端104在下一个片段可用之前开始轮询,那么客户端104可以接收指示下一个片段未准备好的响应,诸如指示内容不可用的“204无内容”响应。“204无内容”响应指示请求是有效的,但是基于客户端的当前时间线知识,目前没有附加的可用内容。客户端104通过在稍后的时间再次尝试查询来对这个状态代码做出反应,但是没有给出对于时间延迟的规范,因为原始更新时段应当已经描述了更新轮询节奏。
在510处,客户端104从服务器102接收对媒体呈现描述的补丁。补丁包括对存储器中媒体呈现描述208的更新。补丁可以更新存储器中媒体呈现描述208的不同方面,诸如补丁可以延长时间线、创建新时段、截断或移除时段、或者既创建新时段又延长时间线。在512处,客户端104然后使用补丁中的信息来更新存储器中媒体呈现描述208。
补丁示例
现在将描述补丁的不同示例。图6描绘了根据一些实施例的扩展存储器中媒体呈现描述208的补丁600的示例。如果在初始媒体呈现描述补丁(或加入请求)中将变量(诸如变量MPD@type)设置为“动态”,那么可以将对媒体呈现的更新作为补丁呈现给客户端。在602处,将诸如补丁中所需的基本特性描述符之类的特性描述符插入指示这个媒体呈现描述是补丁的媒体呈现描述中。这个基本特性描述符的标识符为“@schemeIdUri”,其可以等于“urn:com:hulu:schema:mpd:patch:2017”,但可以使用其它架构。仅当时间线被设置为使用补丁更新时,诸如存储器中MPD@type被设置为“动态”时,才可以使用基本特性描述符。这个基本特性描述符可能不呈现在图4中所示的初始媒体呈现描述中,因为初始媒体呈现描述必须是完整的描述。但是,由于后续补丁可能不包含语法上完整的媒体呈现描述结构,因此补丁包括特性描述符。即使补丁不包含整个结构,补丁也包含其适当层次结构中的元素,以允许与存储器中媒体呈现描述208进行明确合并。为了确保合并是明确的处理,补丁为所有层次结构元素提供了识别属性。不满足这个最低要求的补丁可能是无效的。在一些实施例中,服务器102可以选择将相同的初始媒体呈现描述提供给常规客户端104(例如,不使用补丁的客户端)和启用补丁的客户端104两者。在这种情况下,服务器102可以用补充特性描述符封住补丁位置408。这个补充特性描述符的标识符为“@schemeIdUri”,其可以等于“urn:com:hulu:schema:mpd:patch:2017”,但可以使用其它架构。
客户端104可以使用不同的方法将补丁更新合并到存储器中媒体呈现描述208中。例如,客户端104递归地遍历补丁结构中的元素,使用既定的识别属性将补丁中的元素与存储器中媒体呈现描述208中的元素进行匹配。属性可以是用于附加片段、新时段等的信息。如果补丁中的元素与存储器中媒体呈现描述208中的元素等效,那么客户端104将来自补丁元素中的属性应用于存储器中元素并且子节点被递归地合并。存储器中媒体呈现描述208和补丁中都存在的任何属性都采用补丁元素的值。如果元素可以包含的唯一子节点是文本节点,那么客户端104将补丁文本节点作为对存储器中时间线文本节点的替换。如果补丁中的元素在存储器中媒体呈现描述208中没有等效元素,那么客户端104将该元素视为新元素并将以该元素为补丁中的根的子树放置在存储器中媒体呈现描述208的适当层次结构中,其中对于该子树不要求进一步的遍历。如果补丁中的元素导致无效的存储器中时间线结构,那么客户端104可以忽略这个合并以及以该元素为根的补丁子树的其余部分。
在一些实施例中,客户端104将补丁合并到存储器中媒体呈现描述208中的处理可以如下:
·由客户端104使用既定的约束和属性来递归遍历该补丁,以识别存储器中媒体呈现描述208内在遍历期间等效的结构。
·对于补丁中的在存储器中媒体呈现描述208中具有等效元素的第一类型的任何元素(诸如xs:simpleType),补丁中的元素完全替换存储器中媒体呈现描述208中的元素。第一类型可以是单个元素。
·对于补丁中的在存储器中媒体呈现描述208中具有等效元素的第二类型的任何元素(诸如xs:complexType),补丁中的元素的属性被应用于存储器中媒体呈现描述208中的元素、替换任何现有值,并且将任何子序列与这个处理合并。第二类型可以是具有子元素的父元素。
·对于补丁中的在存储器中媒体呈现描述208中没有等效元素的任何元素,客户端104应当基于当前遍历的层次结构和既定的排序向存储器中媒体呈现描述208附加具有所述元素作为其根的子树,对于该子树不需要进一步遍历。
·如果补丁中的元素违反或可能造成存储器中媒体呈现描述208违反媒体呈现描述处理的结构要求,那么该元素和以该元素为补丁中的根的子树应当被客户端104忽略。
在一些实施例中,等效和序列排序的示例包括:
·可以通过@id属性的匹配来建立Period(时段)、AdaptationSet(适配集)和Representation(表示)元素的等效性。Period是包含多个AdaptationSet并定义了AdaptationSet组成的媒体时间线的一部分的元素。AdaptationSet是表示单个基本流类型(视频、音频、文本)的元素,该类型可以具有基于创建参数(编码比特率、分辨率等)而不同的多种表示。这个元素将包含从同一源生成的所有比特率变体。
·可以通过@t、@d和@r属性的组合来建立S元素的等效性和排序。这个S元素提供关于Representation内的片段或片段集的明确信息。它提供的信息被用于寻址和访问网段。
·通过实例限制来建立没有识别属性的元素(诸如SegmentTimeline(片段时间线))的等效性。这个元素包含由SegmentTimeline表示的媒体呈现时间的所有可能的S元素,并且,按照MPEG-DASH语义,对于给定的表示,仅允许存在一个SegmentTimeline。
·在没有规范定义的排序的新元素但是可以有多个实例的情况下,该元素被附加在匹配层次结构序列的末尾。例如,媒体呈现描述元素可以包含多个Period元素,但是它们的排序由解析次序决定,而不是由既定的排序逻辑决定,因此新的Period被附加到Period列表。
在图6中,根据一些实施例,补丁在604处将存储器中媒体呈现描述208扩展视频的两个片段,并且在606处扩展音频的四个片段。补丁为直接层次结构指定用于Period和AdaptationSets的标识符,然后为SegmentTemplate(片段模板)/SegmentTimeline的单数元素指定用于附加片段的信息。例如,Period id为“foo-1”,其与初始媒体呈现描述中的相同。当在AdaptationSet节点的正下方仅允许一个SegmentTemplate/SegmentTimeline时,合并是明确的并且不要求这些节点的明确标识符。客户端104将这些片段附加到存储器中片段列表的末尾,因为它们的识别开始时间值(例如,使用标识符S@t)与存储器中媒体呈现描述中的任何开始时间都不匹配。AdaptationSets包含时间为t=70和t=80的视频片段,持续时间为d=10个时间单位,以及t=70、t=75、t=80和t=85处的音频片段,持续时间为d=5个时间单位。
在608处,补丁包括新的状态信息,该新的状态信息是下一个补丁的位置。该位置将组合的已知信息嵌入URL。例如,这个URL包含关于视频时间线和音频时间线两者中存在的最终时间(例如,t=90)的信息,服务器102将使用该最终时间来构造下一个补丁。也就是说,t=90是下一个片段的开始时间。
另一个补丁示例可以添加新的时段。图7描绘了根据一些实施例的补丁700,该补丁700通过提供其标识符与存储器中媒体呈现描述208中的任何时段都不匹配的新时段来扩展存储器中媒体呈现描述208。在这个示例中,提供诸如Period@start属性之类的属性以将时段锚定在由存储器中媒体呈现描述208描述的媒体呈现时间线中;可替代地,可以省略Period@start,从而使得通过进行时间段的总和持续时间来暗示开始。在这个示例中,在702处,时段标识符是“foo-2”,其不同于先前时段的标识符“foo-1”,并且具有Period@start属性“PT70.OS”。这在704和706处以新AdaptationSets开始新的时段。
此外,补丁在708处包括新的状态信息,该新的状态信息是用于将组合的已知信息嵌入URL中的下一个补丁的位置。时间已经改变为t=90,因为这个时段在媒体时间线内t=70处开始,并且已经为该时段宣布了20秒的片段,从而使得下一个片段时间为t=90。
补丁的另一个示例还可以在时段中组合片段的扩展,并且还创建新的时段。图8描绘了根据一些实施例的补丁800,补丁800对于现有时段扩展存储器中媒体呈现描述208,并且还提供新时段。补丁800在802处用附加片段更新当前时段。这个更新类似于图6中的更新。而且,在804处,补丁800定义具有新片段的新时段。这个更新类似于图7中的更新。此外,补丁800在806处包括新的状态信息,该新的状态信息是用于将组合的已知信息嵌入URL中的下一个补丁的位置。随着现有时段被延长10秒,时间已经改变为t=90,并且新时段在t=80处开始并且宣布10秒的片段,从而使下一个片段时间为t=90。
示例
在以下示例中,客户端104正在媒体呈现期间加入直播流。图9描绘了根据一些实施例的媒体呈现900。媒体呈现包括三个时间单位长的个体片段“a”至“j”,每个片段固定在特定的时间t并且在经过t+3个时间单位后可供客户段使用。例如,片段d被固定在t=9处并且服务器102使片段d在t=12处可供客户端104使用(例如,当片段d的所有内容都可用时)。为了这个示例的目的,假设加入请求的路径具有与以下URL链接类似的形式:“https://livestream.company.com/dash/live/CTN.mpd”。为简单起见,URL中省略了认证和客户端能力查询串组件,但其它实施方式可以包含它们。
当客户端104加入用于这个媒体呈现的直播流时,服务器102向客户端104发送URL“https://livestream.company.com/dash/live/CTN.mpd?start=0&supp orts_patching=true”。客户端104可以使用该URL来发起其媒体呈现的回放。URL识别用于媒体呈现的直播流,并且指示客户端104支持本文描述的补丁更新处理。
取决于客户端加入流的时间t,客户端将接收不同数量的片段和下一个位置URL,如下所示。如果客户端104在t=3处加入,那么所得的媒体呈现描述将仅包含片段a。状态信息可以是以下的下一个位置URL:https://livestream.company.com/dash/live/CTN.mpd?t=3。将时间t=3插入URL中向服务器102指示客户端104在其存储器中媒体呈现描述208中具有直到时间t=3为止的信息。如果客户端104在t=12处加入,那么所得的媒体呈现描述将包含片段:a、b、c和d。状态信息可以是以下下一个位置URL:https://livestream.company.com/dash/live/CTN.mpd?t=12。将时间t=12插入URL中向服务器102指示客户端104在其存储器中媒体呈现描述208中具有直到时间t=12为止的信息。
客户端104然后将使用时段(诸如由参数MPD@minimumUpdatePeriod指定的时段)开始轮询对所供应的下一个位置URL的更新。如果客户端104在已知时间之后的下一个片段之前进行了轮询,那么它将收到204响应,否则响应是包含任何新发布的片段和将在其中继续轮询的更新后的下一个位置的补丁。
如果客户端104在t=12处加入并且以三个时间单位节奏进行轮询,那么图10描绘了根据一些实施例发生的调用表1000。第一列1002指示执行URL请求的时间t,第二列1004指示请求的URL,第三列1006指示为媒体呈现返回的片段,并且第四列1008指示下一个位置URL。第一调用是加入请求并且服务器102将检索片段a、b、c和d并向客户端104发送这些检索片段。状态信息可以是指示位置为t=12的下一个位置URL,如在1010处的列1008中所示。之后,客户端104使用1010处的URL请求并接收片段e。媒体呈现描述不包括用于片段a、b、c和d的信息。补丁更新中的下一个位置将是在1012处指示位置为t=15的URL。随着客户端104请求并接收用于片段f、g、h、i和j的补丁以及接下来的位置URL,这个处理继续进行。
在t=30处的调用之后,客户端104已经接收到节目的所有片段,并且将用于这些片段的信息存储在存储器中媒体呈现描述208中。现在,如果用户有权这样做,那么客户端104可以在媒体呈现中的任何位置进行搜索。由于客户端104可以通过针对在当前媒体呈现结束之后发生的附加媒体呈现继续请求补丁来继续扩展存储器中媒体呈现描述208超出这个媒体呈现,因此不会改变无缝的节目翻转。例如,对直播流的下一个媒体呈现可以开始,并且客户端104可以请求用于那个媒体呈现的片段。
在某个点,诸如由于环境限制,客户端104可以从存储器中媒体呈现描述208中逐出信息。可以使用不同机制用于这种驱逐。例如,如果客户端104上没有计算限制,那么理论上它可以无限期地保留存储器中媒体呈现描述208的所有部分,但是在实践中,由于权限限制和设备存储器限制,这种持久性可能是不切实际的。为了确保观察到所阐述的任何可用性限制和客户端104的持续稳定性,客户端104可以定期地从存储器中媒体呈现描述208中逐出信息。
如由服务器102或另一个实体(例如,媒体呈现的所有者)用信号通知的片段可用性可以被用作主要驱逐指示符。如果片段变得不可用,那么客户端104可以将其从存储器中媒体呈现描述208中移除,因为该片段不再可用于回放。辅助驱逐指示器可以是存储器中媒体呈现描述208的总尺寸。如果客户端104检测到存储器中媒体呈现描述208的尺寸超过客户端指定的阈值,那么客户端104可以选择从存储器中媒体呈现描述208的开头移除片段,而不管其可用性如何,以确保客户端稳定性。
如果从存储器中媒体呈现描述208中移除任何片段,那么客户端104可以更新存储器中媒体呈现描述208内的所有信息,使得其余元素保持有效。如果片段移除导致空的层次结构(诸如没有片段的Period),那么客户端104也可以出于对存储器管理的目的而移除整个层次结构。
可高速缓存性
客户端104用于请求片段的URL包含固定在初始节目加入时间的开始时间。这意味着,即使所有客户端104在每次刷新时都发现相同的新信息,在某个时间段(诸如过去24小时)期间已经开始的每个节目都具有唯一的URL。客户端104可以接收相同的已知信息,因为这意味着客户端104可以总是查询相同的新流信息。因此,无论客户端104在直播流上停留了多长时间,客户端104都可以接收所有其它客户端104的相同信息更新。
在一个示例中,第一客户端104可以具有图10中描绘的调用模式。如果第二客户端104在t=19处以三个时间单位的轮询时间加入,那么图11描绘了根据一些实施例的第二客户端的调用表1100。第二客户端104的第一加入请求将检索片段a、b、c、d、e和f。媒体呈现描述中的下一个位置将是在1110处指示位置为t=18的URL。之后,第二客户端104使用该URL请求并接收片段g。媒体呈现描述中的下一个位置将是在1112处指示位置为t=21的URL。这个处理一直持续到第二客户端104接收到片段j为止。
在初始加入请求之后,第二客户端104与第一客户端104(其调用模式在图10中示出的客户端)共享相同的已知信息。例如,从这时起,第二客户端104使用相同的URL查询相同的补丁,并且能够接收与第一客户端104相同的响应。也就是说,第一客户端104和第二客户端104两者都使用相同的下一个位置URL来发送对片段g的请求。因为在片段完成发布之前该片段不可用,所以补丁是新信息的有效表示,直到下一个预期的片段发布时间为止,因此可以被高速缓存,直到该下一个预期的时间为止。例如,补丁可以被高速缓存在响应于客户端请求的边缘服务器处。
故障恢复
以上示例假设完美的客户端轮询行为,但是在实际中,由于诸如资源争用或网络故障之类的情况,客户端104可能在轮询期间遇到错误。在这种情况下,服务器102在下一个请求中返回用于媒体呈现的最新发布的信息。由于客户端104正在提供媒体呈现描述中的哪些信息已经被接收并被存储在存储器中媒体呈现描述208中的上下文,因此服务器102能够在发生错误之后满足请求并发送用于媒体呈现的所有最新发布的信息。图12描绘了根据一些实施例的示出故障恢复的调用表1200。在这个示例中,第三客户端104在时间t=19处加入直播流,并且第三客户端104接收片段a、b、c、d、e和f。但是,在1210处发生网络错误,并且第三客户端104没有接收到片段g。即,由于网络状况,在时间t=22处的第一补丁请求失败,并且第三客户端104可以等待完整的更新时段以再次尝试(或者可以保持尝试)。
一旦经过了完整的更新时段,第三客户端104就发送包括时间t=18的补丁请求。第一故障之后的t=18片段已在服务器102(或边缘高速缓存)处到期,因此服务器102生成新的补丁,该新的补丁具有第三客户端104不具有的所有新片段,即,片段g和h,以及反映时间t=24的这两个片段的已获知识的下一个位置。在这种情况下,服务器102从请求中的t=18的状态得知第三客户端104包括直到片段f的片段。因此,服务器102可以确定第三客户端104需要片段g和h。然后,在时间t=28处,因为具有位置t=24的下一个请求与其它客户端相同,所以第三客户端104回到1212与其它客户端共享更新高速缓存。即使针对时间t=18的补丁请求的边缘高速缓存未及时到期,嵌入在高速缓存的响应中的服务器102的下一个位置请求URL仍正确表示第三客户端104必须作出的下一个请求,这意味着第三客户端104将永远不会跳过补丁和错过关于媒体呈现描述的信息。
向后兼容性
由于补丁中返回的信息最少,因此为客户端104提供的理解动态补丁方法的更新不能与不使用动态补丁方法的客户端104向后兼容。为了处置具有两种类型的客户端的环境,服务提供商可以选择在这些客户端104之间明确地分离或者共享媒体呈现描述。
如果服务提供商希望提供明确分离的媒体呈现描述,那么它可以通过向客户端104提供发信号通知客户端兼容性的初始媒体呈现描述位置来实现。这个信号的一种形式是附加的查询串参数,但更复杂的形式可能需要不同的服务器路径或域名。
如果服务提供商希望提供共享的媒体呈现描述,那么它可以在原始媒体呈现描述内发信号通知补丁行为,并且与媒体呈现描述补丁行为相关的信号可以用SupplementalProperty的Supplemental(补充)特性元素(带有标识符@schemeIdUri)进行包装(wrap),其中该元素被设置为启用补丁方法的属性,诸如“urn:mpeg:dash:patch:2018”。例如,包含Location(位置)元素和媒体呈现描述补丁位置的媒体呈现描述将被包含在适当的SupplementalProperty内,以便支持这个行为的客户端将遵循Location元素,而不支持这个行为的客户端将从初始位置刷新以接收完整的媒体呈现描述。使用Supplemental特性元素的一个示例是:
<SupplementalProperty schemeIdUri="urn:com:hulu:schema:mpd:2017:patch">
<Location>../live/channel.mpd?t=70</Location>
</SupplementalProperty>
结论
因而,该处理使客户端104能够以任意时间量观看直播流,该处理具有:对大多数客户端的高度可高速缓存的响应、服务器侧的最少处理、客户端侧的最少解析和处理、以及对数据带宽的最优使用。
系统
本文公开的特征和方面可以结合经由一个或多个通信网络与多个客户端设备通信的视频流式传输系统1300来实现,如图13中所示。描述视频流式传输系统1300的各方面仅仅是为了提供启用根据本公开准备的内容的分发和递送的应用的示例。应当认识到的是,本技术不限于流式传输视频应用,而且可以适用于其它应用和递送机制。
在一个实施例中,媒体节目提供商可以包括媒体节目库。例如,媒体节目可以通过站点(例如,网站)、应用或浏览器进行聚合和提供。用户可以访问媒体节目提供商的站点或应用,并请求媒体节目。用户可以限于只请求媒体节目提供商提供的媒体节目。
在系统1300中,可以从一个或多个源(例如,从视频源1310)获得视频数据,用作到视频内容服务器1302的输入。输入的视频数据可以包括原始的或基于编辑帧的、任何合适的数字格式的视频数据,例如运动图像专家组(MPEG)-1、MPEG-2、MPEG-4、VC-1、H.264/高级视频编码(AVC)、高效视频编码(HEVC),或其它格式。在替代方案中,视频可以以非数字格式提供并且使用扫描仪和/或转码器转换成数字格式。输入的视频数据可以包括各种类型的视频剪辑或节目,例如,作为消费者感兴趣的主要内容产生的电视情节、运动画面和其它内容。视频数据还可以包括音频或者可以仅使用音频。
视频流式传输系统1300可以包括分布在一台或多台计算机上的一个或多个计算机服务器或模块1302、1304和/或1307。每个服务器1302、1304、1307可以包括或可操作地耦合到一个或多个数据存储库1309,例如数据库、索引、文件或其它数据结构。视频内容服务器1302可以访问各种视频片段的数据存储库(未示出)。视频内容服务器1302可以如由与客户端设备通信的用户接口控制器指示的那样提供视频片段。如本文所使用的,视频片段是指基于帧的视频数据的既定部分,诸如可以在流式传输视频会话以观看电视情节、运动画面、记录的现场表演或其它视频内容中所使用的。
在一些实施例中,视频广告服务器1304可以访问相对短的视频(例如,10秒、30秒或60秒视频广告)的数据存储库,该相对短的视频被配置为针对特定广告商或消息的广告。可以针对广告商提供广告以换取某种形式的支付,或者广告可以包括用于系统1300的宣传消息、公共服务消息或一些其它信息。视频广告服务器1304可以如由用户接口控制器(未示出)指示的那样提供视频广告片段。
视频流式传输系统1300还可以包括服务器102。
视频流式传输系统1300还可以包括将视频内容和视频广告集成到流式传输视频片段中的集成和流式传输组件1307。例如,流式传输组件1307可以是内容服务器或流式传输媒体服务器。控制器(未示出)可以基于任何合适的算法或处理来确定流式传输视频中的广告的选择或配置。视频流式传输系统1300可以包括图13中未描绘的其它模块或单元,例如行政管理服务器、商业服务器、网络基础设施、广告选择引擎等。
视频流式传输系统1300可以连接到数据通信网络1312。数据通信网络1312可以包括局域网(LAN)、广域网(WAN)(例如,互联网)、电话网、无线蜂窝电信网络(WCS)1314、或这些或类似网络的一些组合。
一个或多个客户端设备1320可以经由数据通信网络1312、无线蜂窝电信网络1314和/或另一种网络与视频流式传输系统1300通信。这种客户端设备可以包括例如一个或多个膝上型计算机1320-1、台式计算机1320-2、“智能”手机1320-3、平板设备1320-4、启用网络的电视1320-5、或它们的组合,经由用于LAN的路由器1318、经由用于无线蜂窝电信网络1314的基站1317、或经由某种其它连接。在操作中,响应于从用户输入设备接收的用户输入或其它输入,这种客户端设备1320可以向系统1300发送和接收数据或指令。作为响应,系统1300可以响应于媒体节目的选择而从数据存储库1309向客户端设备1320提供视频片段和元数据。客户端设备1320可以使用显示屏幕、投影仪或其它视频输出设备从媒体播放器中的流式传输视频片段中输出视频内容,并接收用于与视频内容交互的用户输入。
音频-视频数据的分发可以使用各种方法(例如,流式传输)经计算机网络、电信网络以及这种网络的组合从流式传输组件1307到远程客户端设备实现。在流式传输中,内容服务器将音频-视频数据连续地流式传输到至少部分地在客户端设备上操作的媒体播放器组件,该媒体播放器组件可以与从服务器接收流式传输数据并发地播放音频-视频数据。虽然讨论了流式传输,但是可以使用其它递送方法。媒体播放器组件可以在从内容提供商接收数据的初始部分之后立即发起视频数据的播放。传统的流式传输技术使用单个提供商向终端用户(end user)的集合递送数据流。高带宽和处理能力可能是向大量观众递送单个流所需要的,并且当终端用户的数量增加时,提供商所需的带宽可能增加。
流式传输媒体可以按需或实时递送。流式传输允许在文件中的任何点立即回放。终端用户可以跳过整个媒体文件,以开始回放或将回放改变到媒体文件中的任何点。因此,终端用户不需要等待文件逐步下载。通常,流式传输媒体是经由接收对视频文件的请求的专用设备从具有高带宽能力的几个专用服务器递送的,并且具有关于这些文件的结构、格式和带宽的信息,仅以播放视频所需的速率来递送播放视频所需的数据量。流式传输媒体服务器还可以解释目的地客户端上媒体播放器的传输带宽和能力。流式传输组件1307可以使用控制消息和数据消息与客户端设备1320通信,以在播放视频时根据变化的网络状态进行调整。这些控制消息可以包括用于启用控制功能的命令,诸如快进、快退、暂停或在客户端查找文件的特定部分。
由于流式传输组件1307仅根据需要并以所需的速率发送视频数据,因此可以维持对所服务的流的数量的精确控制。观看者将无法在较低数据速率的传输介质上查看高数据速率视频。但是,流式传输媒体服务器(1)向用户提供对视频文件的随机访问,(2)允许监视谁在看什么视频节目以及视频节目被观看多长时间,(3)更高效地使用传输带宽,因为只发送支持观看体验所需的数据量,以及(4)视频文件不存储在观看者的计算机中,而是被媒体播放器丢弃,从而允许对内容的更多控制。
流式传输组件1307可以使用基于TCP的协议,诸如HTTP和实时消息传送协议(RTMP)。流式传输组件1307也可以递送网络直播并可以多播,这允许多于一个客户端调整到单个流,从而节省带宽。流式传输媒体播放器可以不依赖于缓冲整个视频以提供对媒体节目中任何点的随机访问。相反,这是通过使用从媒体播放器发送到流式传输媒体服务器的控制消息来实现的。用于流式传输的其它协议是超文本传输协议(HTTP)直播流式传输(HLS)或经HTTP的动态自适应流式传输(DASH)。HLS和DASH协议经由小片段的播放列表经HTTP递送视频,这些小片段通常从一个或多个内容分发网络(CDN)以各种位速率可用。这允许媒体播放器以片段为基础切换位速率和内容源两者。切换有助于补偿网络带宽差异以及在视频回放期间可能发生的基础设施故障。
通过流式传输的视频内容的递送可以在各种模式下完成。在一个模式中,用户为观看视频节目而付费,例如,付费来访问媒体节目库或受限媒体节目部分,或者使用按需付费服务。在广播电视开始之后不久被广泛采用的另一种模式中,赞助商支付媒体节目的呈现,以换取在节目呈现期间或附近展示广告的权利。在一些模式中,广告插在视频节目中的预定时间处,该时间可以被称为“广告位”或“广告插播”。对于流式传输视频,媒体播放器可以被配置为使得客户端设备无法在没有在指定的广告位期间还播放预定广告的情况下播放视频。
参考图14,图示了用于观看视频内容和广告的装置1400的示意图。在选定的实施例中,装置1400可以包括操作地耦合到处理器存储器1404的处理器(CPU)1402,处理器存储器1404保持二进制编码的功能模块以供处理器1402执行。这些功能模块可以包括用于处理系统功能(诸如输入/输出和存储器访问)的操作系统1406、显示网页的浏览器1408、以及用于播放视频的媒体播放器1410。存储器1404可以保持在图14中未示出的附加模块,例如用于执行本文其它地方描述的其它操作。
总线1414或其它通信组件可以支持装置1400内信息的通信。处理器1402可以是专门的或专用的微处理器,通过执行定义特定任务的机器可读软件代码,该专门的或专用的微处理器被配置为根据本文所公开的特征和方面来执行特定任务。处理器存储器1404(例如,随机存取存储器(RAM)或其它动态存储设备)可以连接到总线1414或直接连接到处理器1402,并且存储要由处理器1402执行的信息和指令。存储器1404还可以在执行此类指令期间存储临时变量或其它中间信息。
存储设备1424中的计算机可读介质可以连接到总线1414并且存储用于处理器1402的静态信息和指令;例如,存储设备(CRM)1424可以在装置1400断电时存储模块1406、1408、1410和1412,当装置1400上电时可以将模块从存储设备加载到处理器存储器1404中。存储设备1424可以包括保持信息、指令或它们的某种组合的非暂态计算机可读存储介质,例如在被处理器1402执行时使装置1400被配置成执行本文所述的方法的一个或多个操作的指令。
通信接口1416也可以连接到总线1414。通信接口1416可以提供或支持装置1400与一个或多个外部设备(例如,流式传输系统1300)之间的双向数据通信,可选地经由路由器/调制解调器1426以及有线或无线连接。在替代方案中,或此外,装置1400可以包括连接到天线1429的收发器1418,装置1400通过该收发器1418可以与用于无线通信系统的基站或者与路由器/调制解调器1426进行无线通信。在替代方案中,装置1400可以经由局域网、虚拟专用网或其它网络与视频流式传输系统1300通信。在另一种替代方案中,装置1400可以作为系统1300的模块或组件被结合,并且经由总线1414或通过某种其它方式与其它组件通信。
装置1400可以(例如,经由总线1414和图形处理单元1420)连接到显示单元1428。显示器1428可以包括用于向装置1400的操作者显示信息的任何合适的配置。例如,显示器1428可以包括或利用液晶显示器(LCD)、触摸屏LCD(例如,电容显示器)、发光二极管(LED)显示器、投影仪或其它显示设备,以在可视显示器中将信息呈现给装置1400的用户。
一个或多个输入设备1430(例如,字母数字键盘、麦克风、键区、遥控器、游戏控制器、相机或相机阵列)可以经由用户输入端口1422连接到总线1414,以便向装置1400传送信息和命令。在选定的实施例中,输入设备1430可以提供或支持对光标定位的控制。这种光标控制设备(也被称为定点设备)可以被配置为鼠标、轨迹球、轨迹垫、触摸屏、光标方向键或用于接收或跟踪物理运动并将运动转换为指示光标移动的电子信号的其它设备。例如使用触摸敏感屏可以将光标控制设备结合到显示单元1428中。光标控制设备可以向处理器1402传送方向信息和命令选择,并且在显示器1428上控制光标移动。光标控制设备可以具有两个或更多个自由度,例如允许设备在平面或三维空间中指定光标位置。
一些实施例可以在非瞬态计算机可读存储介质中实现,以供指令执行系统、装置、系统或机器使用或与其结合使用。计算机可读存储介质包含用于控制计算机系统以执行由一些实施例描述的方法的指令。计算机系统可以包括一个或多个计算设备。当指令由一个或多个计算机处理器执行时,指令可以被配置为执行一些实施例中描述的指令。
如在本描述中并且贯穿所附权利要求所使用的,“一个”、“一”和“该”包括复数引用,除非上下文另有明确规定。而且,如在本描述中并且贯穿所附权利要求所使用的,“在...中”中的含义包括“在...中”和“在...上”,除非上下文另有明确规定。
以上描述示出了各种实施例,连同一些实施例的各方面可以如何实现的示例。以上示例和实施例不应当被视为唯一的实施例,并且其给出是为了说明由所附权利要求限定的一些实施例的灵活性和优点。基于以上公开内容和所附权利要求,可以在不背离权利要求限定的其范围的情况下采用其它布置、实施例、实现和等同物。

Claims (20)

1.一种方法,包括:
由计算设备向客户端发送针对媒体呈现的第一片段集合的媒体呈现描述的第一实例,所述媒体呈现描述的第一实例包括状态信息,所述状态信息用作对媒体呈现描述的更新的请求以指示所述客户端已接收到的片段;
由计算设备接收对媒体呈现描述的所述更新的所述请求,所述请求基于所述状态信息指示所述客户端已接收到的片段;
由计算设备基于所述请求来识别客户端已经在媒体呈现中接收到的最新片段;以及
由计算设备发送针对在媒体呈现中的最新片段之后发生的第二片段集合的媒体呈现描述的第二实例作为对媒体呈现描述的第一实例的更新,其中媒体呈现描述的第二实例排除了在媒体呈现描述的第一实例中发送的针对第一片段集合的信息的至少一部分。
2.如权利要求1所述的方法,其中客户端存储针对媒体呈现的第一片段集合的媒体呈现描述的表示。
3.如权利要求2所述的方法,其中,在接收到媒体呈现描述的第二实例后,客户端用针对第二片段集合的信息来更新媒体呈现描述的表示。
4.如权利要求2所述的方法,其中客户端在接收到媒体呈现描述的第二实例后将针对第二片段集合的信息附加到媒体呈现描述的表示。
5.如权利要求2所述的方法,其中客户端用来自媒体呈现描述的第二实例的信息来替换媒体呈现描述的表示中的信息。
6.如权利要求2所述的方法,其中:
媒体呈现描述的第二实例包括用于媒体呈现的回放的新时段,以及
客户端在所述表示中生成所述新时段。
7.如权利要求2所述的方法,其中:
客户端将第二片段集合附加到第一时段,
媒体呈现描述的第二实例包括用于媒体呈现的回放的第二时段,
客户端在媒体呈现描述的表示中生成第二时段。
8.如权利要求1所述的方法,其中:
其中所述状态信息包括第一状态信息,并且所述请求包括第一请求,以及
媒体呈现描述到媒体呈现描述的第二实例包括第二状态信息,所述第二状态信息用作指示所述客户端已接收到的片段的第二请求,其中所述第二状态信息与所述第一状态信息不同。
9.如权利要求8所述的方法,还包括:
接收对媒体呈现描述到媒体呈现描述的第二实例的所述第二请求,所述第二请求基于所述第二状态信息指示所述客户端已接收到的片段;
使用第二状态信息来识别客户端在媒体呈现中已经接收到的最新片段;以及
发送针对在媒体呈现中的最新片段之后发生的第三片段集合的媒体呈现描述到媒体呈现描述的第三实例作为对媒体呈现描述的另一个更新,其中媒体呈现描述的第三实例排除了针对第一片段集合和第二片段集合的信息的至少一部分。
10.如权利要求1所述的方法,其中所述状态信息包括请求第二片段集合的链接。
11.如权利要求1所述的方法,其中:
在最新片段之后,多个片段可用于媒体呈现,以及
第二片段集合包括所述多个片段。
12.如权利要求1所述的方法,其中:
在最新片段之后,单个片段可用于媒体呈现,以及
第二片段集合包括该单个片段。
13.如权利要求1所述的方法,其中媒体呈现描述的第二实例被高速缓存并且被用于响应来自客户端的请求,并且响应来自其它客户端的对媒体呈现描述的第二实例的请求。
14.如权利要求1所述的方法,其中所述状态信息被包括在媒体呈现描述的第二实例和媒体呈现描述的第一实例的补充特性中,其中该补充特性是指示客户端可选地能够使用所述状态信息的可选特性。
15.一种包含指令的非暂态计算机可读存储介质,该指令在被执行时控制计算机系统被配置用于:
向客户端发送针对媒体呈现的第一片段集合的媒体呈现描述的第一实例,所述媒体呈现描述的第一实例包括状态信息,所述状态信息用作对媒体呈现描述的更新的请求以指示所述客户端已接收到的片段;
接收对媒体呈现描述的所述更新的所述请求,所述请求基于所述状态信息指示所述客户端已接收到的片段;
基于所述请求来识别客户端已经在媒体呈现中接收到的最新片段;以及
发送针对在媒体呈现中的最新片段之后发生的第二片段集合的媒体呈现描述的第二实例作为对媒体呈现描述的第一实例的更新,其中媒体呈现描述的第二实例排除了在媒体呈现描述的第一实例中发送的针对第一片段集合的信息的至少一部分。
16.一种方法,包括:
由计算设备接收针对媒体呈现的第一片段集合的媒体呈现描述的第一实例,所述媒体呈现描述的第一实例包括状态信息,所述状态信息用作对媒体呈现描述的更新的请求以指示客户端已接收到的片段;
由计算设备在存储装置中的媒体呈现描述的表示中存储针对第一片段集合的信息;
由计算设备发送对媒体呈现描述的更新的请求,所述请求基于所述状态信息指示所述客户端已接收到的片段;
由计算设备接收媒体呈现描述的第二实例作为对媒体呈现描述的第一实例的更新,媒体呈现的第二实例包括在客户端已经接收到的媒体呈现中的最新片段之后发生的第二片段集合,其中媒体呈现描述的第二实例排除了在媒体呈现描述的第一实例中发送的针对第一片段集合的信息的至少一部分;以及
由计算设备用针对第二片段集合的信息来更新存储装置中的媒体呈现描述的表示。
17.如权利要求16所述的方法,还包括:
在接收到媒体呈现描述的第二实例后,将针对第二片段集合的信息附加到媒体呈现描述的表示。
18.如权利要求16所述的方法,还包括:
用来自媒体呈现描述的第二实例的信息替换媒体呈现描述的表示中的信息。
19.如权利要求16所述的方法,其中:
其中所述状态信息包括第一状态信息,以及
媒体呈现描述到媒体呈现描述的第二实例包括第二状态信息以指示所述客户端已接收到的片段,其中所述第二状态信息与所述第一状态信息不同。
20.如权利要求19所述的方法,还包括:
发送对媒体呈现描述到媒体呈现描述的第三实例的第二请求,所述第二请求基于所述第二状态信息指示所述客户端已接收到的片段;以及
接收媒体呈现描述的第三实例作为对媒体呈现描述的第二实例的更新,媒体呈现的第三实例包括在客户端已经接收到的媒体呈现描述中的最新片段之后发生的第三片段集合,其中媒体呈现描述的第三实例排除了针对第一片段集合和第二片段集合的信息的至少一部分。
CN201980029217.6A 2018-04-09 2019-04-09 用于视频流式传输的差异媒体呈现描述 Active CN112106375B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862654964P 2018-04-09 2018-04-09
US62/654,964 2018-04-09
US16/378,300 US11039206B2 (en) 2018-04-09 2019-04-08 Differential media presentation descriptions for video streaming
US16/378,300 2019-04-08
PCT/US2019/026563 WO2019199809A1 (en) 2018-04-09 2019-04-09 Differential media presentation descriptions for video streaming

Publications (2)

Publication Number Publication Date
CN112106375A CN112106375A (zh) 2020-12-18
CN112106375B true CN112106375B (zh) 2023-02-28

Family

ID=68096206

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980029217.6A Active CN112106375B (zh) 2018-04-09 2019-04-09 用于视频流式传输的差异媒体呈现描述
CN201980029032.5A Active CN112055972B (zh) 2018-04-09 2019-04-09 使用用于视频流式传输的差异媒体呈现描述的补充内容插入

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201980029032.5A Active CN112055972B (zh) 2018-04-09 2019-04-09 使用用于视频流式传输的差异媒体呈现描述的补充内容插入

Country Status (4)

Country Link
US (5) US10771842B2 (zh)
EP (2) EP3777204B1 (zh)
CN (2) CN112106375B (zh)
WO (2) WO2019199809A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10749761B1 (en) * 2013-09-27 2020-08-18 Amazon Technologies, Inc. Unique user session tracking in adaptive bitrate video delivery
US10771842B2 (en) 2018-04-09 2020-09-08 Hulu, LLC Supplemental content insertion using differential media presentation descriptions for video streaming
US11438647B2 (en) 2018-05-11 2022-09-06 Qualcomm Incorporated Signaling missing sections of media data for network streaming in a manifest file
US11373009B2 (en) * 2018-10-02 2022-06-28 Comcast Cable Communications, Llc Content playlist integrity
US11212597B2 (en) * 2019-05-15 2021-12-28 Tencent America LLC Early termination of content
US11606592B2 (en) * 2019-10-01 2023-03-14 Tencent America LLC Playlist events for combining multiple media timelines and content-insertion in dash streaming
US11064232B2 (en) * 2019-10-02 2021-07-13 Sawax USA LLC Media broadcast system
US11012761B1 (en) * 2019-12-17 2021-05-18 Sony Corporation Techniques for replacement content signaling in advanced television systems committee (ATSC) 3.0 television
US11765421B2 (en) 2020-02-28 2023-09-19 Hulu, LLC Client based storage of remote element resolutions
WO2021174219A1 (en) * 2020-02-28 2021-09-02 Hulu, LLC Identification of elements in a group for dynamic element replacement
US11445270B2 (en) * 2020-04-15 2022-09-13 Comcast Cable Communications, Llc Content information for manifest determination
US11544237B2 (en) * 2021-01-12 2023-01-03 Oracle International Corporation Database connection refresh for server instances and live database updates
US11825175B2 (en) * 2021-02-25 2023-11-21 Cbs Interactive Inc. Systems, methods, and storage media for updating media stream metadata in a manifest corresponding a media stream package
US11509701B2 (en) * 2021-04-20 2022-11-22 Tencent America LLC Extended relationship signaling between events in event message tracks
CN113507646B (zh) * 2021-07-01 2023-07-18 Vidaa(荷兰)国际控股有限公司 一种显示设备及浏览器多标签页媒资播放方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969560A (zh) * 2013-02-04 2015-10-07 高通股份有限公司 确定对于网络流式传输可用的媒体数据
CN108886511A (zh) * 2015-12-11 2018-11-23 皇家Kpn公司 基于补丁来更新清单文件的部分

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665726B1 (en) * 2000-01-06 2003-12-16 Akamai Technologies, Inc. Method and system for fault tolerant media streaming over the internet
US7065544B2 (en) 2001-11-29 2006-06-20 Hewlett-Packard Development Company, L.P. System and method for detecting repetitions in a multimedia stream
US8335873B2 (en) 2006-09-14 2012-12-18 Opentv, Inc. Method and systems for data transmission
US8707182B2 (en) 2010-01-20 2014-04-22 Verizon Patent And Licensing Inc. Methods and systems for dynamically inserting an advertisement into a playback of a recorded media content instance
US9497290B2 (en) * 2010-06-14 2016-11-15 Blackberry Limited Media presentation description delta file for HTTP streaming
WO2012093202A1 (en) 2011-01-07 2012-07-12 Nokia Corporation Method and apparatus for signaling presentation
US8752085B1 (en) 2012-02-14 2014-06-10 Verizon Patent And Licensing Inc. Advertisement insertion into media content for streaming
EP2868097A4 (en) 2012-06-28 2016-03-23 Ericsson Ab METHOD AND SYSTEM FOR ADVERTISING INSERTION IN OTT (OVER THE TOP) DISTRIBUTION OF LIVE MULTIMEDIA CONTENT
US9954717B2 (en) 2012-07-11 2018-04-24 Futurewei Technologies, Inc. Dynamic adaptive streaming over hypertext transfer protocol as hybrid multirate media description, delivery, and storage format
WO2014078805A1 (en) * 2012-11-19 2014-05-22 John Douglas Steinberg System and method for creating customized, multi-platform video programming
US9705955B2 (en) * 2013-04-18 2017-07-11 Futurewei Technologies, Inc. Period labeling in dynamic adaptive streaming over hypertext transfer protocol
US11710151B2 (en) 2013-04-23 2023-07-25 Brightcove Inc. Live ad processing engine service
CN105230024B (zh) * 2013-07-19 2019-05-24 华为技术有限公司 一种媒体表示自适应方法、装置及计算机存储介质
US9258747B2 (en) * 2013-09-17 2016-02-09 Intel IP Corporation User equipment and methods for fast handover failure recovery in 3GPP LTE network
US20150106841A1 (en) 2013-10-14 2015-04-16 Rhythm Newmedia Inc. Dynamic Advertisement During Live Streaming
US10275395B2 (en) * 2014-05-06 2019-04-30 Tivo Solutions Inc. Cloud-based media content management
US20160182582A1 (en) 2014-12-23 2016-06-23 CodeShop BV Sequential Pre-fetch in a Cached Network Environment
US10433029B2 (en) * 2015-02-13 2019-10-01 Shanghai Jiao Tong University Implemental method and application of personalized presentation of associated multimedia content
US10749930B2 (en) * 2015-03-02 2020-08-18 Qualcomm Incorporated Indication for partial segment
US20160294890A1 (en) 2015-03-31 2016-10-06 Facebook, Inc. Multi-user media presentation system
WO2016187592A1 (en) 2015-05-21 2016-11-24 Viviso Inc. Apparatus and method for replacing conventional commercials with targeted advertisements in online live streams
US9510025B1 (en) 2015-06-03 2016-11-29 Mobitv, Inc. Live consecutive ad insertion
US11233868B2 (en) 2016-01-28 2022-01-25 Mediatek Inc. Method and system for streaming applications using rate pacing and MPD fragmenting
US20190342356A1 (en) * 2017-01-02 2019-11-07 Koninklijke Kpn N.V. Selectively updating a dynamic manifest file
US11647251B2 (en) * 2017-07-12 2023-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Fast tune-in for low latency streaming
US10531165B1 (en) * 2017-12-11 2020-01-07 Amazon Technologies, Inc. Embedded content synchronization
US10742337B2 (en) 2018-03-23 2020-08-11 Buildscale, Inc. Device, system and method for real-time personalization of streaming video
US10771842B2 (en) 2018-04-09 2020-09-08 Hulu, LLC Supplemental content insertion using differential media presentation descriptions for video streaming

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969560A (zh) * 2013-02-04 2015-10-07 高通股份有限公司 确定对于网络流式传输可用的媒体数据
CN108886511A (zh) * 2015-12-11 2018-11-23 皇家Kpn公司 基于补丁来更新清单文件的部分

Also Published As

Publication number Publication date
US11039206B2 (en) 2021-06-15
CN112106375A (zh) 2020-12-18
US20190313150A1 (en) 2019-10-10
EP3777204A1 (en) 2021-02-17
EP3777204A4 (en) 2022-06-01
US11792474B2 (en) 2023-10-17
US20190313147A1 (en) 2019-10-10
US11343566B2 (en) 2022-05-24
EP3777204B1 (en) 2024-02-21
WO2019199809A1 (en) 2019-10-17
US20200359086A1 (en) 2020-11-12
US10771842B2 (en) 2020-09-08
WO2019199820A1 (en) 2019-10-17
US20210297733A1 (en) 2021-09-23
CN112055972A (zh) 2020-12-08
EP3777203A1 (en) 2021-02-17
US11477521B2 (en) 2022-10-18
EP3777203A4 (en) 2022-02-09
CN112055972B (zh) 2023-04-18
US20220264177A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
CN112106375B (zh) 用于视频流式传输的差异媒体呈现描述
US11743317B2 (en) Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9628536B2 (en) Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
EP2481195B1 (en) Enhanced block-request streaming using url templates and construction rules
US9380096B2 (en) Enhanced block-request streaming system for handling low-latency streaming
US9432433B2 (en) Enhanced block-request streaming system using signaling or block creation
US9253233B2 (en) Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US20110096828A1 (en) Enhanced block-request streaming using scalable encoding
JP7547489B2 (ja) 動的要素置換のためのグループ中の要素の識別
JP7443544B2 (ja) 遠隔要素分解のクライアントベースの記憶装置

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: HULU LLC

Address before: California, USA

Applicant before: HULU, LLC

GR01 Patent grant
GR01 Patent grant