CN111837403B - 处理用于以流传送媒体数据的交互性事件 - Google Patents
处理用于以流传送媒体数据的交互性事件 Download PDFInfo
- Publication number
- CN111837403B CN111837403B CN201980018531.4A CN201980018531A CN111837403B CN 111837403 B CN111837403 B CN 111837403B CN 201980018531 A CN201980018531 A CN 201980018531A CN 111837403 B CN111837403 B CN 111837403B
- Authority
- CN
- China
- Prior art keywords
- event
- data
- time
- media
- interactive
- 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
Links
- 230000002452 interceptive effect Effects 0.000 claims abstract description 142
- 238000000034 method Methods 0.000 claims description 98
- 238000012545 processing Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 15
- 238000009826 distribution Methods 0.000 claims description 10
- 230000003044 adaptive effect Effects 0.000 claims description 6
- 238000009877 rendering Methods 0.000 claims description 6
- 230000003213 activating effect Effects 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 55
- 239000012634 fragment Substances 0.000 description 39
- 230000006978 adaptation Effects 0.000 description 25
- 238000003860 storage Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 23
- 238000005538 encapsulation Methods 0.000 description 20
- 238000002360 preparation method Methods 0.000 description 13
- 230000002123 temporal effect Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000238876 Acari Species 0.000 description 2
- 101100412093 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rec16 gene Proteins 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/454—Content or additional data filtering, e.g. blocking advertisements
- H04N21/4545—Input to filtering algorithms, e.g. filtering a region of the image
- H04N21/45457—Input to filtering algorithms, e.g. filtering a region of the image applied to a time segment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/4722—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/812—Monomedia components thereof involving advertisement data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种用于接收媒体数据的示例设备包括:被配置在于电路中实现的一个或多个处理器中的流客户端和媒体呈现应用。流客户端被配置为:确定针对与交互性窗口对应的事件消息的开始时间,在该交互性窗口期间能够在对媒体数据的呈现期间发生一个或多个特定于应用的交互性事件,特定于应用的交互性事件包括设备的用户能够在其期间与所呈现的媒体数据交互的时间;确定针对与交互性窗口对应的事件消息的结束时间;在与事件消息对应的交互性窗口期间,接收代表特定于应用的交互性事件中的至少一个特定于应用的交互性事件的数据;以及向媒体呈现应用转发代表特定于应用的交互性事件中的至少一个特定于应用的交互性事件的数据。
Description
本申请要求享受于2019年3月11日提交的美国申请No.16/298,877和于2018年3月12日提交的美国临时申请No.62/641,817的权益,每项申请的全部内容均通过引用并入本文中。
技术领域
本公开内容涉及经编码的视频数据的存储和传输。
背景技术
数字视频功能可以整合到各种设备中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、笔记本电脑或台式电脑、数码相机、数字录音设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝或卫星无线电话、视频电话会议设备等。数字视频设备实现视频压缩技术,例如在由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分高级视频编码(AVC)、ITU-T H.265(也称为高效视频编码(HEVC))来定义的标准、以及这些标准的扩展(以较高效地发送和接收数字视频信息)中描述的技术。
在对视频数据进行编码之后,可以将视频数据打包以进行传输或存储。视频数据可以被组装成符合各种标准中的任何标准的视频文件,例如国际标准化组织(ISO)基本媒体文件格式及其扩展,例如AVC。
发明内容
通常,本公开内容描述了用于处理与针对流式媒体数据的交互性事件相关的数据的技术。交互性事件通常对应于在其期间用户可以与流式媒体内容(诸如广告)交互的事件。交互性事件可以被以信令通告以用于计划外广告,即,对应于在直播期间无法提前预测的时段的广告,例如在直播体育赛事的暂停、时段(period)或节变化等期间的广告。根据本公开内容的技术的一些示例,代表交互性窗口的数据(在此交互性窗口期间可能发生一个或多个特定于应用的交互性事件)可以被以信令通告给流客户端(例如,基于HTTP的动态自适应流(DASH)客户端或HTTP实时流(HLS)客户端)。流客户端可以将在交互性窗口内的特定于应用的交互性事件递送给对应的应用,但不能递送在交互性窗口之外的事件。
在一个示例中,一种接收媒体数据的方法包括:由设备的流客户端来确定针对与交互性窗口对应的事件消息的开始时间,在所述交互性窗口期间能够在对媒体数据的呈现期间发生一个或多个特定于应用的交互性事件,所述特定于应用的交互性事件包括所述设备的用户能够在其期间与所呈现的媒体数据交互的时间,所述流客户端是在所述设备的电路中实现的;由所述流客户端来确定针对与所述交互性窗口对应的所述事件消息的结束时间;在与所述事件消息对应的所述交互性窗口期间,由所述流客户端来接收代表所述特定于应用的交互性事件中的至少一个特定于应用的交互性事件的数据;以及由所述流客户端来向所述设备的媒体呈现应用转发代表所述特定于应用的交互性事件中的所述至少一个特定于应用的交互性事件的所述数据,所述媒体呈现应用是在所述设备的电路中实现的。
在另一个例子中,一种用于接收媒体数据的设备包括:被配置在于电路中实现的一个或多个处理器中的流客户端和媒体呈现应用,其中,所述流客户端被配置为:确定针对与交互性窗口对应的事件消息的开始时间,在所述交互性窗口期间能够在对媒体数据的呈现期间发生一个或多个特定于应用的交互性事件,所述特定于应用的交互性事件包括所述设备的用户能够在其期间与所呈现的媒体数据交互的时间;确定针对与所述交互性窗口对应的所述事件消息的结束时间;在与所述事件消息对应的所述交互性窗口期间,接收代表所述特定于应用的交互性事件中的至少一个特定于应用的交互性事件的数据;以及向所述媒体呈现应用转发代表所述特定于应用的交互性事件中的所述至少一个特定于应用的交互性事件的所述数据。
在另一个例子中,一种计算机可读存储介质,其上存储了指令,所述指令当被执行时使得执行流客户端的处理器进行如下操作:确定针对与交互性窗口对应的事件消息的开始时间,在所述交互性窗口期间能够在对媒体数据的呈现期间发生一个或多个特定于应用的交互性事件,所述特定于应用的交互性事件包括所述设备的用户能够在其期间与所呈现的媒体数据交互的时间;确定针对与所述交互性窗口对应的所述事件消息的结束时间;在与所述事件消息对应的所述交互性窗口期间,接收代表所述特定于应用的交互性事件中的至少一个特定于应用的交互性事件的数据;以及向包括所述处理器的设备的所述媒体呈现应用转发代表所述特定于应用的交互性事件中的所述至少一个特定于应用的交互性事件的所述数据。
在另一个例子中,一种用于接收媒体数据的设备包括:被配置在于所述设备的电路中实现的一个或多个处理器中的媒体呈现应用;用于确定针对交互性窗口的开始时间的单元,在所述交互性窗口期间能够在对媒体数据的呈现期间发生一个或多个特定于应用的交互性事件,所述特定于应用的交互性事件包括所述设备的用户能够在其期间与所呈现的媒体数据交互的时间;用于确定针对所述交互性窗口的结束时间的单元;用于在所述交互性窗口期间,接收代表与交互性事件消息对应的事件消息中的至少一个事件消息的数据的单元;以及用于向所述媒体呈现应用转发代表与交互性事件消息对应的事件消息中的所述至少一个事件消息的所述数据的单元。
一个或多个示例的细节在附图和下面的描述中给出。其它特征、对象和优点将从说明书和附图以及权利要求中显而易见。
附图说明
图1是示出实现了用于通过网络以流传送媒体数据的技术的示例系统的框图。
图2是示出获取单元的组件的示例集的框图。
图3是示出示例多媒体内容的元素的概念图。
图4是示出示例视频文件的元素的框图,其可以对应于呈现中的片段。
图5是示出根据本公开内容的技术的示例的示例交互性窗口的概念图。
图6A–6C是根据本公开内容的技术的各种示例,描述示例时间轴注意事项的流程图。
图7A–7C是根据本公开内容的技术的各种示例,示出示例DASH客户端模型的概念图。
图8是根据本公开内容的技术的示例,示出针对特定于应用的交互性事件的事件持续时间的另一个示例的概念图。
图9是示出可以由DASH客户端在不同的时间执行的任务的各种示例的概念图。
图10是根据本公开内容的技术,示出另一示例交互性定时模型的概念图。
图11是根据本公开内容的技术,示出另一示例交互性定时模型的概念图。
图12是示出用于执行本公开内容的技术的示例方法的流程图。
具体实施方式
通常,本公开内容描述了用于处理与针对流式媒体数据的交互性事件相关的数据的技术。交互性事件通常对应于用户可以在其期间与流式媒体内容(诸如广告)交互的事件。交互性事件可以被以信令通告以用于计划外广告,即,对应于在直播期间无法提前预测的时段的广告,例如在直播体育赛事的暂停、时段变化或节变化等期间的广告。根据本公开内容的技术,代表交互性窗口的数据(在交互性窗口期间可能发生一个或多个特定于应用的交互性事件)可以被以信令通告给流客户端(例如,基于HTTP的动态自适应流(DASH)客户端)。DASH客户端可以将交互性窗口内的特定于应用的交互性事件递送给对应的应用,而不递送在交互性窗口之外的事件。
作为一个示例用例,假设在用户观看DASH格式的实况事件(例如,足球比赛)期间,其中节目传送可以经由广播或通过特定于节目的应用(例如,“XYZPro football”)的单播,在节目中存在的预期的中断,在该预期的中断处播放常规内容或替换内容,并且该预期的中断包含交互性内容或用户界面(UI)以允许用户参与显示的节目内容(例如,插入的广告)。在本文,在这种中断内的在其期间交互性可行的时间间隔被称为“交互性事件”
另一示例类型的交互性事件涉及在比赛期间明显动作的发生,诸如导致触地、致使明显的码数推进或损失等的比赛表现。对于这种类型的交互性事件,比赛继续进行而没有任何中断,而是在特定的持续时间内伴有对用户可用的叠加的交互式内容或UI。例如,此类交互性内容可以涉及有关在先前的比赛表现中涉及的主要运动员的统计信息或其它可访问信息。
可能由于事件的预期发生,发生比赛中断或比赛动作以及相关联的交互性事件。例如,就足球比赛的例子而言,事件可以包括暂停、触地得分、比赛的不同时段之间的转换、半场、在比赛期间可能会出现的新闻/紧急警报等。这类事件的发生时间或持续时间通常无法预先确切地预测。
假定特定于活动节目的应用(诸如足球应用)支持服务交互性。当应用被启动时,其可以向DASH客户端订阅,以为了递送在特定于交互性的事件中包括的信息。交互性服务提供商可以根据应用的应用逻辑,来在交互性事件期间显示这样的交互性内容,该应用逻辑被假定与流内容的许可条款一致。
例如,假设在足球比赛期间在第1节叫了暂停。这将导致:将在节目中断期间播放两分钟的广告,并发送与由应用订阅的类型对应的DASH事件消息,并且在事件中包含的与交互性相关的信息将由DASH客户端在适当的时间转发给应用。这样的事件信息可以使应用能够确定在对应的交互性事件的过程中要执行的适当的交互性逻辑以及要显示的相关联的交互内容,例如,该对应的交互性事件的过程具有1.5分钟的持续时间并且发生在在插播广告时段期间的广告播放的两分钟间隔内。在该示例中,应用可以呈现其与主节目(所显示的广告)同步的与交互性相关的补充内容,例如,在交互性事件期间主内容中的特定时刻处的对UI控件的图形式覆盖或集合的叠加显示。
当此交互性事件结束时,相关联的交互性逻辑的执行可以停止。如果节目中断尚未结束,则在这个时候可以预期的是,正在播放的广告将不再包含任何嵌入的交互式内容,并且在广告终止时,比赛将继续。
继续上面的例子,稍后,在比赛的第二节,客队的四分卫因码数损失大而被擒杀。这种情况可能导致与第一交互性事件不同的第二交互性事件(不同之处在于在比赛中没有中断或暂停),但覆盖在正在进行的节目上的是交互式内容或UI控件,这允许终端用户查看有关做出该重大表现的主队球员的统计信息或其它信息。此交互性事件类似地是由网络递送并由DASH客户端接收特定于交互性的DASH事件,并将在这些事件中包含的与应用相关的信息转发给应用来触发的。同样与先前的示例交互性事件类似,提供给应用的此类事件信息使应用能够执行适当的逻辑,从而致使在交互性事件的有效时间期间的交互式显示。
在比赛的过程期间,用于触发交互性事件发生的额外的节目中断或按键播放可以重复。
以下假设适用于上述示例用例。第一假设是:支持交互性的主服务应用(例如,XYZPro Football)(在本公开内容中简称为“媒体应用”、“应用”或“应用”)包含内置逻辑,该内置逻辑决定要在交互性事件期间的显式的时间处渲染的特定的交互性内容或UI控件。主服务应用可以在播放节目内容时总在运行,而交互性逻辑的执行是暂时的。也就是说,交互性逻辑可以仅在主节目中的交互性事件的实例期间执行。
第二假设是:可以存在要由应用在交互性事件期间选择性地执行的与唯一标识符相关联的交互性逻辑的多个分支。
第三假设是:应用能够经由特定于操作系统(OS)的系统时钟应用编程接口(API)来访问具有所需分辨率(例如,毫秒)和已知频率的准确时钟信息。
第四假设是:在节目中断期间发生交互性事件的情况下,诸如一个或多个广告的辅助内容被呈现为主要内容,交互性事件的持续时间小于或等于节目中断的总持续时间。
第五假设是:从DASH客户端转发给应用的DASH事件信息将向应用标识要针对相应的交互性事件执行的特定逻辑,并且可以包含支持此类执行的额外的、特定于应用的数据。
在一些例子中,第六假设是:在检测到与订阅匹配的事件时,DASH客户端将精确地在当前的媒体呈现时间与如在事件中被以信令通告的事件的开始时间匹配的时刻处,向应用分发所包含的事件信息。或者,DASH客户端可以在预调度的事件开始时间之前分发与订阅匹配的事件,连同分发代表针对事件的开始时间的数据。
第七假设是:如果DASH客户端向应用转发事件信息发生在其当前媒体呈现时间T1,T1晚于事件的开始时间T0,但在事件到期时间T2之前(其中T0<T1<T2),则事件信息将额外地包括T1(以允许该应用根据缩短的交互性事件持续时间调整用于执行的逻辑和相关联的交互式内容显示)。
第八假设是:由应用在交互性事件期间进行显示所需的媒体资产要么已被应用获取,要么在接收到来自DASH客户端的事件通知后由应用动态取得,这样,这种媒体内容的呈现的时间将满足在交互性事件期间执行的交互性逻辑的要求。在将DASH流媒体服务进行广播递送的情况下,这些媒体资产可以作为非实时(NRT)文件来递送,并且在于其期间显示这些媒体文件的交互性事件之前由接收机下载并被转发给应用。在对DASH流服务进行单播递送的情况下,还没有被应用获取的那些媒体文件可以在应用已从DASH客户端接收到相关联的事件信息之后,由应用经由HTTP(S)动态地获得,以实现由交互性逻辑所想要的显示时间。换句话说,交互性事件逻辑被期望适应为了实时获取用于在交互性事件期间进行显示的媒体资产的典型预期的等待时间。在无法通过HTTP(S)及时获取特定的媒体文件(以满足想要的显示时间)的情况下,已被高速缓存在用户设备中的备份内容可以被呈现在其应在的位置上。在交互性事件期间进行显示的媒体文件可以被高速缓存在用户设备中,以便在将来的交互性事件中可能重复使用。
第九假设是:尽管在上述用例中没有显式的描述,但是正在进行的交互性事件可能偶尔被动态地且突然地终止,这是因为体育赛事或其它直播事件期间的节目中断并不总是遵守显式的和预定义的开始时间和结束时间。例如,由于伤停暂停而将比赛暂时停止的持续时间有时可能短于由主服务/内容提供商计划的时间,使得比赛的恢复可能发生在与交互性事件相关联的想要的交互式用户体验完成之前。
事件API的基于上述用例描述和相关联的一组假设的示例功能包括以下内容。支持交互性的主服务应用能够通过例如schemeIdUri以及可选的与该方案相关联的值(value),向DASH客户端订阅,以为了作为DASH事件来递送的所需的交互性事件信息。通常,经由事件API,DASH客户端可以精确地在当前的媒体呈现时间与事件的被导出的开始时间匹配的时刻处,将在与所订阅的schemeIdUri/值(schemeIdUri/value)匹配的DASH事件中包含的与交互性事件相关的信息递送给应用。DASH客户端可以向应用转发a)事件标识符和b)在事件中包含的消息数据参数的有效载荷,诸如针对MPD事件的@id和@messageData属性,以及针对带内事件(‘emsg’盒)的字段id和message_data。如果DASH客户端在事件的被导出的开始时间之后但在其到期时间之前的时间处,将与交互性事件相关的信息递送给应用,则可以包括在其处转发此类事件信息的媒体呈现时间的值、连同事件的id和消息数据。
本公开内容的技术包括流客户端(诸如DASH客户端),与针对特定于交互性的DASH事件的高级定时模型对应的处理模型,作为MPD事件或带内事件(‘emsg’)来发送。本公开内容认识到:关于ATSC 3.0模型,其中流客户端将全部事件信息递送给媒体应用:
1.当媒体应用必须充当媒体播放器时,ATSC模型可能给媒体应用带来高处理负载。媒体应用可以获得并维护媒体呈现时间、执行媒体缓冲等,以使交互性事件与主内容同步。
2.在本公开内容中描述了两种示例方法,用于经由例如事件API从流客户端(例如,DASH客户端)向媒体应用提供事件信息,如于2017年11月10日提交的美国临时申请No.62/584,344和于2017年11月10日提交的美国临时申请No.62/584,494所描述地,主要区别在于:
a、在第一示例方法中,流客户端通过在‘emsg’中包含的定时信息(即,参数timescale(时间刻度)和event_duration(事件_持续时间))来提供事件持续时间信息。
b、在第二示例方法中,流客户端在‘emsg’中的字段message_data中提供事件持续时间信息。
c、在这两种示例性方法中,媒体应用处理开销可以通过将流客户端(例如DASH客户端)配置为以媒体定时来处理事件同步来降低。在一些示例操作中,流客户端可以精确地在当前的媒体时间等于事件的presentation_time(呈现_时间)处将事件信息发送给媒体应用(假设使用带内事件/‘emsg’盒),并且不向应用提供诸如当前的媒体时间或事件开始时间的额外信息。
本公开内容的技术可以应用于符合根据ISO基本媒体文件格式、可缩放视频编码(SVC)文件格式、高级视频编码(AVC)文件格式、第三代合作项目(3GPP)文件格式和/或多视图视频编码(MVC)文件格式、或其它类似的视频文件格式来封装的视频数据的视频文件。
在HTTP流中,经常使用的操作包括HEAD、GET和部分GET(partial GET)。HEAD操作获取与给定的统一资源定位器(URL)或统一资源名称(URN)相关联的文件头,而不获取与URL或URN相关联的有效载荷。GET操作获取与给定的URL或URN相关联的整个文件。部分GET操作接收作为输入参数的字节范围,并获取文件中的连续数量的字节,其中,字节的数量与接收到的字节范围对应。因此,可以为HTTP流提供电影片段,这是因为部分GET操作可以获得一个或多个单独的电影片段。在电影片段中,可以有不同的轨道的若干轨道片段。在HTTP流中,媒体呈现可以是客户端可访问的结构化的数据集合。客户端可以请求并下载媒体数据信息以向用户呈现流服务。
在使用HTTP流来用流传送3GPP数据的示例中,多媒体内容的视频和/或音频数据可以有多种表示。如下文所述,不同的表示可以对应于不同的编码特性(例如,视频编码标准的不同档次或级别)、不同的编码标准或编码标准的扩展(例如,多视图和/或可缩放扩展)、或不同的比特率。这类表示的清单可以在媒体呈现描述(MPD)数据结构中定义。媒体呈现可以对应于HTTP流客户端设备可访问的结构化的数据集合。HTTP流客户端设备可以请求并下载媒体数据信息以向客户端设备的用户呈现流服务。媒体呈现可以被描述在MPD数据结构中,MPD数据结构可以包括对MPD的更新。
媒体呈现可以包含具有一个或多个时段的序列。每个时段可以延长到下一时段的开始,或者在最后的时段的情况下可以延长到媒体呈现的结束。每个时段可以包含对相同的媒体内容的一个或多个表示。表示可以是音频、视频、定时文本或其它此类数据的数个备选被编码版本中的一个。这些表示可以因编码类型(例如,因针对视频数据的比特率、分辨率和/或编解码器以及针对音频数据的比特率、语言和/或编解码器)而不同。术语表示可用于指与多媒体内容的特定时段对应并以特定方式编码的一部分被编码的音频或视频数据。
特定时段的表示可以被分配给由在MPD中的指示表示所属的自适应集的属性所指示的组。相同的自适应集中的各表示通常被认为是彼此的替代,这是因为客户端设备可以在这些表示之间动态地且无缝地进行切换,例如,以执行带宽自适应。例如,针对特定时段的对视频数据的每个表示可以被分配给相同的自适应集,使得可以选择任何表示进行解码以呈现针对对应的时段的多媒体内容的媒体数据(诸如视频数据或音频数据)。在一些示例中,一个时段内的媒体内容可以由来自组0的一个表示(如果存在的话)或来自每个非零组的至多一个表示的组合来表示。针对一时段的每个表示的定时数据可以相对于该时段的开始时间来表达。
表示可以包括一个或多个段。每个表示可以包括初始化段,或者表示的每个段可以是自初始化的。当存在时,初始化段可以包含用于访问表示的初始化信息。通常,初始化段不包含媒体数据。段可以由标识符唯一地引用,标识符诸如是统一资源定位符(URL)、统一资源名称(URN)或统一资源标识符(URI)。MPD可以提供针对每个段的标识符。在一些示例中,MPD还可以以属性range的形式提供字节范围,其可以对应于通过URL、URN或URI可访问的文件内的段的数据。
可以选择不同的表示以用于基本上同时获取不同类型的媒体数据。例如,客户端设备可以选择从其获取段的音频表示、视频表示和定时文本表示。在一些示例中,客户端设备可以选择特定的自适应集用于执行带宽自适应。也就是说,客户端设备可以选择包括视频表示的自适应集、包括音频表示的自适应集和/或包括定时文本的自适应集。或者,客户端设备可以为特定类型的媒体(例如,视频)选择自适应集,并且直接为其它类型的媒体(例如,音频和/或定时文本)选择表示。
图1是示出实现了用于通过网络以流传送媒体数据的技术的示例系统10的框图。在该示例中,系统10包括内容准备设备20、服务器设备60和客户端设备40。客户端设备40和服务器设备60通过网络74通信地耦合,网络74可以包括因特网。在一些示例中,内容准备设备20和服务器设备60也可以通过网络74或另一个网络耦合,或者可以直接通信地耦合。在一些示例中,内容准备设备20和服务器设备60可以包括相同的设备。
在图1的示例中,内容准备设备20包括音频源22和视频源24。例如,音频源22可以包括麦克风,其产生代表要由音频编码器26编码的被捕获的音频数据的电信号。或者,音频源22可以包括存储先前记录的音频数据的存储介质、诸如计算机化的合成器的音频数据生成器、或任何其它音频数据源。视频源24可以包括产生要由视频编码器28编码的视频数据的摄像机、编码有先前记录的视频数据的存储介质、视频数据生成单元(例如计算机图形源)或任何其它视频数据源。在所有示例中,内容准备设备20不一定通信地耦合到服务器设备60,但是可以将多媒体内容存储到由服务器设备60读取的单独介质中。
原始音频和视频数据可以包括模拟数据或数字数据。模拟数据可以在被音频编码器26和/或视频编码器28编码之前被数字化。当讲话参与者正在讲话时,音频源22可以从讲话参与者获取音频数据,而视频源24可以同时获取讲话参与者的视频数据。在其它示例中,音频源22可以包括包括被存储的音频数据的计算机可读存储介质,而视频源24可以包括包括被存储的视频数据的计算机可读存储介质。以这种方式,在本公开内容中描述的技术可以应用于现场、流、实时音频和视频数据,或应用于被存档的、被预记录的音频和视频数据。
与视频帧对应的音频帧通常是包含与在视频帧中包含的由视频源24捕获(或生成)的视频数据同时地由音频源22捕获(或生成)的音频数据的音频帧。例如,在讲话参与者通常通过讲话产生音频数据时,音频源22捕获音频数据,并且视频源24同时(即,在音频源22正捕获音频数据时)捕获讲话参与者的视频数据。因此,音频帧可以在时间上对应于一个或多个特定视频帧。相应地,与视频帧对应的音频帧通常对应于同时捕获音频数据和视频数据的情况,对于这种情况,音频帧和视频帧分别包括同时捕获的音频数据和视频数据。
在一些示例中,音频编码器26可以编码每个被编码的音频帧中的代表针对被编码的音频帧的音频数据被记录时的时间的时间戳,并且类似地,视频编码器28可以编码每个被编码的视频帧中的代表针对被编码的视频帧的视频数据被记录时的时间的时间戳。在这样的示例中,与视频帧对应的音频帧可以包括包括时间戳的音频帧和包括相同时间戳的视频帧。内容准备设备20可以包括内部时钟,音频编码器26和/或视频编码器28可以根据该内部时钟声称时间戳,或者音频源22和视频源24可以使用该内部时钟以分别将音频数据和视频数据与时间戳相关联。
在一些示例中,音频源22可以向音频编码器26发送与音频数据被记录的时间对应的数据,并且视频源24可以向视频编码器28发送与视频数据被记录的时间对应的数据。在一些示例中,音频编码器26可以对被编码的音频数据中的序列标识符进行编码,以指示被编码的音频数据的相对时间排序,但不必指示音频数据被记录的绝对时间,并且类似地,视频编码器28还可以使用序列标识符以指示被编码的视频数据的相对时间排序。类似地,在一些示例中,序列标识符可以被映射或以其它方式与时间戳相关。
音频编码器26通常产生被编码的音频数据的流,而视频编码器28产生被编码的视频数据的流。每个单独的数据流(无论是音频还是视频)可以被称为基本流。基本流是表示中的一个单独的、被数字编码的(可能是被压缩的)成分。例如,表示中的被编码的视频部分或音频部分可以是基本流。在封装在视频文件内之前,可以将基本流转换为被打包的基本流(PES)。在相同的表示内,流ID可以被用于区分属于一个基本流的PES分组与其它分组。基本流的基础数据单元是被打包的基本流(PES)包。从而,被编码的视频数据通常对应于基本视频流。类似地,音频数据对应于一个或多个相应的基本流。
许多视频编码标准(诸如ITU-T H.264/AVC和即将到来的高效视频编码(HEVC)标准)定义了无错误比特流的语法、语义和解码过程,其中任何一者都符合特定的档次或级别。视频编码标准通常不指定编码器,但编码器的任务是保证生成的比特流符合解码器的标准。在视频编码标准的上下文中,“档次”对应于应用于它们的算法、特性或工具和约束的子集。例如,根据H.264标准的定义,“档次”是由H.264标准指定的整个比特流语法的子集。“级别”对应于解码器资源消耗的限制,诸如例如解码器存储器和计算,其与图片的分辨率、比特率和块处理速率有关。档次可以用profile_idc(档次指示符)值来以信令通告,而级别可以用level_ncid(级别指示符)值来以信令通告。
例如,H.264标准认识到,在由给定档次的语法界定的范围内,仍可能需要编码器和解码器的性能有很大的变化,这取决于比特流中的语法元素(诸如被解码图片的指定大小)所取的值。H.264标准进一步认识到,在许多应用中,对于实现能够处理特定档次内语法的所有假想用途的解码器既不实际也不经济。相应地,H.264标准将“级别”定义为对比特流中的语法元素的值施加的一组指定的约束。这些约束可能是对值的简单限制。或者,这些约束可以采取对值的算术组合(例如,图片宽度乘以图片高度乘以每秒被解码的图片的数量)的约束的形式。H.264标准进一步规定:各个实现方案可以针对每个被支持的档次支持不同的级别。
符合一档次的解码器通常支持在该档次中定义的所有特性。例如,作为编码特性,B-图片编码在H.264/AVC的基线档次中是不被支持的,但是在H.264/AVC的其它档次中是被支持的。符合一级别的解码器应能够解码不需要超出在该级别中定义的限制的资源的任何比特流。档次和级别的定义可以有助于可解释性。例如,在视频传输期间,可以针对整个传输会话协商和商定一对档次和级别定义。具体地说,在H.264/AVC中,级别可以定义对于需要被处理的宏块的数量、被解码图片缓冲区(DPB)大小、被编码图片缓冲区(CPB)大小、垂直运动矢量范围、每两个连续MB的运动矢量的最大数量、以及B-块是否能够具有小于8x8像素的子宏块分区的限制。以这种方式,解码器可以确定解码器是否能够正确地解码比特流。
在图1的示例中,内容准备设备20的封装单元30从视频编码器28接收包含被编码的视频数据的基本流并从音频编码器26接收包含被编码的音频数据的基本流。在一些示例中,视频编码器28和音频编码器26可以各自包括用于根据被编码的数据形成PES包的打包器。在其它示例中,视频编码器28和音频编码器26可以各自与相应的打包器通过接口进行连接,以便根据被编码的数据形成PES包。在其它示例中,封装单元30可以包括用于根据被编码的音频数据和视频数据形成PES包的打包器。
视频编码器28可以多种方式对多媒体内容的视频数据进行编码,以产生处于各种比特率和具有各种特征的多媒体内容的不同表示,诸如像素分辨率、帧速率、对各种编码标准的符合性、对针对各种编码标准的各种档次和/或档次级别的符合性、具有一个或多个视图的表示(例如,针对二维回放或三维回放)或其它此类特征。在本公开内容中使用的表示可以包括音频数据、视频数据、文本数据(例如,对于隐藏字幕)或其它此类数据中的一者。表示可以包括基本流,诸如音频基本流或视频基本流。每个PES包可以包括标识PES包所属的基本流的stream_id。封装单元30负责将基本流组装成各种表示的视频文件(例如,段)。
封装单元30从音频编码器26和视频编码器28接收针对表示的基本流的PES包,并根据PES包形成对应的网络抽象层(NAL)单元。被编码的视频段可以被组织成NAL单元,其提供“网络友好”的视频表示寻址应用,诸如视频电话、存储、广播或流。NAL单元可以被分类为视频编码层(VCL)NAL单元和非VCL NAL单元。VCL单元可以包含核心压缩引擎,并且可以包括块、宏块和/或片级数据。其它NAL单元可以是非VCL NAL单元。在一些示例中,通常作为主要被编码图片来呈现的在一个时间实例中的被编码图片可以包含在访问单元中,该访问单元可以包括一个或多个NAL单元。
非VCL NAL单元可以包括参数集NAL单元和SEI NAL单元等。参数集可以包含序列级报头信息(在序列参数集(SPS)中)和不经常改变的图片级报头信息(在图片参数集(PPS)中)。利用参数集(例如PPS和SPS),不需要对每个序列或图片重复不经常改变的信息,因此可以提高编码效率。此外,参数集的使用可以实现对重要报头信息的带外传输,这避免了针对差错恢复的冗余传输的需要。在带外传输示例中,可以在与其它NAL单元(诸如SEI NAL单元)相比不同的信道上发送参数集NAL单元。
补充增强信息(SEI)可以包含对于解码来自VCL NAL单元的被编码图片样本不必需的,但可以协助与解码、显示、差错恢复和其它目的相关的过程的信息。SEI消息可以被包含在非VCL NAL单元中。SEI消息是一些标准规范的规范性部分,并从而对于符合标准的解码器实现方案并不总是强制性的。SEI消息可以是序列级SEI消息或图片级SEI消息。一些序列级信息可以被包含在SEI消息(诸如在SVC的示例中的可缩放性信息SEI消息和在MVC中的视图可缩放性信息SEI消息)中。这些示例SEI消息可以传达诸如操作点的提取和操作点的特征的信息。另外,封装单元30可以形成清单文件,诸如对表示的特征进行描述的媒体呈现描述符(MPD)。封装单元30可以根据可扩展标记语言(XML)来格式化MPD。
封装单元30可以向输出接口32提供针对对多媒体内容的一个或多个表示的数据、连同清单文件(例如,MPD)。输出接口32可以包括网络接口或用于写入存储介质的接口,诸如通用串行总线(USB)接口、CD或DVD刻录机或烧录机、到磁存储介质或闪存存储介质的接口、或用于存储或发送媒体数据的其它接口。封装单元30可以将对多媒体内容的每个表示的数据提供给输出接口32,输出接口32可以经由网络传输或存储介质将数据发送给服务器设备60。在图1的示例中,服务器设备60包括存储各种多媒体内容64的存储介质62,每个多媒体内容包括相应的清单文件66和一个或多个表示68A-68N(表示68)。在一些示例中,输出接口32还可以直接向网络74发送数据。
在一些例子中,表示68可以被分离成各自适应集。也就是说,表示68的各种子集可以包括相应的公共特征集,诸如编解码器、档次和级别、分辨率、视图数量、段的文件格式、文本类型信息(其可以标识要以表示来显示的文本和/或例如由讲话者解码和呈现的音频数据的语言或其它特征)、摄像机角度信息(其可以描述针对在自适应集中的各表示的场景的摄像机角度或真实世界摄像机透视图)、描述针对特定观众的内容适合性的评级信息等。
清单文件66可以包括指示与特定的自适应集对应的表示68的子集的数据、以及针对自适应集的公共特征。清单文件66还可以包括代表针对自适应集的个体表示的个体特征的数据,诸如比特率。以这种方式,自适应集可以提供简化的网络带宽自适应。可以使用清单文件66的自适应集元素的子元素来指示自适应集中的表示。
服务器设备60包括请求处理单元70和网络接口72。在一些示例中,服务器设备60可以包括多个网络接口。此外,服务器设备60的任何或所有特性可以在内容递送网络的其它设备(诸如路由器、桥、代理设备、交换机或其它设备)上实现。在一些示例中,内容递送网络的中间设备可以高速缓存多媒体内容64的数据,并且包括基本上符合服务器设备60的那些组件的组件。通常,网络接口72被配置为经由网络74发送和接收数据。
请求处理单元70被配置为接收来自诸如客户端设备40的客户端设备的对存储介质62的数据的网络请求。例如,请求处理单元70可以实现超文本传输协议(HTTP)版本1.1,如在由IETF网络工作组的R.Fielding等人在1999年6月在RFC 2616“Hypertext TransferProtocol–HTTP/1.1”中描述地。也就是说,请求处理单元70可以被配置为接收HTTP GET请求或部分GET请求,并响应于请求而提供多媒体内容64的数据。请求可以指定表示68中的一个表示的段,例如,使用该段的URL。在一些示例中,请求还可以指定该段的一个或多个字节范围,从而包括部分GET请求。请求处理单元70还可以被配置为服务于HTTP报头请求,以提供表示68中的一个表示的段的报头数据。在任何情况下,请求处理单元70可以被配置为处理请求以向诸如客户端设备40之类的请求设备提供被请求的数据。
另外或替代地,请求处理单元70可以被配置为经由广播或多播协议(诸如eMBMS)来递送媒体数据。内容准备设备20可以以与所描述的方式基本相同的方式创建DASH段和/或子段,而服务器设备60可以使用eMBMS或另一广播或多播网络传输协议来递送这些段或子段。例如,请求处理单元70可以被配置为从客户端设备40接收多播组加入请求。也就是说,服务器设备60可以向与特定的媒体内容(例如,直播赛事的广播)相关联的客户端设备(包括客户端设备40)通知与多播组相关联的因特网协议(IP)地址。客户端设备40可以既而提交对于加入多播组的请求。此请求可以在网络74(例如,构成网络74的路由器)中传播,使得路由器将发往与多播组相关联的IP地址的业务定向到诸如客户端设备40的订阅客户端设备。
如图1的示例所示,多媒体内容64包括清单文件66,其可以对应于媒体呈现描述(MPD)。清单文件66可以包含不同的可选表示68(例如,具有不同质量的视频服务)的描述,并且描述可以包括例如编解码器信息、档次值、级别值、比特率和表示68的其它描述性特征。客户端设备40可以获取媒体呈现的MPD以确定如何访问表示68的段。
具体而言,获取单元52可以获取客户端设备40的配置数据(未示出),以确定视频解码器48的解码能力和视频输出44的渲染能力。配置数据还可以包括由客户端设备40的用户选择的语言偏好的任何或全部、与由客户端设备40的用户设置的深度偏好对应的一个或多个摄像机透视图和/或由客户端设备40的用户选择的评级偏好。获取单元52可以包括例如web浏览器或媒体客户端,其被配置成提交HTTP GET请求和部分GET请求。获取单元52可以对应于由客户端设备40的一个或多个处理器或处理单元(未示出)执行的软件指令。在一些示例中,关于获取单元52描述的功能的全部或部分可以在硬件、或者硬件、软件和/或固件的组合中实现,其中可以提供必要的硬件来执行软件或固件的指令。
获取单元52可以将客户端设备40的解码和渲染能力与由清单文件66的信息指示的表示68的特征进行比较。获取单元52可以首先获取清单文件66的至少一部分,以确定表示68的特征。例如,获取单元52可以请求清单文件66中描述一个或多个自适应集的特征的部分。获取单元52可以选择具有可以由客户端设备40的编码和渲染能力所满足的特征的表示68的子集(例如,自适应集)。获取单元52随后可以确定针对自适应集中的表示的比特率,确定当前可用的网络带宽量,以及从具有网络带宽可以满足的比特率的表示之一获取段。
通常,较高比特率的表示可以产生较高质量的视频回放,而较低比特率的表示可以在可用的网络带宽减少时提供足够质量的视频回放。相应地,当可用的网络带宽相对较高时,获取单元52可以从相对较高比特率的表示中获取数据,而当可用的网络带宽较低时,获取单元52可以从相对较低比特率的表示中获取数据。以这种方式,客户端设备40可以在网络74上以流传送多媒体数据,同时也适应网络74的变化的网络带宽可用性。
另外或替代地,获取单元52可以被配置为根据广播或多播网络协议(诸如eMBMS或IP多播)来接收数据。在这样的示例中,获取单元52可以提交对于加入与特定的媒体内容相关联的多播网络组的请求。在加入多播组之后,获取单元52可以接收多播组的数据,而无需向服务器设备60或内容准备设备20发出进一步的请求。获取单元52可以在不再需要多播组的数据时提交对于离开该多播组的请求,例如,以停止回放或以将频道更改到不同的多播组。
网络接口54可以接收被选择的表示的段的数据并将其提供给获取单元52,获取单元52既而可以将这些段提供给解封装单元50。解封装单元50可以将视频文件的元素解封装为组分PES流,对PES流进行拆包以获取被编码的数据,并且根据被编码的数据是音频流还是视频流的一部分(例如,如流的PES包报头所指示地),将被编码的数据发送给音频解码器46还是视频解码器48。音频解码器46解码被编码的音频数据并将解码后的音频数据发送给音频输出42,而视频解码器48解码被编码的视频数据并将解码后的视频数据(可以包括流的多个视图)发送给视频输出44。
当适用时,视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、获取单元52和解封装单元50各自可以实现为各种合适的处理电路中的任意一个,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑电路、软件、硬件、固件或其任何组合。视频编码器28和视频解码器48中的每一个可以被包括在一个或多个编码器或解码器中,其中任何一个可以被集成为被组合的视频编码器/解码器(CODEC)的一部分。类似地,音频编码器26和音频解码器46中的每一个可以被包括在一个或多个编码器或解码器中,其中任何一个可以被集成为被组合的CODEC的一部分。包括视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、获取单元52和/或解封装单元50的设备可以包括集成电路、微处理器和/或无线通信设备,诸如蜂窝电话。
客户端设备40、服务器设备60和/或内容准备设备20可以被配置为根据本公开内容的技术进行操作。为了示例的目的,本公开内容描述了关于客户端设备40和服务器设备60的这些技术。然而,应当理解,取代(或除了)服务器设备60,内容准备设备20可以被配置为执行这些技术。
封装单元30可以形成NAL单元,NAL单元包括用于标识NAL单元所属的节目的报头、以及有效载荷,例如,音频数据、视频数据或用于描述NAL单元对应的传输或节目流的数据。例如,在H.264/AVC中,NAL单元包括1字节的报头和可变大小的有效载荷。在其有效载荷中包括视频数据的NAL单元可以包括各种粒度级别的视频数据。例如,NAL单元可以包括视频数据块、多个块、视频数据片或视频数据的整个图片。封装单元30可以从视频编码器28以基本流的PES包的形式来接收被编码的视频数据。封装单元30可以将每个基本流与对应的节目相关联。
封装单元30还可以根据多个NAL单元来组装访问单元。通常,访问单元可以包括一个或多个NAL单元,用于代表视频数据的帧、以及当与该帧对应的音频数据可用时的该音频数据。访问单元通常包括针对一个输出时间实例的所有NAL单元,例如,针对一个时间实例的所有音频数据和视频数据。例如,如果每个视图的帧速率为20帧每秒(fps),则每个时间实例可以对应于0.05秒的时间间隔。在此时间间隔内,可以同时地渲染针对相同的访问单元(相同的时间实例)的所有视图的特定帧。在一个示例中,访问单元可以包括一个时间实例中的被编码的图片,其可以作为主要被编码图片来呈现。
相应地,访问单元可以包括针对公共时间实例的所有音频帧和视频帧,例如,对应于时间X的所有视图。此本公开内容还将特定视图的被编码图片称为“视图组件”。即,视图组件可以包括在特定时间处针对特定视图的被编码图片(或帧)。相应地,访问单元可以被定义为包括公共时间实例的所有视图组件。访问单元的解码顺序不必与输出或显示顺序相同。
媒体呈现可以包括媒体呈现描述(MPD),其可以包含不同的可选表示(例如,具有不同质量的视频服务)的描述,并且描述可以包括例如编解码器信息、档次值和级别值。MPD是清单文件的一个例子,诸如清单文件66。客户端设备40可以获取媒体呈现的MPD,以确定如何访问各种呈现的电影片段。电影片段可以位于视频文件的电影片段盒(moof box)中。
清单文件66(其可以包括例如MPD)可以通知表示68的段的可用性。也就是说,MPD可以包括指示在表示68中的一个的第一段变为可用时的时钟时间的信息、以及指示表示68内的段的持续时间的信息。这样,客户端设备40的获取单元52可以基于开始时间以及在特定的段之前的段的持续时间,来确定每个段何时是可用的。
在封装单元30基于接收到的数据将NAL单元和/或访问单元组装成视频文件之后,封装单元30将视频文件传递到输出接口32进行输出。在一些示例中,封装单元30可以在本地存储视频文件或经由输出接口32将视频文件发送给远程服务器,而不是直接将视频文件发送给客户端设备40。输出接口32可以包括:例如,发射机、收发机、用于将数据写入计算机可读介质的设备(诸如例如光驱、磁介质驱动器(例如,软驱)、通用串行总线(USB)端口、网络接口或其它输出接口)。输出接口32将视频文件输出到计算机可读介质,诸如例如,传输信号、磁介质、光学介质、存储器、闪存驱动器或其它计算机可读介质。
网络接口54可以经由网络74接收NAL单元或访问单元,并经由获取单元52将NAL单元或访问单元提供给解封装单元50。解封装单元50可以将视频文件的元素解封装为组分PES流,对PES流进行拆包以获取被编码的数据,以及根据被编码的数据是音频流还是视频流的一部分(例如,如流的PES包的报头所指示地),将被编码的数据发送到音频解码器46还是视频解码器48。音频解码器46解码被编码的音频数据并将解码后的音频数据发送到音频输出42,而视频解码器48解码被编码的视频数据并将解码后的视频数据(其可以包括流的多个视图)发送到视频输出44。
图2是更详细地示出图1的获取单元52的示例组件集的框图。在该示例中,获取单元52包括eMBMS中间件单元100、DASH客户端110和媒体应用112。
在此例子中,eMBMS中间件单元100还包括eMBMS接收单元106、高速缓存104和代理服务器单元102。在此示例中,eMBMS接收单元106被配置为经由eMBMS接收数据,例如,根据RFC 6726的网络工作组的T.Paila等人在2012年11月的“FLUTE—File Delivery overUnidirectional Transport”中描述的单向传输的文件递送(File Delivery overUnidirectional Transport(FLUTE)),可从http://tools.ietf.org/html/rfc6726访问。也就是说,eMBMS接收单元106可以经由广播从例如服务器设备60接收文件,服务器设备60可以充当广播/多播服务中心(BM-SC)。
由于eMBMS中间件单元100接收文件的数据,eMBMS中间件单元可以将接收到的数据存储在高速缓存104中。高速缓存104可以包括计算机可读存储介质,诸如闪存、硬盘、RAM或任何其它合适的存储介质。
代理服务器单元102可以充当针对DASH客户端110的服务器。例如,代理服务器单元102可以向DASH客户端110提供MPD文件或其它清单文件。代理服务器单元102可以在MPD文件中通知针对段的可用性时间、以及可以从其获取段的超链接。这些超链接可以包括对应于客户端设备40的本地主机地址前缀(例如,对于IPv4的127.0.0.1)。以此方式,DASH客户端110可以使用HTTP GET请求或部分GET请求从代理服务器单元102请求段。例如,对于从链接http://127.0.0.1/rep1/seg3可用的段,DASH客户端110可以构造HTTP GET请求,该HTTP GET请求包括针对http://127.0.0.1/rep1/seg3的请求,并将请求提交给代理服务器单元102。代理服务器单元102可以响应于此类请求从高速缓存104获取被请求的数据并将该数据提供给DASH客户端110。
根据本公开内容的技术,媒体应用112可以与DASH客户端110订阅交互性事件。然后,DASH客户端110可以向媒体应用112递送被订阅的交互性事件。根据本公开内容的技术,假设媒体应用112被配置为呈现交互性事件。
根据本公开内容的技术,DASH客户端110和媒体应用112可以使用诸如事件消息(EMSG)盒的DASH带内事件消息发送机制来处理数据。DASH客户端110可以根据下面讨论的事件的示例处理模型来进行操作。下面讨论的机制也适用于清单文件事件,诸如MPD事件,其可以携带相同或相似的参数。
在如下文件中如下描述的DASH事件:ISO/IEC 23009-1:2017:信息技术-基于HTTP的动态自适应流媒体(DASH)-第1部分:媒体呈现描述和段格式,2017(ISO/IEC 23009-1:2017:Information technology—Dynamic adaptive streaming over HTTP(DASH)—Part1:Media presentation description and segment formats,2017):
事件流可以通过添加事件消息作为段的部分来与表示进行复用。事件流可以以被选择的表示形式、仅以一个或多个被选择的自适应集、或以所有表示而存在。例如,一种可能的配置是在只有音频自适应集可以包含带内事件时的配置。
为了识别携带事件流的表示,应如在[1]中的5.10.3.2中定义地在MPD中以信令通告事件的存在情况。
如果有多个表示携带具有相同的@schemeIdUri和相同的@value的事件流,则这些流在语义上应是等价的,即,处理一个表示就足够了。
在ISO/IEC 23009-1的5.10.3.3中提供了用以在媒体流中以信令通告事件的盒的格式。
存在于表示中的带内事件流可以由自适应集或表示级上的元素InbandEventStream(带内事件流)指示。ISO/IEC 23009-1的5.10.2中的表24定义了一个InbandEventStream类型的示例。一个表示可以包含多个带内事件流,每个带内事件流都由一个单独的元素InbandEventStream表示。
事件消息盒(‘emsg’)可以为与媒体呈现时间相关的一般事件提供信令。与针对在ISO/IEC 23009-1的5.10.2中规定的MPD中定义的事件的语义相比而言相同的语义可以适用于emsg盒。事件消息盒(‘emsg’)还可以提供特定于DASH操作的信令数据。事件方案标识符和事件可以与ISO/IEC23009-1的5.10.4中的定义相同。
如果媒体段被封装在ISO BMFF中,则该媒体段可以包含一个或多个事件消息(‘emsg’)盒。如存在,则任何‘emsg’盒可以置于任何‘moof’盒之前。
在ISO/IEC 23009-1的5.10.3.3.5中描述了MPEG-2TS中的事件消息的一个载送示例。
不应存在具有在MPD中未定义的方案标识符的事件消息盒。如果DASH客户端110检测到具有在MPD中未定义的方案的事件消息盒,则DASH客户端110可以忽略该事件消息盒。
根据本公开内容的技术,在一个示例中,DASH客户端110可以对与交互性事件相关的事件消息执行以下处理模型。如果DASH客户端110被告知基于例如schemeIdUri/值对(schemeIdUri/value pair)向媒体应用112提供事件,则DASH客户端110可以如下操作:
1.DASH客户端110解析包含事件的表示。
2.当DASH客户端110检测到与感兴趣的schemeIdUri/值匹配的事件时,并且假设使用带内事件,则DASH客户端110可以如下操作:
i.解析事件消息盒;
ii.通过媒体呈现时间(即,如以presentation_time(呈现_时间)的值表示的,或如根据presentation_time_delta(呈现_时间_delta)的值计算的,以‘emsg’中出现的参数为准)来确定事件的被导出的开始时间;
iii.如果当前的媒体呈现时间小于如在‘emsg’中指示的事件的被导出的开始时间,则DASH客户端110可以执行以下指出的三个操作之一:
(a)立即将事件的字段id和message_data分发给媒体应用112,以及包括1)到事件的被导出的开始时间的时间、或者2)此分发的当前的媒体时间和事件的被导出的开始时间。另外,可以提供事件持续时间;
(b)存储事件(例如,在高速缓存104中),并在媒体呈现时间与事件的被导出的开始时间匹配的精确时刻处,将事件的字段id和message_data分发给媒体应用112;或者
(b)立即将事件的字段id和message_data分发给媒体应用112,以及包括1)到事件的被导出的开始时间的时间、或者2)此分发的当前媒体时间和事件的被导出的开始时间。此外,可以提供事件持续时间;或者
(c)在媒体呈现时间轴上的但仍早于事件的被导出的开始时间的稍后时间处,分发事件的字段id连同message_data;以及包括1)
到事件开始的时间、或2)此分发的当前媒体时间和事件的被导出的开始时间。另外,可以提供事件持续时间。
iv.如果当前媒体呈现时间大于或等于事件的被导出的开始时间、但小于[derived Event start time(被导出的事件开始时间)+event_duration],并且(如在步骤iii中描述的)事件信息尚未被发送给媒体应用112,则DASH客户端110可以立即给媒体应用112分发该事件信息、连同当前媒体呈现时间和事件的被导出的开始时间的值;
v.如果当前呈现的媒体时间大于或等于[Event’s derived start time
(事件的被导出的开始时间)+event_duration],则DASH客户端110可以忽略事件消息盒。
否则,DASH客户端110忽略事件消息盒。
另外,在发生如上所述的步骤iii或iv时,DASH客户端110可以在事件的被导出的开始时间的精确时刻处给媒体应用112发送“event_start(事件_开始)”通知,以及在事件期满的精确时刻处给媒体应用112发送“event_end(事件_结束)”通知(由[Event’sderived start time+event_duration])。
DASH客户端110可以被配置为执行下面描述的两个示例技术中的一个(如上所述),或者其它类似技术。在第一示例技术中,DASH客户端110发送在‘emsg’盒的字段id和message_data中包含的媒体应用112信息。另外,DASH客户端110还可以给媒体应用112发送event_duration和timescale信息,以将事件在媒体时间上的持续时间告知媒体应用112。另外或替代地,DASH客户端110可以将在‘emsg’中包含的事件持续时间信息从媒体时间转换为以整数秒加分数秒为单位的量,然后将该信息提供给媒体应用112。在这两个选项中,假定媒体应用112具有访问已知频率的系统时钟以确定事件期满。
此外,在第一示例技术中,媒体应用112可以被配置为确定交互性窗口或交互性事件的开始与事件信息的接收时间一致。媒体应用112可以(通过id并且可能通过从DASH客户端110接收到的来自‘emsg’盒的参数message_data中的信息进行补充)识别要运行的交互性逻辑。然后,媒体应用112可以如在事件信息中所指示的有效时段内激活交互性窗口或交互性事件(媒体应用112可能已从DASH客户端110计算或接收到该事件信息)。
图3是示出示例多媒体内容120的元素的概念图。多媒体内容120可以对应于多媒体内容64(图1),或者存储在存储介质62中的另一多媒体内容。在图3的示例中,多媒体内容120包括媒体呈现描述(MPD)122和多个表示124A-124N(表示124)。表示124A包括可选的报头数据126和段128A-128N(段128),而表示124N包括可选的报头数据130和段132A-132N(段132)。为了方便起见,字母N用于指表示124中的每一个表示中的最后的电影片段。在一些示例中,在表示124之间可以存在不同数量的电影片段。
MPD 122可以包括与表示124分开的数据结构。MPD 122可以对应于图1的清单文件66。同样,表示124可以对应于图1的表示68。通常,MPD 122可以包括通常描述表示124的特征的数据,诸如编码和呈现特征、自适应集、MPD 122对应的档次、文本类型信息、摄像机角度信息、评级信息、技巧模式信息(例如,指示包括时间子序列的表示的信息)和/或用于获取远程时段的信息(例如,用于在回放期间将目标广告插入到媒体内容中)。
报头数据126当存在时可以描述段128的特征,例如,随机访问点(RAP,也称为流访问点(SAP))的时间位置、段128中的哪一个包括随机访问点、段128内的随机访问点的字节偏移、段128的统一资源定位符(URL)、或段128的其它方面。报头数据130当存在时可以描述段132的类似特征。另外或替代地,这些特征可以完全包括在MPD 122内。
段128、132包括一个或多个被编码的视频样本,每个被编码的视频样本可以包括视频数据的帧或片。段128的被编码的视频样本中的每一个可以具有类似的特征,例如,高度、宽度和带宽要求。这样的特征可以由MPD 122的数据来描述,但在图3的示例中没有示出这种数据。MPD 122可以包括3GPP规范所描述的特性,加上本公开内容中描述的任何或所有以信令通告的信息。
段128、132中的每一个可以与唯一的统一资源定位符(URL)相关联。从而,段128、132中的每一个可以是使用诸如DASH的流网络协议独立地可获取的。以这种方式,诸如客户端设备40的目的地设备可以使用HTTP GET请求以获取段128或132。例如,客户端设备40可以使用HTTP部分GET请求以获取段128或132的专用字节范围。
图4是示出示例视频文件150的元素的框图,其可以对应于表示的段,例如图3的段128、132之一。段128、132中的每一个可以包括基本上符合图4的示例中所示的数据的布置的数据。可以认为视频文件150封装了一段。如上所述,根据ISO基本媒体文件格式及其扩展的视频文件将数据存储为一系列对象,称为“盒”。在图4的示例中,视频文件150包括文件类型(FTYP)盒152、电影(MOOV)盒154、段索引(sidx)盒162、电影片段(MOOF)盒166、和电影片段随机访问(MFRA)盒168。虽然图4表示了视频文件的示例,但是应理解,其它媒体文件可以包括根据ISO基本媒体文件格式及其扩展的类似于视频文件150的数据而结构化的其它类型的媒体数据(例如,音频数据、定时文本数据等)。
文件类型(FTYP)盒152通常描述针对视频文件150的文件类型。文件类型盒152可以包括标识描述针对视频文件150的最佳用途的规范的数据。文件类型盒152可以替代地放置在MOOV盒154、电影片段盒166和/或MFRA盒168之前。
在一些示例中,诸如视频文件150的段可以在FTYP盒152之前包括MPD更新盒(未示出)。MPD更新盒可以包括指示与包括视频文件150的表示对应的MPD将被更新的信息、以及用于更新MPD的信息。例如,MPD更新盒可以提供要被用于更新MPD的资源的URI或URL。作为另一示例,MPD更新盒可以包括用于更新MPD的数据。在一些示例中,MPD更新盒可以紧跟在视频文件150的段类型(STYP)盒(未示出)之后,其中STYP盒可以定义针对视频文件150的段类型。
在图4的示例中,MOOV盒154包括电影报头(MVHD)盒156、轨道(TRAK)盒158和一个或多个电影扩展(MVEX)盒160。通常,MVHD盒156可以描述视频文件150的一般特征。例如,MVHD盒156可以包括描述最初创建视频文件150时的时间、上次修改视频文件150的时间、针对视频文件150的时间刻度、针对视频文件150的回放的持续时间、或通常描述视频文件150的其它数据。
TRAK盒158可以包括用于视频文件150的轨道的数据。TRAK盒158可包括轨道报头(TKHD)盒,其描述与TRAK盒158对应的轨道的特征。在一些示例中,TRAK盒158可以包括被编码的视频图片,而在其它示例中,轨道的被编码的视频图片可以被包括在电影片段166中,其中电影片段166可以被TRAK盒158和/或sidx盒162的数据引用。
在一些例子中,视频文件150可以包括一个以上的轨道。相应地,MOOV盒154可以包括与视频文件150中的轨道的数量相等数量的数个TRAK盒。TRAK盒158可以描述视频文件150的对应轨道的特征。例如,TRAK盒158可以描述对应轨道的时间和/或空间信息。当封装单元30(图3)在视频文件(例如视频文件150)中包括参数集轨道时,与MOOV盒154的TRAK盒158类似的TRAK盒可以描述参数集轨道的特征。封装单元30可以在描述参数集轨道的TRAK盒内以信令通告序列级SEI消息在参数集轨道中的存在情况。
MVEX盒160可以描述对应的电影片段166的特征,例如,以便以信令通告:除了在MOOV盒154内包含的视频数据(如果有的话),视频文件150还包括电影片段166。在流视频数据的上下文中,被编码的视频图片可以被包括在电影片段166中而不是在MOOV盒154中。相应地,所有被编码的视频样本可以被包括在电影片段166中,而不是在MOOV盒154中。
MOOV盒154可以包括与视频文件150中的电影片段166的数量相等数量的数个MVEX盒160。MVEX盒160中的每一个可以描述电影片段166中的对应的一个电影片段的特征。例如,每个MVEX盒可以包括描述针对电影片段166中的对应的一个电影片段的时间持续时间的电影扩展报头盒(MEHD)盒。
如上所述,封装单元30可以在不包括实际的被编码的视频数据的视频样本中存储序列数据集。视频样本通常可以对应于访问单元,访问单元是特定时间实例处的被编码的图片的表示。在AVC的上下文中,被编码的图片包括一个或多个VCL NAL单元(其包含用以构造访问单元的所有像素的信息)以及其它相关联的非VCL NAL单元(诸如SEI消息)。相应地,封装单元30可以在电影片段166中的一个电影片段中包括可以包括序列级SEI消息的序列数据集。封装单元30还可以将序列数据集和/或序列级SEI消息的存在情况,以信号通告为存在于与电影片段166中的一个电影片段对应的一个MVEX盒160中的该个电影片段166中。
SIDX盒162是视频文件150的可选元素。也就是说,符合3GPP文件格式或其它此类文件格式的视频文件不一定包括SIDX盒162。根据3GPP文件格式的示例,SIDX盒可以被用于标识段的子段(例如,在视频文件150内包含的段)。3GPP文件格式将子段定义为“一个或多个具有对应的媒体数据盒的连续的电影片段盒的独立集、以及包含由电影片段盒引用的数据的媒体数据盒,必须在该电影片段盒之后且在包含有关相同的轨道的信息的下一电影片段盒之前”。3GPP文件格式还指示:SIDX盒“包含对由该盒记录的(子)段的子段的引用的序列。所引用的子段在呈现时间上是连续的。类似地,由段索引盒指代的字节在段内总是连续的。被引用的大小给出了被引用的材料中的字节的数量的计数。”
SIDX盒162通常提供代表在视频文件150中包括的段的一个或多个子段的信息。例如,此类信息可以包括子段开始和/或结束时的回放时间、针对子段的字节偏移、子段是否包括(例如,开始于)流访问点(SAP)、SAP的类型(例如,SAP是否是瞬时解码器刷新(IDR)图片、干净随机访问(CRA)图片、断开链接访问(BLA)图片等)、SAP在子段中的位置(以回放时间和/或字节偏移而言)等。
电影片段166可以包括一个或多个被编码的视频图片。在一些示例中,电影片段166可以包括一组或多组图片(GOP),其中每一组可以包括若干被编码的视频图片,例如,帧或图片。另外,如上所述,在一些示例中,电影片段166可以包括序列数据集。电影片段166中的每一个可以包括电影片段报头盒(MFHD,图4中未示出)。MFHD盒可以描述对应的电影片段的特征,诸如针对电影片段的序列号。电影片段166可以按照序列号的顺序被包括在视频文件150中。
MFRA盒168可以描述视频文件150的电影片段166内的随机访问点。这可以有助于执行技巧模式,诸如在由视频文件150封装的段内执行对特定时间位置(即,回放时间)的搜索。MFRA盒168通常是可选的,并且在一些示例中不需要被包括在视频文件中。同样,诸如客户端设备40的客户端设备不一定需要引用MFRA盒168以正确解码和显示视频文件150的视频数据。MFRA盒168可以包括数个轨道片段随机访问(TFRA)盒(未示出),该数个轨道片段随机访问(TFRA)盒的数量等于视频文件150的轨道的数量,或者在一些示例中等于视频文件150的媒体轨道(例如,非提示轨道)的数量。
在一些示例中,电影片段166可以包括一个或多个流访问点(SAP),诸如IDR图片。同样,MFRA盒168可以提供对SAP的视频文件150内的位置的指示。相应地,可以根据视频文件150的SAP来形成视频文件150的时间子序列。时间子序列还可以包括其它图片,诸如依赖于SAP的P帧和/或B帧。时间子序列的帧和/或片可以被布置在段内,使得时间子序列的依赖于子序列的其它帧/片的帧/片可以被正确解码。例如,在数据的分层布置中,被用于预测其它数据的数据也可以被包括在时间子序列中。
根据本公开内容的技术,视频文件150还包括事件消息(EMSG)盒164。EMSG盒164通常包括代表上述一个或多个交互性事件的数据。在一个例子中,EMSG盒164可以具有以下定义和语法:
scheme_id_uri可以标识消息方案。message_data[]的语义和语法可以由所标识的方案的所有方来定义。字符串可以使用URN或URL语法。当使用URL时,建议还包含mmyyyy格式的month-date(月份日期);URL的分配必须在该日期或非常接近该日期时由该URL中的域名的所有方授权。URL可以解析为Internet位置,进行解析的位置可以存储消息方案的规范。
Value可以指定针对事件的值。值空间和语义可以由字段scheme_id_uri中标识的方案的所有方定义。
Timescale可以提供针对此盒内的时间和持续时间字段的时间刻度(以滴答/秒为单位);
Presentation_time_delta可以提供事件的媒体呈现时间与此段中的最早呈现时间之间的时间差。如果存在段索引,则最早的显示时间可以由第一个‘sidx’盒的字段earliest_presentation_time(最早_呈现_时间)确定。如果段索引不存在,则可以将最早呈现时间确定为媒体段中的任何访问单元的最早呈现时间。时间刻度可以在字段timescale中提供。
Event_duration可以提供媒体呈现时间中的事件的持续时间。时间刻度可以在字段timescale中指示。值0xFFFF可以指示未知的持续时间。
Id可以是对消息的此实例进行标识的字段。具有相同语义的消息可以具有相同的值,即,处理具有相同id的任何一个事件消息盒就足够了。
Message_data可以包括消息的主体,其可以填充消息盒的其余部分。这可以是空的,具体取决于上面的信息。此字段的语法和语义可以由字段scheme_id_uri中标识的方案的所有方定义。
在另一个例子中,emsg盒可以具有以下语法,其语义与上述针对版本0的语义相似,并且如下面针对版本1来讨论:
媒体应用112可以订阅由emsg盒的scheme_id_uri和value指示的事件类型。根据上面讨论的第一示例方法,当DASH客户端110从媒体应用112接收到包括与订阅对应的scheme_id_uri和value的emsg盒时,DASH客户端110可以将emsg盒中的id和message_data[]信息递送给媒体应用112。具体而言,DASH客户端110可以处理timescale值、presentation_time值和event_duration值中的每一者,以确定是否以及何时将事件信息(例如,至少id和message_data)分发给媒体应用112。在一个示例中,DASH客户端110额外地向媒体应用112发送timescale数据和event_duration数据。在另一示例中,DASH客户端110从timescale和event_duration来计算在流逝时间中的事件持续时间,并将该信息发送给媒体应用112。
在一些示例中,服务器设备60或另一设备可以通过向DASH客户端110发送具有相同的id值但持续时间为空(即,字段event_duration为空值)的第二事件消息来动态地或突然地终止正在进行的事件。
根据上面讨论的第二示例性技术,DASH客户端110在当前的媒体时间等于事件开始时间的确切时刻处,仅向媒体应用112发送在‘emsg’的字段id和message_data中包含的信息。也就是说,DASH客户端110可以不向媒体应用112发送上述emsg盒的定时信息相关的字段。可以假设实际事件持续时间信息被嵌入到字段message_data中。在没有由DASH客户端110提供的当前媒体时间信息的情况下,媒体应用112假设事件开始与从DASH客户端112接收到事件信息的时间一致,可以假设媒体应用112具有访问系统时钟以确定事件到期时间的权限。第二示例技术与第一示例技术之间的区别在于:在DASH客户端110和媒体应用112之间处理本质上针对每个实体的数据时存在逻辑分离。
如在第一示例技术中,媒体应用112考虑交互性窗口的开始与其接收到事件信息的时间一致。另外如在第一示例技术中,媒体应用112可以根据id值(可能通过参数message_data的信息补充)来识别要运行的交互性逻辑,由此激活具有由在字段message_data中传达的事件持续时间给定的有效时段的交互性窗口/交互性事件。
在第二示例技术中,DASH客户端110处理上述emsg盒中的timescale、presentation_time和event_duration,以确定是否以及何时将事件信息(id和message_data)发送给媒体应用112。如在第一示例技术中,源设备60或另一设备可以通过向DASH客户端110发送具有相同的id值但持续时间值为空的第二事件消息来动态或突然地终止正在进行的事件。
图5是根据本公开内容的技术的示例,示出示例交互性窗口的概念图。交互性窗口有开始时间(IntyWindowstart)和结束时间(IntyWindowend),并且由此交互性窗口开始时间和结束时间之间的差是由字段event_duration的值给出的。交互性事件(诸如IEA、IEB和IEC)的出现是由应用执行交互性逻辑引起的。在每个交互性事件期间,交互式内容或UI控件可以与主节目一起被显示,以实现交互式用户参与。
下面的术语、定义和工作假设可以应用于交互性窗口的实例,如图5的示例所示,如交互逻辑所定义地,在该交互性窗口中可以发生一个或多个交互性事件。交互性窗口开始时间IntyWindowstart可以与媒体应用112从DASH客户端110接收到事件信息(至少id、message_data)的时刻一致。在当前媒体呈现时间与事件开始时间(例如,presentation_time)相同时,DASH客户端110可以向媒体应用112分发事件信息。从DASH客户端110的对事件信息的发送时间到媒体应用112处的对事件信息的接收时间之间的延迟(例如,以毫秒为单位)通常相对于交互性事件的时间尺度(例如,以数十秒为单位)可以忽略不计。交互性窗口结束时间IntyWindowend可以由[IntyWindowstart+Event duration(事件持续时间)]给出。假定执行交互性逻辑的媒体应用112能够访问用于确定IntyWindowend的稳定时钟基准。交互性事件IntyEvent代表在其期间交互式内容和/或用户界面(UI)控件被呈现给用户从而实现对应的用户参与的间隔。交互性逻辑可以规定是否允许正在进行的IntyEvent扩展到交互性窗口内的下一个IntyEvent(如果存在的话),并可能抑制该稍后的交互性事件的发生。当媒体应用112接收到具有相同的id的新事件信息时,可以中断和终止活动的交互性窗口。例如,内容服务提供商(例如,图1的内容准备设备20和/或源设备60)可以动态终止节目中断以恢复主节目播放。
在一个示例中,如果DASH客户端110在相比如由presentation_time代表的或者如根据presentation_time_delta导出的指示性的事件开始时间早的当前的媒体呈现时间处(例如,在时间T1处),接收到与交互性相关的DASH事件,则DASH客户端110可以存储该事件,并在当前的媒体呈现时间与事件的开始时间或被导出的开始时间匹配时的时刻处,向媒体应用112发送事件的id、消息数据(message data)和事件持续时间(event duration)。
在另一个示例中,如果DASH客户端110在相比如由presentation_time代表的或者如根据presentation_time_delta导出的指示性的事件开始时间晚的、但相比指示性的事件开始时间加上其持续时间之和早的当前的媒体呈现时间处(例如,在时间T2处),接收到与交互性相关的DASH事件,则DASH客户端110可以立即将事件的id、消息数据和事件持续时间分发给媒体应用112。
在另一个示例中,如果DASH客户端110在相比如由presentation_time代表的或者如根据presentation_time_delta导出的指示性的事件开始时间加上事件的持续时间之和晚的当前的媒体呈现时间处(例如,在时间T3处),接收到与交互性相关的DASH事件,则DASH客户端110可以放弃将该事件中包含的信息转发给媒体应用112。
以这种方式,主节目期间的服务交互性可以由交互性窗口的一个或多个实例定义,每个实例可以包含一个或多个交互性事件。每个交互性窗口可以有明确定义的开始时间和结束时间,分别是IntyWindowstart和IntyWindowend。在一个示例中,IntyWindowstart是媒体应用112接收到由DASH客户端110分发的事件信息时的精确时刻,并且IntyWindowend是根据[IntyWindowstart+event_duration]导出的。当DASH客户端110接收到感兴趣的事件(其匹配如由应用订阅的schemeIdUri和value)时,DASH客户端110可以将在该事件中包含的信息分发给媒体应用112,只要当前的媒体呈现时间早于指示性的事件开始时间+event_duration(从媒体应用112的角度来看相当于交互性窗口的到期时间)。
图6A–6C是根据本公开内容技术的各种示例,描述示例时间轴注意事项的流程图。在图6A中,DASH服务器(例如,图1的服务器设备60)发送消息以开始和结束事件。DASH客户端(例如,获取单元52(图1和2)的DASH客户端110(图2))向媒体应用(例如,图2的媒体应用112)递送通知。
在图6B中,DASH客户端(例如,图2的DASH客户端110)向媒体应用112发送事件描述。DASH客户端110可以向媒体应用112递送事件描述。媒体应用112可以管理自接收以来的时间。此示例可以确保针对事件持续时间的平滑结束点。
在图6C中,DASH客户端接收事件描述,并管理媒体应用112。在此示例中,DASH客户端不向媒体应用112递送事件持续时间信息。因此,媒体应用112不具有对应的DASH时间轴的信息。这可以确保针对事件持续时间的结束点,但可能导致突然的终止。
图6A–6C的示例各自可以有一定的媒体控制偏差。
图7A–7C是根据本公开内容技术的各种示例,示出示例DASH客户端模型的概念图。图7A示出了针对第二媒体的广告源180、第一流媒体源182、主要DASH客户端184和具有媒体回放应用的浏览器186。图7B示出了针对第二媒体的广告源190、第一流媒体源192、主要DASH客户端196、DASH客户端194和具有媒体回放应用的浏览器198。图7C示出了针对第二媒体的广告源200、第一流媒体源202、统一DASH客户端204和具有媒体回放应用的浏览器206。在图7A–7C中的每个图中,所描绘的DASH客户端184、196、204可以对应于例如DASH客户端110(图2),而所描绘的具有与浏览器186、198、206相关联的应用(app)的浏览器可以对应于例如媒体应用112(图2)。
图7A描绘了输入开关模型的示例。在此例子中,没有响应于开关的故障(glitch),在一个流中提供媒体数据。在可以包括交互数据的广告期间,可能丢失与主要emsg流的连接。
图7B描绘了包括两个DASH客户端194、196的输出开关模型的示例。在此例子中,有一个潜在的响应于开关的故障。主要媒体流始终是可用于主要DASH客户端196。
图7C描绘了双输入单输出模型的示例。在此例子中,没有响应于开关的故障。通过媒体是在一个流中提供的。统一DASH客户端204解析流经的emsg流,并且可以在广告期间(例如,专门标记的emsg)在端口1上检测“return to 1message(返回到1消息)”。
图8是根据本公开内容的技术的示例,示出针对交互性事件的事件持续时间的另一示例的概念图。图8的示例示出了两个示例交互性事件:IEA和IEB。在一种示例性技术中,如上文所述,DASH客户端110(图2)发送在‘emsg’的字段id和message_data中包含的媒体应用112(图2)信息。在一些示例中,DASH客户端110可以额外地向媒体应用112发送even_duration(单位为滴答)和timescale(以滴答/秒为单位),以告知媒体应用112关于事件在媒体时间上的持续时间。另外或替代地,DASH客户端110还可以将在‘emsg’中包含的事件持续时间信息转换为以整秒和分数秒为单位的持续时间,并将计算出的持续时间值发送给媒体应用112。假定媒体应用112能够访问已知频率的系统时钟以实现时间计算。
假设当前的媒体时间早于事件开始(由presentation_time给定),对于上面讨论的任一选项,DASH客户端110可以在事件开始之前分发上述事件信息,并且包括到事件开始的时间、或此分发的当前的媒体时间和事件开始时间。DASH客户端110可以稍后向媒体应用112通知实际的事件开始。另外或替代地,在当前的媒体时间达到事件开始(如由presentation_time给定)时,DASH客户端110可以分发事件信息。
然后,媒体应用112可以识别要运行的交互逻辑(通过id,并且可能由message_data中的信息进行补充),从而激活交互性事件。媒体应用112可以使用如由(根据从DASH客户端110接收到的信息计算的、或者对应于由DASH客户端110给定的数据计算的)事件持续时间给定的有效时段。
作为替代示例,DASH客户端110可以仅向媒体应用112发送“emsg”的字段id和message_data中包含的信息以及当前的媒体时间。当DASH客户端110发送该信息时,可以假设事件开始以及持续时间被嵌入到字段message_data中。假定媒体应用112能够访问系统时钟以确定事件开始和事件期满的实际发生。
如上例所述,DASH客户端110可以确定在事件开始之前分发事件信息,并且包括到事件开始的时间、或者此分发的当前的媒体时间和事件开始时间。DASH客户端110可以额外地向媒体应用112通知事件开始时间。替代地,在当前的媒体呈现时间到达事件开始时间时,DASH客户端110可以分发事件信息。
另外如在上述示例中所述,媒体应用112随后可以识别要运行的交互逻辑(通过id,并且可能通过message_data中的信息进行补充),从而激活交互性事件。媒体应用112可以使用如由(在message_data内传达的)事件持续时间给定的有效时段。
下面是根据本公开内容的技术示例的另一交互性事件定时模型示例。以下术语、定义和操作假设适用并假设在DASH事件(匹配被订阅的方案Id)和交互性事件IntyEvent之间的1:1对应关系,交互性事件的功能由交互性逻辑定义。交互性事件代表在其期间交互式内容和/或UI控件被呈现给用户,从而实现对应的用户参与的间隔。如由应用设置的交互性事件开始时间IntyEventstart可以:
·给定如下情况,与如在‘emsg’(通过presentation_time)中指示的事件开始一致:在DASH客户端110接收到‘emsg’时,其当前的媒体时间早于事件开始,并且DASH客户端110选择在事件开始之前将事件信息分发给媒体应用112、连同a)到事件开始的时间或b)此分发的当前的媒体时间和事件开始时间;或
·在没有上述定时数据的情况下并且给定如下情况,与媒体应用112接收到事件信息时的确切时间一致:在DASH客户端110接收到‘emsg’时,其当前的媒体呈现时间要么早于或等于presentation_time,要么晚于presentation_time但事件尚未到期。
在此例中,交互性事件结束时间IntyEventend由[IntyEventstart+eventduration]给出。执行交互逻辑的媒体应用112被假定能够访问用于确定IntyEventend的稳定时钟基准。它取决于交互性逻辑是否允许一个正在进行的IntyEvent扩展到下一个IntyEvent并可能抑制后一个事件的发生。媒体应用112可能在接收到具有相同的id的新事件时中断和终止活动的交互性事件。例如,内容服务提供商(例如,内容准备设备20和/或服务器设备60)可以确定动态地终止节目中断,以恢复主节目回放。
图9是示出可以由DASH客户端110在不同的时间处执行的任务的各种示例的概念图。具体而言,图9描绘了当DASH客户端110检测到特定于交互性的‘emsg’的到达时,DASH客户端110可以在当前的媒体呈现时间(TM,1、TM,2和TM,3)处执行的动作。
在TM,1处,DASH客户端110确定存储事件,并在媒体呈现时间与事件的被导出的开始时间TS匹配时的精确时刻处,将事件的id和(message_data)1分发给媒体应用112。在此例中,[IntyEventstart]1=TS,以及及[IntyEventend]1=Ts+(Event duration)1。
在TM,2处,DASH客户端110立即将事件的id和(message_data)2分发给媒体应用112。在此例中,[IntyWindowstart]2=TM,2,以及[IntyWindowend]2=TM,2+(Event duration)2。
在TM,3处,由于TM,3>TS+(event_duration)3,所以DASH客户端110忽略该事件。即,DASH客户端110不向媒体应用112分发事件。
图10是根据本公开内容的技术,示出另一示例交互性定时模型的概念图。在此例中,由DASH客户端110接收‘emsg’的假定时间、以及DASH客户端110是否、何时以及如何确定向媒体应用112分发事件信息可以如下所述。
在一些示例中,只要分发时间早于事件期满(由presentation_time+event_duration给定),DASH客户端110就可以选择在接收到‘emsg’时立即分发事件信息或稍后分发事件信息。
在一些示例中,除了id和message_data之外,DASH客户端110还可以向媒体应用112提供event_duration值和timescale值,或者计算出的在流逝时间中的事件持续时间。
在一些示例中,DASH客户端110还可以在所分发的事件信息中包括当前的媒体时间。如果没有提供,则媒体应用112应假设事件开始时间与其从DASH客户端110接收到事件信息的时间一致。
图11是根据本公开内容的技术,示出另一示例交互性定时模型的概念图。图11描绘了从服务器设备60(图1)到DASH客户端110(图2)的媒体递送的示例,给定id值的‘emsg’的多个实例,对应于流中的多个RAP(随机访问点),以使应用(经由DASH客户端)加入正在进行的事件。在一个示例中,如果当DASH客户端110在media time(媒体时间)=150处接收到‘emsg’(id=200)时媒体应用112是活动的,则DASH客户端110可以选择a)立即或者b)在当前的媒体时间=事件开始时间=200时,将事件信息分发给媒体应用112。在另一示例中,如果媒体应用112在事件开始之后被激活,并且DASH客户端110在媒体时间=250或350处接收到‘emsg’(id=200),则DASH客户端110可以向媒体应用112分发包含在该‘emsg’中的事件信息,但对于在媒体时间=450处到达的‘emsg’不是这样。
总之,主节目期间的服务交互性可以由交互性窗口的一个或多个实例定义,每个实例包含一个或多个交互性事件。交互性事件可以有定义明确的开始时间和结束时间,分别是IntyEventstart和IntyEventend。如前所述,IntyEventstar可以由不同的准则来建立,这可能取决于DASH客户端110何时以及如何向媒体应用112分发事件信息。IntyEventend可以由[IntyEventstart+Event duration]给定。
只要当前的媒体时间早于被导出的事件开始时间+event_duration(从媒体应用112的角度相当于交互性事件的到期时间),DASH客户端110就可以响应于接收到感兴趣的事件(其匹配由媒体应用112订阅的schemeIdUri和value)而向媒体应用112分发事件信息。
图12是示出根据本公开内容的技术的示例方法的流程图。关于图2的DASH客户端110解释图12的方法。然而,应理解,在其它示例中,可以配置其它设备或单元以执行该方法或类似方法。例如,图7A–7C中的各个DASH客户端184、196、204可以被配置为执行该方法或类似方法。
最初,DASH客户端110请求包括交互性事件的流式媒体数据(300)。也就是说,根据本公开内容的技术,流式媒体数据可以包括要在指定的时间(例如,在交互性窗口内)呈现的对应的交互性事件。
DASH客户端110随后可以接收包括针对交互性事件的一个或多个事件消息的媒体数据(例如,段)(302)。DASH客户端110可以确定针对每个事件消息的开始时间(304)以及针对事件消息的结束时间(306)。DASH客户端110可以将媒体数据转发给媒体应用112(308)。在当前的媒体呈现时间大于或等于事件开始时间时,DASH客户端110还可以向媒体应用112转发交互性事件数据(310)。具体地,如上所述,如果在事件开始时间处或之前接收到事件消息,则DASH客户端110可以等待直到当前的媒体呈现时间等于事件开始时间。如果当前的媒体呈现时间大于事件开始时间,并且针对事件的持续时间加上当前的媒体呈现时间小于事件结束时间,则DASH客户端110可以立即转发交互性事件数据。然而,如果当前的媒体呈现时间加上针对事件的持续时间大于事件结束时间,则DASH客户端110可以忽略交互性事件数据。
以这种方式,图12的方法表示一个方法的示例,该方法包括:由设备的流客户端确定针对与交互性窗口对应的事件消息的开始时间,在所述交互性窗口期间能够在对媒体数据的呈现期间发生一个或多个交互性事件,所述交互性事件包括所述设备的用户能够在其期间与所呈现的媒体数据交互的时间,所述流客户端是在所述设备的电路中实现的;由所述流客户端确定针对与所述交互性窗口对应的所述事件消息的结束时间;在与所述事件消息对应的所述交互性窗口期间,由所述流客户端接收代表所述交互性事件中的至少一个交互性事件的数据;以及由所述流客户端将代表所述交互性事件中的所述至少一个交互性事件的所述数据转发给所述设备的媒体呈现应用,所述媒体呈现应用是在所述设备的电路中实现的。
在一个或多个示例中,所描述的功能可以硬件、软件、固件或其任何组合来实现。如果以软件实现,则这些功能可以作为在计算机可读介质上的并且由基于硬件的处理单元执行的一个或多个指令或代码来存储或通过该一个或多个指令或代码来发送。计算机可读介质可以包括:计算机可读存储介质,其对应于诸如数据存储介质的有形介质;或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可对应于(1)非临时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一台或多台计算机或一台或多台处理器访问以获取用于实现在本公开内容中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
举例来说但非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备、闪存、或任何其它可以用指令或数据结构形式存储所需程序代码并可由计算机访问的介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(如红外线、无线电和微波)从网站、服务器或其它远程源发送指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(如红外线、无线电和微波)包含在介质的定义中。然而,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它临时性介质,而是被定向到非临时性的、有形的存储介质。如本文所使用的磁盘和光盘包括压缩光盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光盘,其中磁盘通常以磁方式再现数据,而光盘则用激光以光学方式再现数据。上述组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器(例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或分立逻辑电路)执行。因此,本文所使用的术语“处理器”可以指前述结构中的任何一个结构或适于实现本文所述技术的任何其它结构。另外,在一些方面,本文所描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或者并入组合式编解码器中。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本公开内容的技术可以被实现在各种各样的设备或装置,包括无线手持装置、集成电路(IC)或一组IC(例如,芯片组)。在本公开内容中描述各个组件、模块或单元以强调被配置来执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元实现。而是,如上所述,各个单元可以被组合在编解码器硬件单元中,或者由互操作的硬件单元(包括如上所述的一个或多个处理器)的集合与适当的软件和/或固件一起来提供。
已描述了各个示例。这些和其它示例在接下来的权利要求书的范围内。
Claims (30)
1.一种获取媒体数据的方法,所述方法包括:
由设备的流客户端来确定针对与交互性窗口对应的事件消息的开始时间,在所述交互性窗口期间能够在对媒体数据的呈现期间发生一个或多个特定于应用的交互性事件,所述特定于应用的交互性事件包括所述设备的用户能够在其期间与所呈现的媒体数据交互的时间,所述流客户端是在所述设备的电路中实现的;
由所述流客户端来确定针对与所述交互性窗口对应的所述事件消息的结束时间;
在与所述事件消息对应的所述交互性窗口期间,由所述流客户端来接收代表所述特定于应用的交互性事件中的至少一个特定于应用的交互性事件的数据;以及
由所述流客户端来向所述设备的媒体呈现应用转发代表所述特定于应用的交互性事件中的所述至少一个特定于应用的交互性事件的所述数据,所述媒体呈现应用是在所述设备的电路中实现的。
2.根据权利要求1所述的方法,还包括:
由所述流客户端从所述媒体呈现应用来接收对与交互性事件对应的具有特定的标识符值的DASH事件的订阅;
由所述流客户端来解析对所述媒体数据的表示的段,所述表示的所述段包括一个或多个DASH事件;
通过解析所述表示,由所述流客户端来检测所述DASH事件中的至少一个DASH事件;以及
由所述流客户端来确定所述DASH事件中的所述至少一个DASH事件具有所述特定的标识符值,
其中,转发代表与交互性事件对应的所述DASH事件中的所述至少一个DASH事件的所述数据包括:响应于确定所述DASH事件中的所述至少一个DASH事件具有所述特定的标识符值,转发代表所述特定于应用的交互性事件中的所述至少一个特定于应用的交互性事件的所述数据。
3.根据权利要求1所述的方法,其中,转发代表与交互性事件消息对应的事件消息中的至少一个事件消息的数据包括:
由所述流客户端来确定针对所述事件消息中的所述至少一个事件消息的开始时间;
由所述流客户端来确定当前的媒体呈现时间小于针对所述事件消息中的所述至少一个事件消息的所述开始时间;
响应于确定所述当前的媒体呈现时间小于针对所述事件消息中的所述至少一个事件消息的所述开始时间,由所述流客户端将代表所述事件消息中的所述至少一个事件消息的所述数据分发给所述媒体呈现应用。
4.根据权利要求1所述的方法,其中,转发代表与交互性事件消息对应的事件消息中的至少一个事件消息的数据包括:
由所述流客户端来确定针对所述事件消息中的所述至少一个事件消息的开始时间;
由所述流客户端来确定当前的媒体呈现时间小于针对所述事件消息中的所述至少一个事件消息的所述开始时间;
响应于确定所述当前的媒体呈现时间小于针对所述事件消息中的所述至少一个事件消息的所述开始时间:
由所述流客户端来缓存代表所述事件消息中的所述至少一个事件消息的所述数据;以及
当随后的媒体呈现时间与针对所述事件消息中的所述至少一个事件消息的所述开始时间匹配时,由所述流客户端来将代表所述事件消息中的所述至少一个事件消息的所述数据分发给所述媒体呈现应用。
5.根据权利要求1所述的方法,还包括:
由所述流客户端来确定针对与交互性事件消息对应的所述事件消息中的第二事件消息的开始时间;
由所述流客户端来确定针对与所述交互性事件消息对应的所述事件消息中的所述第二事件消息的持续时间;
由所述流客户端来确定当前的媒体呈现时间是否大于针对与所述交互性事件消息对应的所述事件消息中的所述第二事件消息的所述开始时间加上所述持续时间;
响应于确定所述当前的媒体呈现时间大于针对与所述交互性事件消息对应的所述事件消息中的所述第二事件消息的所述开始时间加上所述持续时间,放弃将代表与所述交互性事件消息对应的所述事件消息中的所述第二事件消息的数据分发给所述媒体呈现应用;以及
响应于确定所述当前的媒体呈现时间小于或等于针对与所述交互性事件消息对应的所述事件消息中的所述第二事件消息的所述开始时间加上所述持续时间,将代表与所述交互性事件消息对应的所述事件消息中的所述第二事件消息的数据分发给所述媒体呈现应用。
6.根据权利要求1所述的方法,其中,转发代表与交互性事件消息对应的事件消息中的至少一个事件消息的数据包括:转发带内事件消息(EMSG)盒,所述带内事件消息(EMSG)盒包括代表与交互性事件消息对应的所述事件消息中的所述至少一个事件消息的所述数据,其中,所述EMSG盒包括针对与交互性事件消息对应的所述事件消息中的所述至少一个事件消息的标识符属性、和针对与交互性事件消息对应的所述事件消息中的所述至少一个事件消息的消息数据属性。
7.根据权利要求1所述的方法,还包括:
处理针对所述媒体数据的清单文件,其中,处理所述清单文件包括:确定所述清单文件包括指示所述媒体数据包括与交互性事件消息对应的具有EMSG盒形式的一个或多个事件消息的数据,其中,所述清单文件的所述数据指示所述媒体数据的一个或多个表示或所述媒体数据的一个或多个自适应集中的至少一者,所述媒体数据包括与交互性事件消息对应的具有所述EMSG盒形式的所述一个或多个事件消息。
8.根据权利要求1所述的方法,其中,转发代表与交互性事件消息对应的事件消息中的至少一个事件消息的数据包括:转发来自带内事件消息EMSG盒的数据,所述EMSG盒包括代表与交互性事件消息对应的所述事件消息中的所述至少一个事件消息的所述数据,所述来自所述EMSG盒的数据包括所述EMSG盒的标识符值和message_data元素。
9.根据权利要求8所述的方法,还包括:向所述媒体呈现应用转发所述EMSG盒的timescale元素、所述EMSG盒的presentation_time元素或所述EMSG盒的event_duration元素中的一个或多个的值。
10.根据权利要求8所述的方法,还包括:
根据所述EMSG盒的timescale元素和所述EMSG盒的event_duration元素的值,来计算在流逝时间中的事件持续时间值;以及
将所计算的事件持续时间值转发给所述媒体呈现应用。
11.根据权利要求1所述的方法,其中,确定针对所述交互性窗口的所述开始时间以及确定针对所述交互性窗口的所述结束时间包括:根据第一事件消息,来确定针对所述交互性窗口的所述开始时间以及确定针对所述交互性窗口的所述结束时间,所述方法还包括:
接收指示针对所述交互性窗口的被更新的结束时间的与交互性事件消息对应的不同的第二事件消息,所述被更新的结束时间早于所确定的结束时间;以及
响应于所述第二事件消息,将代表所述被更新的结束时间的数据转发给所述媒体呈现应用。
12.根据权利要求1所述的方法,其中,转发代表与交互性事件消息对应的事件消息中的至少一个事件消息的数据包括:转发针对所述媒体数据的清单文件的数据。
13.根据权利要求12所述的方法,其中,所述清单文件包括媒体呈现描述(MPD),其中,所述清单文件的所述数据包括所述MPD的Period元素中的EventStream元素,其中,所述EventStream元素包括针对在所述MPD中包含的事件流中的至少一个事件流的公共信息,每个事件流包括与交互性事件消息对应的一个或多个事件消息,所述一个或多个事件消息包括针对与交互性事件消息对应的所述事件消息中的每个事件消息的标识符、与事件定时相关的信息、和消息数据属性。
14.根据权利要求13所述的方法,其中,所述公共信息包括标识符值或时间刻度值中的至少一个,其中,所述标识符值包括schemeIdUri或schemeIdUri和值对。
15.根据权利要求13所述的方法,其中,所述事件流的所述一个或多个事件消息中的每个事件消息对应于所述EventStream元素的事件子元素的实例,并且其中,所述事件消息的事件定时信息包括:与事件的呈现开始时间相对应的相对于包含所述事件的时段的开始的事件开始时间、以及所述事件的持续时间。
16.根据权利要求1所述的方法,还包括:
由所述流客户端在早于针对第二事件消息(EMSG)的事件开始时间的当前的媒体时间处,接收针对媒体数据的交互性事件的所述第二事件消息(EMSG);以及
由流客户端,在新的当前的媒体时间与所述事件开始时间匹配时立即向所述媒体呈现应用分发针对所述EMSG的事件信息,或者在稍后的媒体时间处向所述媒体呈现应用分发针对所述EMSG的事件信息,使得所述稍后的媒体时间加上针对所述交互性事件的持续时间小于针对所述交互性事件的到期时间。
17.根据权利要求16所述的方法,还包括:在所述流客户端立即分发所述事件信息时,由所述流客户端向所述媒体呈现应用发送在所述EMSG中包括的数据以及在所述分发发生时的媒体时间,所述数据包括时间刻度值、呈现时间值和事件持续时间值。
18.根据权利要求16所述的方法,还包括:在所述流客户端立即分发所述事件信息时:
计算分发时间与所述事件开始时间之间的差值;以及
将来自所述EMSG的所述差值、时间刻度值和事件持续时间值发送给所述媒体呈现应用。
19.根据权利要求16所述的方法,其中,在所述流客户端在所述新的当前的媒体时间与所述事件开始时间匹配时分发所述事件信息时,所述方法还包括由所述流客户端向所述媒体呈现应用发送在所述EMSG中包括的数据,所述数据包括时间刻度值和事件持续时间值。
20.根据权利要求19所述的方法,其中,所述流客户端还将来自所述EMSG的呈现时间值或分发发生的媒体时间中的至少一项发送给所述媒体呈现应用。
21.根据权利要求19所述的方法,其中,接收包括:在等于所述事件开始时间的媒体时间处接收所述EMSG。
22.根据权利要求16所述的方法,所述方法还包括:在所述流客户端在所述稍后的时间处分发所述事件信息时,由所述流客户端向所述媒体呈现应用发送在所述EMSG中包括的数据以及所述分发的媒体时间,所述数据包括时间刻度值、呈现时间值和事件持续时间值。
23.根据权利要求22所述的方法,其中,接收包括:在所述事件开始时间之后但在所述到期时间之前的时间处接收所述EMSG。
24.根据权利要求16所述的方法,其中,分发包括:仅向所述媒体呈现应用分发所述EMSG的标识符值和message_data字段,以指示所有事件定时信息是被嵌入在所述message_data字段中的。
25.根据权利要求1所述的方法,还包括:响应于所述设备的所述用户在与所述媒体数据对应的节目启动之后调到所述节目中,激活所述流客户端和所述媒体呈现应用。
26.一种用于接收媒体数据的设备,所述设备包括被配置在于电路中实现的一个或多个处理器中的流客户端和媒体呈现应用,其中,所述流客户端被配置为:
确定针对与交互性窗口对应的事件消息的开始时间,在所述交互性窗口期间能够在对媒体数据的呈现期间发生一个或多个特定于应用的交互性事件,所述特定于应用的交互性事件包括所述设备的用户能够在其期间与所呈现的媒体数据交互的时间;
确定针对与所述交互性窗口对应的所述事件消息的结束时间;
在与所述事件消息对应的所述交互性窗口期间,接收代表所述特定于应用的交互性事件中的至少一个特定于应用的交互性事件的数据;以及
向所述媒体呈现应用转发代表所述特定于应用的交互性事件中的所述至少一个特定于应用的交互性事件的所述数据。
27.根据权利要求26所述的设备,其中,所述流客户端还被配置为:
从所述媒体呈现应用接收对与交互性事件对应的具有特定的标识符值的DASH事件的订阅;
解析对所述媒体数据的表示的段,所述表示的所述段包括一个或多个DASH事件;
通过解析所述表示,来检测所述DASH事件中的至少一个DASH事件;以及
确定所述DASH事件中的所述至少一个DASH事件具有所述特定的标识符值,
其中,所述流客户端被配置为:响应于确定所述DASH事件中的所述至少一个DASH事件具有所述特定的标识符值,转发代表所述特定于应用的交互性事件中的所述至少一个特定于应用的交互性事件的所述数据。
28.根据权利要求26所述的设备,其中,为了转发代表与交互性事件消息对应的事件消息中的至少一个事件消息的数据,所述流客户端被配置为:
确定针对所述事件消息中的所述至少一个事件消息的开始时间;
确定当前的媒体呈现时间小于针对所述事件消息中的所述至少一个事件消息的所述开始时间;
响应于确定所述当前的媒体呈现时间小于针对所述事件消息中的所述至少一个事件消息的所述开始时间,将代表所述事件消息中的所述至少一个事件消息的所述数据分发给所述媒体呈现应用。
29.根据权利要求26所述的设备,其中,所述流客户端被配置为转发针对所述媒体数据的媒体呈现描述(MPD),所述MPD包括表示与交互性事件消息对应的所述事件消息中的所述至少一个事件消息的所述数据,其中,所述MPD的所述数据包括所述MPD的Period元素中的EventStream元素,其中,所述EventStream元素包括针对在所述MPD中包含的事件流中的至少一个事件流的公共信息,每个事件流包括与交互性事件消息对应的一个或多个事件消息,所述一个或多个事件消息包括针对与交互性事件消息对应的所述事件消息中的每个事件消息的标识符、与事件定时相关的信息、和消息数据属性。
30.根据权利要求26所述的设备,其中,所述流客户端还被配置为:
在早于针对第二事件消息(EMSG)的事件开始时间的当前的媒体时间处,接收针对媒体数据的交互性事件的所述第二事件消息(EMSG);以及
在新的当前的媒体时间与所述事件开始时间匹配时立即向所述媒体呈现应用分发针对所述EMSG的事件信息,或者在稍后的媒体时间处向所述媒体呈现应用分发针对所述EMSG的事件信息,使得所述稍后的媒体时间加上针对所述交互性事件的持续时间小于针对所述交互性事件的到期时间。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862641817P | 2018-03-12 | 2018-03-12 | |
US62/641,817 | 2018-03-12 | ||
US16/298,877 | 2019-03-11 | ||
US16/298,877 US10938872B2 (en) | 2018-03-12 | 2019-03-11 | Processing interactivity events for streaming media data |
PCT/US2019/021924 WO2019178148A1 (en) | 2018-03-12 | 2019-03-12 | Processing interactivity events for streaming media data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111837403A CN111837403A (zh) | 2020-10-27 |
CN111837403B true CN111837403B (zh) | 2022-08-16 |
Family
ID=67843627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980018531.4A Active CN111837403B (zh) | 2018-03-12 | 2019-03-12 | 处理用于以流传送媒体数据的交互性事件 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10938872B2 (zh) |
CN (1) | CN111837403B (zh) |
WO (1) | WO2019178148A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015029401A1 (ja) * | 2013-08-29 | 2015-03-05 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 送信方法および受信方法ならびに送信装置および受信装置 |
US10432688B2 (en) * | 2015-03-13 | 2019-10-01 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for optimized delivery of live ABR media |
US10986203B2 (en) * | 2019-02-08 | 2021-04-20 | American Express Travel Related Services Company, Inc. | Balancing and control framework for real-time processing |
US11356723B2 (en) * | 2019-09-06 | 2022-06-07 | Tencent America LLC | In-manifest update event |
US11303688B2 (en) * | 2019-09-30 | 2022-04-12 | Tencent America LLC | Methods and apparatuses for dynamic adaptive streaming over HTTP |
US10979784B1 (en) | 2019-12-02 | 2021-04-13 | CodeShop, B.V. | Track format for carriage of event messages |
US11546406B2 (en) * | 2020-04-13 | 2023-01-03 | Tencent America LLC | Media systems and methods including mixed event message tracks |
US11184647B1 (en) * | 2020-08-31 | 2021-11-23 | Verzon Patent and Licensing Inc. | Methods and systems for interactive content delivery within a live video stream |
US11687386B2 (en) * | 2020-10-07 | 2023-06-27 | Tencent America LLC | MPD validity expiration processing model |
GB2617048B (en) * | 2021-01-06 | 2024-10-23 | Canon Kk | Method and apparatus for encapsulating uncompressed images and uncompressed video data into a file |
US11451602B2 (en) * | 2021-01-06 | 2022-09-20 | Tencent America LLC | Methods and apparatuses for dynamic adaptive streaming over HTTP |
US11218784B1 (en) | 2021-04-09 | 2022-01-04 | CodeShop, B.V. | Method and system for inserting markers in a media presentation |
US11882170B2 (en) * | 2021-04-19 | 2024-01-23 | Tencent America LLC | Extended W3C media extensions for processing dash and CMAF inband events |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151323B2 (en) * | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
WO2009079417A1 (en) * | 2007-12-14 | 2009-06-25 | Stratosaudio, Inc. | Systems and methods for scheduling interactive media and events |
WO2009134261A1 (en) * | 2008-04-30 | 2009-11-05 | Hewlett-Packard Development Company, L.P. | Messaging between events |
CN101990126B (zh) * | 2009-08-07 | 2015-01-07 | 传线网络科技(上海)有限公司 | 互联网点播或直播信号动态切换中插播广告的方法 |
KR20110105710A (ko) * | 2010-03-19 | 2011-09-27 | 삼성전자주식회사 | 복수의 챕터를 포함하는 콘텐트를 적응적으로 스트리밍하는 방법 및 장치 |
EP2622557B1 (en) * | 2010-09-27 | 2019-07-17 | Hulu, LLC | Method and apparatus for providing directed advertising based on user preferences |
EP2979458A4 (en) * | 2013-07-25 | 2016-03-02 | Huawei Tech Co Ltd | SYSTEM AND METHOD FOR EFFICIENTLY CONTROLLING CLIENT BEHAVIOR IN ADAPTIVE FLOW DIFFUSION |
US10902474B2 (en) * | 2014-03-24 | 2021-01-26 | Qualcomm Incorporated | Targeted advertisement insertion for streaming media data |
US10134059B2 (en) * | 2014-05-05 | 2018-11-20 | Spotify Ab | System and method for delivering media content with music-styled advertisements, including use of tempo, genre, or mood |
KR20160091780A (ko) * | 2015-01-26 | 2016-08-03 | 엘지전자 주식회사 | 이동단말기 및 그 제어방법 |
MY194189A (en) * | 2015-02-11 | 2022-11-18 | Vid Scale Inc | Systems and methods for generalized http headers in dynamic adaptive streaming over http (dash) |
WO2016140477A1 (ko) * | 2015-03-01 | 2016-09-09 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
US10291681B2 (en) * | 2015-06-18 | 2019-05-14 | Ericsson Ab | Directory limit based system and method for storing media segments |
US10193994B2 (en) * | 2015-06-18 | 2019-01-29 | Qualcomm Incorporated | Signaling cached segments for broadcast |
US11038938B2 (en) | 2016-04-25 | 2021-06-15 | Time Warner Cable Enterprises Llc | Methods and apparatus for providing alternative content |
KR20170140066A (ko) | 2016-06-12 | 2017-12-20 | 엘지전자 주식회사 | MBMS(Multimedia Broadcast/Multicast Service) 수신기 및 그의 멀티캐스트 신호 수신 방법 |
US11064267B2 (en) * | 2016-11-14 | 2021-07-13 | Google Llc | Systems and methods for providing interactive streaming media |
US11310540B2 (en) | 2017-11-10 | 2022-04-19 | Qualcomm Incorporated | Interfaces between dash aware application and dash client for service interactivity support |
-
2019
- 2019-03-11 US US16/298,877 patent/US10938872B2/en active Active
- 2019-03-12 CN CN201980018531.4A patent/CN111837403B/zh active Active
- 2019-03-12 WO PCT/US2019/021924 patent/WO2019178148A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2019178148A1 (en) | 2019-09-19 |
CN111837403A (zh) | 2020-10-27 |
US20190281100A1 (en) | 2019-09-12 |
US10938872B2 (en) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111837403B (zh) | 处理用于以流传送媒体数据的交互性事件 | |
US10454985B2 (en) | File format based streaming with dash formats based on LCT | |
RU2718170C2 (ru) | Определение местоположений событий доставки мультимедиа для транспортировки мультимедиа | |
US10902474B2 (en) | Targeted advertisement insertion for streaming media data | |
CN107743703B (zh) | 用于媒体数据传输的方法、设备及计算机可读存储介质 | |
US11617019B2 (en) | Retrieving and accessing segment chunks for media streaming | |
US9456015B2 (en) | Representation groups for network streaming of coded multimedia data | |
US20160337424A1 (en) | Transferring media data using a websocket subprotocol | |
CN111656796A (zh) | 动态条件性广告插入 | |
US20180176278A1 (en) | Detecting and signaling new initialization segments during manifest-file-free media streaming | |
WO2019217733A1 (en) | Signaling, in a manifest file, missing sections of media data for network streaming | |
US11843840B2 (en) | Random access at resync points of DASH segments | |
US11184665B2 (en) | Initialization set for network streaming of media data | |
KR20160138044A (ko) | 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입 | |
CN115244943B (zh) | 用于传输媒体数据的方法、设备和计算机可读存储介质 | |
US11582125B2 (en) | Repair mechanism for adaptive bit rate multicast |
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 |