CN115581124A - 用于处理dash和cmaf带内事件的扩展的w3c媒体扩展 - Google Patents

用于处理dash和cmaf带内事件的扩展的w3c媒体扩展 Download PDF

Info

Publication number
CN115581124A
CN115581124A CN202180032630.5A CN202180032630A CN115581124A CN 115581124 A CN115581124 A CN 115581124A CN 202180032630 A CN202180032630 A CN 202180032630A CN 115581124 A CN115581124 A CN 115581124A
Authority
CN
China
Prior art keywords
event
segment
buffer
fragment
media
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.)
Pending
Application number
CN202180032630.5A
Other languages
English (en)
Inventor
伊拉吉·索达加
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent America LLC
Original Assignee
Tencent America 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 Tencent America LLC filed Critical Tencent America LLC
Publication of CN115581124A publication Critical patent/CN115581124A/zh
Pending legal-status Critical Current

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/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/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

包括一种方法及装置,装置中包括至少一个存储器,用于存储计算机程序代码;至少一个处理器执行:获得媒体数据;从所述媒体数据中,生成至少一个事件片段;将所述至少一个事件片段附加到第一事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件开始偏移,所述事件开始偏移基于该事件片段被附加到所述第一事件处理缓冲器的时间来确定;将所述至少一个事件片段附加到第二事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件派发信息;及,基于所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述事件派发信息,派发所述至少一个事件片段。

Description

用于处理DASH和CMAF带内事件的扩展的W3C媒体扩展
引用并入
本申请要求于2019年4月19日提交、申请号为63/176,748号的美国临时申请的优先权,于2021年10月6日提交的、申请号为17/495,299的美国申请的优先权,以及其全部内容通过引用并入本申请中。
技术领域
本申请实施例涉及流媒体内容,尤其涉及根据运动图象专家组(MPEG)经由超文本传输协议(DASH)动态自适应流式传输媒体内容。
背景技术
MPEG DASH为IP网络上的流式传输媒体内容提供了标准。在MPEG DASH中,媒体呈现描述(MPD,media presentation description)和带内事件(inband events)用于将媒体时间线相关的事件传递到客户端。DASH提供一种用于媒体片段的机制来携带带内事件。类似地,通用媒体应用格式(CMAF,Common Media Application Format)为CMAF块提供了携带带内事件的机制。一个流行的DASH事件是带内MPD有效性到期事件。其它事件包括诸如SCTE-35(“用于电缆的数字节目插入提示消息”)事件的应用事件。
流媒体播放器,包括DASH播放器,使用媒体源扩展(MSE,Media SourceExtensions),其允许浏览器或用户代理来处理媒体片段。然而,当前的MSE规范不支持解析和处理嵌入在DASH或CMAF媒体片段中的带内事件。利用当前MSE规范的浏览器或用户代理不能原生地处理DASH或CMAF带内事件,并且将带内事件派发给相应的应用。
发明内容
本申请解决了至少一个技术问题。本申请提供了解决方案,使得MSE原生地处理DASH和CMAF带内事件盒(box)。本申请提供了解决方案,使得MSE解析和处理媒体片段中包含的DASH和CMAF带内事件。这样,基于本申请,使用MSE的浏览器或者用户代理,能够原生地处理DASH和CMAF带内事件盒,并将它们发送至相应的应用。
本申请还能解决带内事件与相应应用之间的时间同步。传统方法包括使用MSE中的事件开始时间,并处理应用中的事件。但是,这种传统方法需要维护一个公共的时间参考。本申请提供了一种替代的时间同步方式,基于派发时间,使用偏移开始时间来指示事件开始时间。使用偏移时间降低了网络开销、服务器计算开销以及应用计算开销。
本申请实施例提供了解决方案,使得MSE原生地处理媒体片段中包含的DASH和CMAF带内事件盒。
本申请包括方法及装置,所述装置包括:至少一个存储器,用于存储计算机程序代码;至少一个处理器,用于读取所述计算机程序代码,根据所述计算机程序代码的指令进行操作,所述程计算机序代码包括:第一获得代码,用于使得所述至少一个处理器,获得媒体数据;第一生成代码,用于使得所述至少一个处理器,从所述媒体数据中,生成至少一个事件片段;第一附加代码,用于使得所述至少一个处理器,将所述至少一个事件片段附加到第一事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件开始偏移,所述事件开始偏移基于该事件片段被附加到所述第一事件处理缓冲器的时间来确定;第一附加代码,用于使得所述至少一个处理器,将所述至少一个事件片段附加到第二事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件派发信息;及,第一派发代码,用于使得所述至少一个处理器,基于所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述事件派发信息,派发所述至少一个事件片段。
根据示例性实施例,将所述至少一个事件片段附加到所述第一事件处理缓冲器,使得所述至少一个事件片段中每个事件片段的呈现时间和持续时间,与媒体缓冲区中至少一个相关联的媒体片段的呈现时间和持续时间对准。
根据示例性实施例,所述将所述至少一个事件片段附加到第二事件处理缓冲器包括:将所述至少一个事件片段的附加操作,复制到所述第一事件处理缓冲器。
根据示例性实施例,基于所述至少一个事件片段中每个事件片段的所述事件派发信息,将所述至少一个事件片段附加到所述第二事件处理缓冲器。
根据示例性实施例,所述事件派发信息包括指示事件初始化、事件附加、事件清除、事件持续时间、或事件重写中至少一项的信息。
根据示例性实施例,所述第一派发代码还包括:第一确定代码,用于使得所述至少一个处理器,确定所述至少一个事件片段是否被包括在派发事件表中;第二派发代码,用于使得所述至少一个处理器,当确定出所述至少一个事件片段未被包括在所述派发事件表中,将所述至少一个事件片段派发给应用。
根据示例性实施例,计算机程序代码还包括:第一添加代码,用于使得所述至少一个处理器,在派发所述至少一个事件片段之后,将所述至少一个事件片段添加到派发事件表。
根据示例性实施例,计算机程序代码还包括:第二生成代码,用于使得所述至少一个处理器,生成至少一个新事件片段;第一拆分代码,用于使得所述至少一个处理器,基于所述至少一个新事件片段的事件持续时间,拆分所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述至少一个事件片段;第一重写代码,用于使得所述至少一个处理器,基于所述至少一个新事件片段的事件持续时间,重写所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述至少一个事件片段。
根据示例性实施例,所述第一重写代码还包括:第二确定代码,用于使得所述至少一个处理器,确定所述第一事件处理缓冲器中的所述至少一个事件片段,不与同一媒体片段相关联;第一删除代码,用于使得所述至少一个处理器,删除所述第二事件处理缓冲器中的所述至少一个事件片段;第二删除代码,用于使得所述至少一个处理器,删除所述第一事件处理缓冲器中的所述至少一个事件片段;第三附加代码,用于使得所述至少一个处理器,将所述至少一个新事件片段附加到所述第一事件处理缓冲器和所述第二事件处理缓冲器。根据示例性实施例,所述至少一个事件片段中每个事件片段与媒体缓冲器中的至少一个媒体样本相关联。
附图说明
根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中:
图1示出了根据本申请一实施例的通信系统的简化示意图;
图2示出了根据本申请一实施例的流环境中部件放置的示意图;
图3示出了根据本申请一实施例的DASH处理模型的简化框图;
图4示出了根据本申请另一实施例的DASH处理模型的简化框图;
图5示出了根据本申请一实施例的媒体缓冲器和事件缓冲器的简化框图;
图6示出了根据本申请另一实施例的媒体缓冲器和事件缓冲器的简化框图;
图7示出了根据本申请又一实施例的媒体缓冲器和事件缓冲器的简化框图;
图8A示出了根据本申请一实施例的处理DASH和CAMF带内事件过程的简化示意图;
图8B示出了根据本申请另一实施例的处理DASH和CAMF带内事件过程的简化示意图;
图9示出了根据本申请又一实施例的处理DASH和CAMF带内事件过程的简化示意图;
图10示出了根据实施例的计算机系统的示意图。
具体实施方式
下面所讨论的本申请提出的特征,可以单独使用,或者以任何顺序进行组合。进一步,本申请实施例可以由处理电路(例如,至少一个处理器,或者,至少一个集成电路)来实施。在一个示例中,至少一个处理器执行存储在非易失性计算机可读介质中的程序。
图1是根据本申请公开的实施例的通信系统1000的简化框图。通信系统1000包括通过网络105互连的第一终端102和第二终端103。对于单向数据传输,第一终端103可对本地位置上的视频数据进行编码,以通过网络105传输到另一终端102。第二终端102可从网络105接收另一终端的已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。
图1示出了另一对终端101和104,来支持已编码视频数据的双向传输,例如在视频会议期间。对于双向数据传输,每个终端101和/或104可对本地获取到的视频数据进行编码,以通过网络105传输到另一终端。每个终端101和/或104还可接收由另一终端传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
在图1中,终端101、102、103和/或104可为服务器、个人计算机和智能电话,但本申请公开的原理可不限于此。本申请公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络105表示在终端101、102、103和/或104之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络105可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络105的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
作为实施例,图2示出视频编码器和视频解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
流式传输系统可包括采集子系统203,所述采集子系统可包括数码相机等视频源201,所述视频源创建例如未压缩的视频样本流213。相较于已编码的视频码流,视频样本流213被强调为高数据量的视频图片流,可由耦接到视频源201的编码器202进行处理。编码器202可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于样本流,已编码的视频码流204被强调为较低数据量,其可存储在流式传输服务器205上以供将来使用。至少一个流式传输客户端212和207,可访问流式传输服务器205以检索已编码的视频码流208进而206,二者是已编码的视频码流204的副本。客户端212包括视频解码器211。视频解码器211对已编码的视频码流208的进入副本进行解码,且产生可在显示器209或另一呈现装置上呈现的输出视频样本流210。在一些流式传输系统中,可根据某些视频编码/压缩标准,对已编码的视频码流204、206、208进行编码。该些标准的示例如上指出的那些,并且在此进一步描述。
5G媒体流(5GMS)系统是应用功能、应用服务器和接口的集合,与支持下行链路媒体流服务、或上行链路媒体流服务、或两者的5G媒体流架构相互连接。5GMS应用提供商可以包括与5GMS系统的功能进行交互并且提供与5GMS系统的功能交互的5GMS感知应用的一方。5GMS感知应用可以指由5GMS应用提供商提供的用户设备(UE)中的应用,其包含5GMS应用服务的服务逻辑,并且经由5GMS架构中定义的接口和应用编程接口(API)与其它5GMS客户端和网络功能交互。5GMS客户端可以指一种UE功能,包括5GMS下行链路(5GMSd)客户端或5GMS上行链路(5GMSu)客户端或两者。
5GMSd客户端可以指一种UE功能,该UE功能至少包括5G媒体流播放器和用于下行链路流式传输的媒体会话处理器,并且可以通过明确定义的接口/API来访问。5GMSu客户端可以指5GMSu服务的发起者,其中,通过明确定义的接口/API来访问5GMSu。5GMSu流媒体播放器可以指一种UE功能,该UE功能使得将流式传输媒体内容上行链路递送到5GMS应用提供商的应用服务器(AS)功能,并且该UE功能能够不仅与用于媒体捕获和后续流式传输的5GMSu感知应用交互,还能与用于媒体会话控制的媒体会话处理器交互。
动态策略指动态策略和计费控制(PCC)规则,用于在媒体会话期间上行链路或下行链路的应用流。排出会话(egest session)指从5GMS AS到5GMSu应用提供商的上行链路媒体流会话。接入会话(ingest session)指将媒体内容上载到5GMSd AS的会话。策略模板指(半静态)策略或控制功能(PCF)/网络开放功能(NEF)API参数的集合,其中,NEF API参数专用于5GMS应用提供商以及所得到的PCC规则。策略模板ID可以识别期望的策略模板,该期望的策略模板由5GMSd应用功能(AF)用来面向5G系统选择适当的PCF/NEF API,使得PCF可以编译期望的PCC规则。媒体播放器条目指文档或指向文档的指示符,用于定义媒体呈现(例如,DASH的媒体呈现描述(MPD)或视频剪辑文件的统一资源定位符(URL))。流媒体播放器条目(Media Streamer Entry)指定义上行链路媒体流会话的入口点的指示符(例如,呈URL的形式)。呈现条目指文档或指向文档的指示符,用于定义应用呈现,诸如HTML5文档。
供应会话(Provisioning Session)指由5GMSd应用提供商在接口(M1d)处提供的数据结构,该5GMSd应用提供商配置与一组5GMSd感知应用相关的5GMSd特征。5GMSd媒体播放器指UE功能,该UE功能使得能够基于媒体播放条目来重放和呈现媒体呈现,并且向5GMSd感知应用展示一些基本控制,诸如播放、暂停、搜索、停止等。服务器访问信息指激活接收流会话(streaming session)所需的一组参数和地址(包括5GMSd AF和5GMSd AS地址)。服务和内容发现指由5GMSd应用提供商向5GMS感知应用提供的功能和程序,该5GMS感知应用使得终端用户能够发现可用的流式传输服务和内容设置,并且选择特定的服务或内容项来访问。服务通告(Service Announcement)指在5GMS感知应用与5GMS应用提供商之间执行的程序,使得5GMS感知应用能够直接或以引用信息的形式,获得5GMS服务访问信息。
第三方播放器指一部分应用,其使用API来运用(exercise)选择的5GMSd功能以回放媒体内容。第三方上行链路流媒体播放器指一部分应用,其使用API来运用选择的5GMSu功能以捕获和流式传输媒体内容。
图3示出了诸如用于处理DASH和CMAF事件的样本客户端架构的样本DASH处理模型300。在DASH处理模型300中,客户端对媒体片段的请求可以基于清单解析器(manifestparser)303中描述的地址。清单解析器303还描述了元数据轨道,客户端可以从元数据轨道访问元数据轨道的片段,对这些片段进行解析,并将它们发送到应用301。
清单解析器303包括MPD事件或带内事件,带内事件和‘moof’解析器306可以解析MPD事件片段或带内事件片段,并将事件片段附加到事件和元数据缓冲器330。带内事件和‘moof’解析器306还可以提取媒体片段并将其附加到媒体缓冲器340。事件和元数据缓冲器330可以将事件和元数据信息发送到事件和元数据同步器和派发器335。事件和元数据同步器和派发器335可以将特定事件派发给DASH播放器控制、选择和启发逻辑(HeuristicLogic)302,并且将与应用相关的事件和元数据轨道派发给应用301。
根据一些实施例,MSE可以包括媒体缓冲器340和媒体解码器345。MSE 320是媒体片段的一个或多个逻辑缓冲器,可以基于媒体片段的呈现时间来确认和排序媒体片段。可以基于媒体片段的时间戳偏移,将每个媒体片段添加或附加到媒体缓冲器340,并且可以使用时间戳偏移来对媒体缓冲器340中的媒体片段进行排序。
只要媒体片段存在于媒体缓冲器340中,事件和元数据缓冲器330就维护对应的事件片段和元数据。根据图3,MSE 320仅包括媒体缓冲器340和媒体解码器345。事件和元数据缓冲器330以及事件和元数据同步器和派发器335对于MSE 320不是原生(native)的,禁止MSE 320原生地处理事件并将它们发送到应用。
图4示出了诸如用于处理DASH和CMAF事件的样本客户端架构的样本DASH处理模型400。在DASH处理模型400中,媒体片段的客户端请求可以基于清单403中描述的地址。清单403还描述了元数据轨道,客户端可以从元数据轨道访问元数据轨道的片段,对这些片段进行解析,并且将它们发送到应用401。
清单403包括MPD事件或带内事件,并且带内事件和‘moof’解析器406可以解析MPD事件片段或带内事件片段,并将事件片段附加到事件清除(purge)缓冲器430。基于媒体数据或媒体流以及清单403中的信息,带内事件和‘moof’解析器406可以提取媒体片段并且将其附加到媒体缓冲器440。事件清除缓冲器330可以将事件和元数据信息发送到事件同步器和派发器435。事件同步器和派发器435可以将特定事件派发给DASH播放器控制、选择和启发逻辑402,并且将与应用相关的事件和元数据轨道派发给应用401。
根据示例性实施例,在图4中,MSE被扩展为包括:媒体缓冲器340、媒体解码器345、事件清除缓冲器430、事件同步器和派发器435以及已经派发(already-dispatched)的事件表450。已经派发的事件表450可以记录已经派发给应用401的事件。事件清除缓冲器430以及事件同步器和派发器435的扩展,使得MSE能够本地处理带内事件,并且创建已经派发的事件表450,使得能够记录和检测已经派发的事件消息。
在示例性实施例中,MSE 420或其部件可以基于事件片段的事件特定偏移来派发事件。示例包括事件开始时间偏移。MSE 420或其部件可以确定事件片段的事件开始时间偏移,其中,通过参考事件呈现时间来确定开始时间偏移,并且使用事件开始时间偏移,在事件清除缓冲器430或事件同步器和派发器435中对事件进行排序和派发。在示例性实施例中,事件开始时间偏移和时间戳偏移可以是等效的,其中,事件开始时间偏移是指事件清除缓冲器430或事件同步器和派发器435中的事件片段,时间戳偏移是指媒体缓冲器440中的媒体片段。
在示例性实施例中,MSE 420可以针对关联的事件和媒体,处理事件片段以及媒体片段清除和重写。如果与事件相关联的媒体片段被保留在媒体缓冲器440中,则MSE420可以将事件保留在事件清除缓冲器430或事件同步器和派发器435中。MSE 420可以基于相关联的媒体片段的定时和持续时间来管理事件片段的定时和持续时间。
在示例性实施例中,应用401可以设置时间戳偏移或事件时间戳偏移。应用401还可以设置方案URI/值和用于方案URI/值的派发模式。MSE 420可以基于方案URI/值、事件ID、指示与事件片段相关联的媒体片段的事件关联ID、事件片段的呈现时间、事件的开始时间偏移和事件持续时间,来派发事件。
图5示出了处理媒体片段和事件片段的示例媒体和事件缓冲器组500。每个媒体流510可以包括媒体片段(S0,S1,S2,S3)和事件片段(E0,E1,E2)。媒体片段可以被附加到媒体源缓冲器或媒体缓冲器520。
带内事件和‘moof’解析器406可以解析媒体流并且生成媒体片段和事件片段。可以基于时间戳偏移,将每个媒体片段附加到媒体源缓冲器或媒体缓冲器520。附加到媒体源缓冲器或媒体缓冲器520的每个媒体片段,可以具有唯一的事件关联ID。使用相应媒体片段的事件关联ID,可以将生成的事件片段(E0,E1,E2)与特定媒体片段(S0,S1,S2,S3)相关联。在示例性实施例中,多个事件片段可以与一个媒体片段相关联。
在示例性实施例中,可以通过将事件清除缓冲器530中的事件片段的事件开始时间和事件持续时间,与媒体缓冲器520中的相关联的媒体片段(S0,S1,S2,S3)的开始时间和持续时间对准,将事件片段(E0,E1,E2)附加到事件清除缓冲器530。作为示例,一个或多个事件片段的呈现时间或事件开始时间偏移和事件清除缓冲器530中的持续时间,可以与媒体缓冲器620中的相关联媒体片段的呈现时间和持续时间对准。在一些示例性实施例中,如果多于一个事件片段与同一媒体片段相关联,则可以基于相关联的媒体片段的呈现时间来调整每个事件片段的事件开始时间偏移。
在一些示例性实施例中,可以通过在事件清除缓冲器530中复制相应事件片段的事件开始时间和持续时间,将事件片段附加到事件派发缓冲器540。在一些实施例中,事件片段的顺序、呈现时间和持续时间,在事件清除缓冲器530和事件派发缓冲器540两者中,可以是等效的。作为示例,如果应用已经将该方案设置为“on_receive”,则事件片段的呈现时间或事件开始时间偏移和事件派发缓冲器540中的持续时间,可以与相关联的媒体片段的呈现时间和持续时间对准,即,事件派发缓冲器540可以是事件清除缓冲器530的副本。
图6示出了处理媒体片段和事件片段的示例媒体和事件缓冲器组。每个媒体流610可以包括媒体片段(S0,S1,S2,S3)和事件片段(E0,E1,E2)。媒体片段可以被附加到媒体源缓冲器或媒体缓冲器620。
带内事件和‘moof’解析器406可以解析媒体流,并且生成媒体片段和事件片段。可以基于时间戳偏移,将每个媒体片段附加到媒体源缓冲器或媒体缓冲器620。附加到媒体源缓冲器或媒体缓冲器620的每个媒体片段,可以具有唯一的事件关联ID。使用相应媒体片段的事件关联ID,可以将生成的事件片段(E0,E1,E2)与特定媒体片段(S0,S1,S2,S3)相关联。在示例性实施例中,多个事件片段可以与一个媒体片段相关联。
在示例性实施例中,通过将事件清除缓冲器630中的事件片段的事件开始时间和事件持续时间,与媒体缓冲器620中的相关联的媒体片段(S0,S1,S2,S3)的开始时间和持续时间对准,可以将事件片段(E0,E1,E2)附加到事件清除缓冲器630。作为示例,一个或多个事件片段的呈现时间或事件开始时间偏移和事件清除缓冲器630中的持续时间可以与媒体缓冲器620中的相关联媒体片段的呈现时间和持续时间对准。在一些示例性实施例中,如果多于一个事件片段与同一媒体片段相关联,则应该基于相关联的媒体片段的呈现时间来调整每个事件片段的事件开始时间偏移。
在示例性实施例中,可以通过添加事件片段来将事件片段附加到事件派发缓冲器640,使得事件片段的事件开始时间偏移是事件派发缓冲器640中的事件的呈现时间,并且事件片段的持续时间是事件派发缓冲器640中的事件的持续时间。作为示例,如果应用已经将该方案设置为“on_start”,则事件片段的呈现时间和事件派发缓冲器640中持续时间可以反映事件片段的事件开始时间偏移和持续时间。在一些实施例中,事件派发缓冲器640可以反映事件片段的事件开始时间和持续时间,即,可以附加事件片段,使得事件片段在事件派发缓冲器640中是从事件片段的开始直到事件片段的结束。因此,在一些实施例中,事件清除缓冲器630和事件派发缓冲器640可以不是等效的。
图7示出了用于处理媒体片段和事件片段的示例媒体和事件缓冲器组700。每个媒体流710可以包括媒体片段(S0,S1,S2,S3)和事件片段(E0,E1,E2)。媒体片段可以被附加到媒体源缓冲器或媒体缓冲器720。
在示例性实施例中,事件清除缓冲器730和事件派发缓冲器740中的事件片段(E0,E1,E2)可以被移除、清除或重写。在一些实施例中,事件片段可以被部分地移除、清除或重写。为了移除、清除或重写事件片段,可以从事件清除缓冲器730和事件派发缓冲器740中移除事件片段。作为示例,一旦媒体片段在媒体缓冲器720中被重写,事件清除缓冲器730和事件派发缓冲器740中与被重写的媒体片段相关联的相应事件片段也可以被重写。
在一些实施例中,为了部分地移除或重写事件片段,事件片段可以在事件清除缓冲器730和事件派发缓冲器740中被分割成更小的分段(sections),并且可以仅移除、清除或重写与新事件片段重叠的事件片段的各个分段,进而添加新事件片段的各个分段。作为示例,如果新事件片段小于事件清除缓冲器730或事件派发缓冲器740中的当前事件片段,则事件清除缓冲器730中的一个或多个当前事件片段可以被分割成更小的分段以匹配新事件片段。事件清除缓冲器730中与新的较小事件片段重叠的事件片段的各个分段可以被移除、清除或重写。
在一些实施例中,可以仅移除、清除或重写事件清除缓冲器730中与新事件片段重叠的事件片段。在一些实施例中,可以仅移除、清除或重写事件派发缓冲器740中与新事件片段重叠的事件片段。事件清除缓冲器730可以被重写,并且然后事件派发缓冲器740可以被重写,使得事件清除缓冲器730和事件派发缓冲器740可以是等效的。作为示例,如果应用已经将该方案设置为“on_receive”,则可以重写事件清除缓冲器730和事件派发缓冲器740两者中与新事件片段重叠的事件片段或事件片段的各个分段。
在一些示例性实施例中,事件片段的移除、清除或重写需要确定:在事件清除缓冲器730中不存在与同一媒体片段相关联的其它事件片段。在一些示例性实施例中,如果在事件清除缓冲器730中不存在与同一媒体片段相关联的其它事件片段,则事件派发缓冲器740中的对应事件可以被移除、清除或重写。作为示例,如果多于一个事件片段与事件清除缓冲器730中的新事件片段重叠,则重写重叠的事件片段要求:在重写事件清除缓冲器730中的重叠事件片段之前,派发与同一媒体片段相关联的所有事件片段。在一些实施例中,如果在事件清除缓冲器730中不存在与同一媒体片段相关联的事件片段,则可以在事件清洗缓冲器730中对重叠的事件段进行重写。作为示例,如果应用已经将该方案设置为“on_start”,则重写事件清除缓冲器730中的重叠事件要求:在重写事件清除缓冲器730中的重叠事件片段之前,派发与同一媒体片段相关联的所有事件片段。在一些实施例中,一旦事件片段在事件清除缓冲器730中被移除、清除或重写,对应的事件片段就可以在事件派发缓冲器740中被移除、清除或重写。作为示例,如果应用已经将方案设置为“on_start”,则在事件清除缓冲器730中的一个或多个重叠事件片段被重写之后,事件派发缓冲器740中要被重写的重叠段可以被重写。
图8A示出了图示关于处理DASH和CMAF带内事件的过程800的示例性流程图,其中,根据示例性实施例,事件片段可以被附加到事件清除缓冲器和事件派发缓冲器。在810处,获得媒体数据。媒体数据可以是任何类型的媒体数据。作为示例,媒体数据可以是音频数据、视频数据、文档或其任何组合。获得的媒体数据还可以包含事件数据。
在815处,可以从获得的媒体数据中,生成事件片段。在一些实施例中,MSE或MSE的解析器部件可以从获得的媒体数据中,生成事件片段。事件片段可以包括MPD和带内事件,以将媒体时间线相关的事件传递到客户端或应用。作为示例,带内事件和‘moof’解析器(306或406)可以从获得的媒体数据中生成事件片段。在一些实施例中,解析器可以生成媒体片段和与媒体片段相对应的事件片段两者。作为示例,带内事件和‘moof’解析器(306或406)可以基于媒体数据生成媒体片段和相关联的事件片段。事件片段可以使用事件关联ID与事件片段相关联,其中,事件关联ID可以是与媒体片段相关联的唯一ID。在一些实施例中,多个事件片段可以与同一媒体片段相关联。与同一媒体片段相关联的事件片段可以具有事件关联ID。
在820处,确定事件片段的事件开始时间偏移。在一些实施例中,MSE或其部件确定要附加到事件清除缓冲器或事件派发缓冲器的每个事件片段的事件开始时间偏移。在一些实施例中,事件片段的事件开始时间偏移可以基于事件片段被附加到事件清除缓冲器的时间来确定。在一些实施例中,事件片段的事件开始时间偏移可以基于事件片段被附加到事件派发缓冲器的时间来确定。在一些实施例中,事件片段的事件开始时间偏移可以基于MSEAPI中的事件片段或媒体片段的呈现时间来确定。事件片段的开始时间偏移指示从派发时刻开始的事件的开始时间。因此,当事件片段被发送到应用时,该应用可以从派发时刻确定事件的相对开始,而不是比较公共时间基准。使用基于MSE API中的时间来确定的事件片段的事件开始时间偏移,避免了应用在确定事件片段的相对开始时间时,需要比较公共时间基准,增加了应用处理效率并且降低了带宽要求。
在825处,可以基于事件片段的事件开始时间偏移,将事件片段附加到事件清除缓冲器。事件清除缓冲器可以用于确定事件片段的顺序、它们的位置和派发定时。在一些实施例中,将事件片段附加到清除缓冲器可以包括将事件片段的呈现时间和持续时间与相关联媒体片段的相应呈现时间和持续时间对准。作为示例,与媒体片段相关联的事件片段可以被放置在事件清除缓冲器中,使得每个事件片段和相关联的媒体片段具有相同的呈现时间和持续时间。
在830处,可以基于事件片段的派发信息,将事件片段附加到事件派发缓冲器。在一些实施例中,派发信息可以包括指示事件初始化、事件附加、事件清除、事件持续时间、事件重写或应用所设置的属性中至少一种信息。应用所设置的一些属性,或应用基于属性集合所设置的一些属性,包括方案URI/值、id、事件片段的事件开始时间偏移、事件片段的开始呈现增量和事件片段持续时间。
在一些实施例中,将事件片段附加到事件派发缓冲器可以包括重复将事件片段附加到事件清除缓冲器,或复制这种附加操作。因此,事件片段的顺序、呈现时间和持续时间在事件清除缓冲器和事件派发缓冲器中可以是相同的。作为示例,如果应用已经将该方案设置为“on_receive”,则一个或多个事件片段的呈现时间或事件开始时间偏移和事件派发缓冲器中的持续时间,可以与相关联的媒体片段的呈现时间和持续时间对准,即,事件派发缓冲器可以是事件清除缓冲器的副本。
在一些实施例中,将事件片段附加到事件派发缓冲器可以通过如下添加事件片段的方式实现:事件片段的事件开始时间偏移是事件派发缓冲器中的事件呈现时间,事件片段的持续时间是事件派发缓冲器中的事件持续时间。作为示例,如果应用已经将该方案设置为“on_start”,则事件派发缓冲器中的事件片段的呈现时间和持续时间可以反映事件片段的事件开始时间偏移和持续时间。在一些实施例中,事件派发缓冲器可以反映事件片段的事件开始时间和持续时间,即,可以附加事件片段,使得事件片段在缓冲器中是从事件片段的开始直到事件片段的结束。因此,在一些实施例中,事件清除缓冲器和事件派发缓冲器可以不是等效的。
在835处,可以基于相应事件片段的派发信息将事件片段派发到应用。派发信息可以包括关于如下各项的信息:事件片段初始化、事件关联ID、事件开始时间偏移、事件片段持续时间、应用方案URI/值以及事件清除、事件附加、事件重写属性。
图8B示出了图示关于处理DASH和CMAF带内事件的过程850的示例性流程图,其中,根据示例性实施例,可以从事件清除缓冲器和事件派发缓冲器派发事件片段。
在860处,识别用于特定呈现时间的事件派发缓冲器中的事件片段。在一些实施例中,MSE或其部件可以针对特定呈现时间识别事件派发缓冲器中的事件片段。在一些实施例中,呈现时间可以基于MSE API事件呈现时间来确定。在其它实施例中,呈现时间可以基于媒体片段的呈现时间来确定。多个事件片段可以与事件关联ID相关联,即,多个事件片段可以与同一媒体片段相关联。
在865处,确定在事件派发缓冲器中识别出的用于特定呈现时间的事件片段,是否被包括在派发事件表中。在一些实施例中,MSE或其部件可以确定事件片段是否被包括在派发事件表中。派发事件表可以保存已经被派发到应用的事件片段或事件消息的记录。因此,如果事件片段被包括在派发事件表中,则该事件片段可能已经被派发给应用。如果在呈现时间处事件派发缓冲器中的事件片段未被包括在派发事件表中,则在870处可以将事件片段派发给应用,因为该事件片段可能还未被派发给应用。作为示例,如果在呈现时间处事件派发缓冲器中的事件片段的事件ID不存在于派发事件表中,则将事件片段派发给应用。作为另一示例,如果在呈现时间处事件派发缓冲器中的事件片段的事件ID被包括在派发事件表中,则该事件片段可能已经被派发给应用。
在875处,可以将派发给应用程序的事件片段添加到派发事件表。在一些实施例中,被派发且未被包括在派发事件表中的事件片段,被添加到派发事件表中。作为示例,如果事件片段被派发到应用,则该事件片段的事件ID可以被添加到派发事件表,以维护该事件片段被派发到应用的记录。
图9示出了图示关于处理DASH和CMAF带内事件的过程900的示例性流程图,其中,根据示例性实施例,可以从事件清除缓冲器和事件派发缓冲器中移除、清除或重写事件片段。在910处,生成来自新媒体数据的新事件片段。在一些实施例中,MSE或其部件可以从新的媒体数据中生成一个或多个新事件片段。在一些示例性实施例中,可以为附加到媒体缓冲器的新媒体片段,生成新事件片段。作为示例,当新媒体片段被解析出来并且附加到媒体缓冲器时,可以将与新媒体片段相对应的新事件片段附加到事件清除缓冲器和事件派发缓冲器。
在915处,可以将与事件清除缓冲器中的新事件片段重叠的事件片段拆分,以匹配新事件片段的事件持续时间、事件开始时间偏移或呈现时间。如果新片段小于事件清除缓冲器中的事件片段,则事件清除缓冲器中的重叠事件片段可以被分割,以匹配新事件片段的事件持续时间。作为示例,如果与事件清除缓冲器中的事件片段重叠的新事件片段具有较短的事件持续时间,则事件清除缓冲器中重叠的事件片段可以被分割成与新事件片段的较短事件持续时间相对应的两个或更多个分段。在一些实施例中,基于新事件片段的持续时间来移除、清除或重写事件清除缓冲器中重叠的事件片段分段。
在920处,可以将与事件派发缓冲器中的新事件片段重叠的事件片段拆分,以匹配新事件片段的事件持续时间、事件开始时间偏移或呈现时间。如果新片段小于或短于事件派发缓冲器中的事件片段,则事件派发缓冲器中重叠的事件片段可以被分割以匹配新事件片段的事件持续时间、事件开始时间偏移或呈现时间。作为示例,如果与事件派发缓冲器中的事件片段重叠的新事件片段具有较短的事件持续时间,则事件派发缓冲器中的重叠事件片段可以被分割成与新事件片段的较短事件持续时间相对应的两个或更多个分段。在一些实施例中,基于新事件片段的持续时间来移除、清除或重写事件派发缓冲器中重叠的事件片段分段。
在925处,确定来自事件清除缓冲器和事件派发缓冲器的事件片段是否可以被移除、清除或重写。来自事件清除缓冲器或事件派发缓冲器的事件片段是否可以被移除、清除或重写,取决于是否派发了与正被重写的媒体片段相关联的所有事件片段。如果来自事件清除缓冲器的与新事件片段重叠的事件片段不与同一媒体片段相关联,则在930处,可以从事件派发缓冲器中删除来自事件清除缓冲器的与新事件片段重叠的事件片段。在935处,可以从事件清除缓冲器中删除与新事件片段重叠的来自事件清除缓冲器的事件片段。作为示例,如果应用已经将该方案设置为“on_start”,并且如果来自事件清除缓冲器的与新事件片段重叠的事件片段不与同一媒体片段相关联,则可以从事件清除缓冲器中删除与新事件片段重叠的事件片段,并且还可以从事件派发缓冲器中删除与新事件片段重叠的事件片段,因为存在与同一媒体片段相关联的其它事件可能已经被派发。
在一些实施例中,可以可选地执行确定事件清除缓冲器中重叠的事件片段是否不与同一媒体片段相关联的步骤。作为示例,如果应用已经将该方案设置为“on_receive”,则可以不执行确定事件清除缓冲器中重叠的事件片段是否不与同一媒体片段相关联的步骤。
在930处,可以从事件清除缓冲器中删除与新事件片段重叠的事件片段。在935处,可以从事件派发缓冲器中删除与新事件片段重叠的事件片段。在940处,根据本公开中的实施例,可以将新事件片段附加到事件清除缓冲器和事件派发缓冲器。
虽然图8A、图8B和图9示出了处理器800、850、900的示例块,但是在一些实现方式中,处理器800、850、900可以包括与图8A、图8B和图9中描绘的那些框相比更多的块、更少的块、不同的块或不同布置的块。在实施例中,处理器800、850、900的任何块可以根据所需,按照任何数量或顺序进行合并或者布置。在实施例中,处理器800、850、900的至少两个块可以并行执行。
上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或至少两个计算机可读介质中。例如,图10示出了计算机系统1000,其适于实现所公开主题的某些实施例。
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或至少两个计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
图10所示的用于计算机系统1000的组件本质上是示例性的,并不用于对实现本申请实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统1000的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
计算机系统1000可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或至少两个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
人机界面输入设备可包括以下中的一个或至少两个(仅绘出其中一个):键盘1001、鼠标1002、触控板1003、触摸屏1010、操纵杆1005、麦克风1006、扫描仪1008、照相机1007。
计算机系统1000还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或至少两个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏1010、或操纵杆1005的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器1009、耳机)、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕1010,其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱)以及打印机。
计算机系统1000还可以包括人可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)1020或类似介质1011的光学介质、拇指驱动器1022、可移动硬盘驱动器或固体状态驱动器1023,诸如磁带和软盘的传统磁介质,诸如安全软件保护器等的基于ROM/ASIC/PLD的专用设备,等等。
本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
计算机系统1000还可以包括通往一个或至少两个通信网络1098的接口1099。例如,网络1098可以是无线的、有线的、光学的。网络1098还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络1098还包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络1098通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(1050和1051)(例如,计算机系统1000的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统1000的核心(例如,以太网接口集成到PC计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络1098中的任何一个,计算机系统1000可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。
上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统1000的核心1040。
核心1040可包括一个或至少两个中央处理单元(CPU)1041、图形处理单元(GPU)1042、以现场可编程门阵列(FPGA)1043形式的专用可编程处理单元、用于特定任务的硬件加速器1044等。这些设备以及只读存储器(ROM)1045、随机存取存储器1046、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)1047等可通过系统总线1048进行连接。在某些计算机系统中,可以以一个或至少两个物理插头的形式访问系统总线1048,以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线1048,或通过外围总线1049进行连接。外围总线的体系结构包括外部控制器接口PCI、通用串行总线USB等。
CPU 1041、GPU 1042、FPGA 1043和加速器1044可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM 1045或RAM 1046中。过渡数据也可以存储在RAM 1046中,而永久数据可以存储在例如内部大容量存储器1047中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或至少两个CPU 1041、GPU 1042、大容量存储器1047、ROM 1045、RAM 1046等紧密关联。
所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
作为实施例而非限制,具有所示结构的计算机系统1000,特别是核心1040,可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或至少两个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心1040的特定存储器,例如核心内部大容量存储器1047或ROM 1045。实现本申请的各种实施例的软件可以存储在这种设备中并且由核心1040执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心1040特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM 1046中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器1044)中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本申请包括任何合适的硬件和软件组合。
虽然本申请已对至少两个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本申请的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本申请的原则,因此属于本申请的精神和范围之内。

Claims (20)

1.一种处理媒体流中事件的方法,包括:
获得媒体数据;
从所述媒体数据中,生成至少一个事件片段;
将所述至少一个事件片段附加到第一事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件开始偏移,所述事件开始偏移基于该事件片段被附加到所述第一事件处理缓冲器的时间来确定;
将所述至少一个事件片段附加到第二事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件派发信息;及,
基于所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述事件派发信息,派发所述至少一个事件片段。
2.根据权利要求1所述的方法,其中,将所述至少一个事件片段附加到所述第一事件处理缓冲器,使得所述至少一个事件片段中每个事件片段的呈现时间和持续时间,与媒体缓冲区中至少一个相关联的媒体片段的呈现时间和持续时间对准。
3.根据权利要求1所述的方法,其中,所述事件派发信息包括指示事件初始化、事件附加、事件清除、事件持续时间、或事件重写中至少一项的信息。
4.根据权利要求1所述的方法,其中,所述将所述至少一个事件片段附加到第二事件处理缓冲器包括:
将所述至少一个事件片段的附加操作,复制到所述第一事件处理缓冲器。
5.根据权利要求1所述的方法,其中,基于所述至少一个事件片段中每个事件片段的所述事件派发信息,将所述至少一个事件片段附加到所述第二事件处理缓冲器。
6.根据权利要求1所述的方法,其中,所述派发所述至少一个事件片段包括:
确定所述至少一个事件片段是否被包括在派发事件表中;
当确定出所述至少一个事件片段未被包括在所述派发事件表中,将所述至少一个事件片段派发给应用。
7.根据权利要求1所述的方法,还包括:
在派发所述至少一个事件片段之后,将所述至少一个事件片段添加到派发事件表。
8.根据权利要求1所述的方法,还包括:
生成至少一个新事件片段;
基于所述至少一个新事件片段的事件持续时间,拆分所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述至少一个事件片段;
基于所述至少一个新事件片段的事件持续时间,重写所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述至少一个事件片段。
9.根据权利要求8所述的方法,其中,所述重写所述至少一个事件片段包括:
确定所述第一事件处理缓冲器中的所述至少一个事件片段,不与同一媒体片段相关联;
删除所述第二事件处理缓冲器中的所述至少一个事件片段;
删除所述第一事件处理缓冲器中的所述至少一个事件片段;
将所述至少一个新事件片段附加到所述第一事件处理缓冲器和所述第二事件处理缓冲器。
10.根据权利要求1所述的方法,其中,所述至少一个事件片段中每个事件片段与媒体缓冲器中的至少一个媒体样本相关联。
11.一种处理媒体流中事件的装置,包括:
至少一个存储器,用于存储计算机程序代码;
至少一个处理器,用于读取所述计算机程序代码,根据所述计算机程序代码的指令进行操作,所述程计算机序代码包括:
第一获得代码,用于使得所述至少一个处理器,获得媒体数据;
第一生成代码,用于使得所述至少一个处理器,从所述媒体数据中,生成至少一个事件片段;
第一附加代码,用于使得所述至少一个处理器,将所述至少一个事件片段附加到第一事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件开始偏移,所述事件开始偏移基于该事件片段被附加到所述第一事件处理缓冲器的时间来确定;
第二附加代码,用于使得所述至少一个处理器,将所述至少一个事件片段附加到第二事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件派发信息;及,
第一派发代码,用于使得所述至少一个处理器,基于所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述事件派发信息,派发所述至少一个事件片段。
12.根据权利要求11所述的装置,其中,将所述至少一个事件片段附加到所述第一事件处理缓冲器,使得所述至少一个事件片段中每个事件片段的呈现时间和持续时间,与媒体缓冲区中至少一个相关联的媒体片段的呈现时间和持续时间对准。
13.根据权利要求11所述的装置,其中,所述事件派发信息包括指示事件初始化、事件附加、事件清除、事件持续时间、或事件重写中至少一项的信息。
14.根据权利要求11所述的装置,其中,所述将所述至少一个事件片段附加到第二事件处理缓冲器包括:
将所述至少一个事件片段的附加操作,复制到所述第一事件处理缓冲器。
15.根据权利要求11所述的装置,其中,基于所述至少一个事件片段中每个事件片段的所述事件派发信息,将所述至少一个事件片段附加到所述第二事件处理缓冲器。
16.根据权利要求11所述的装置,其中,所述第一派发代码还包括:
第一确定代码,用于使得所述至少一个处理器,确定所述至少一个事件片段是否被包括在派发事件表中;
第二派发代码,用于使得所述至少一个处理器,当确定出所述至少一个事件片段未被包括在所述派发事件表中,将所述至少一个事件片段派发给应用。
17.根据权利要求11所述的装置,还包括:
第一添加代码,用于使得所述至少一个处理器,在派发所述至少一个事件片段之后,将所述至少一个事件片段添加到派发事件表。
18.根据权利要求11所述的装置,还包括:
第二生成代码,用于使得所述至少一个处理器,生成至少一个新事件片段;
第一拆分代码,用于使得所述至少一个处理器,基于所述至少一个新事件片段的事件持续时间,拆分所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述至少一个事件片段;
第一重写代码,用于使得所述至少一个处理器,基于所述至少一个新事件片段的事件持续时间,重写所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述至少一个事件片段。
19.根据权利要求18所述的装置,其中,所述第一重写代码还包括:
第二确定代码,用于使得所述至少一个处理器,确定所述第一事件处理缓冲器中的所述至少一个事件片段,不与同一媒体片段相关联;
第一删除代码,用于使得所述至少一个处理器,删除所述第二事件处理缓冲器中的所述至少一个事件片段;
第二删除代码,用于使得所述至少一个处理器,删除所述第一事件处理缓冲器中的所述至少一个事件片段;
第三附加代码,用于使得所述至少一个处理器,将所述至少一个新事件片段附加到所述第一事件处理缓冲器和所述第二事件处理缓冲器。
20.一种非暂时性计算机可读介质,其上存储有程序,当所述程序由至少一个处理器执行时,实现:
获得媒体数据;
从所述媒体数据中,生成至少一个事件片段;
将所述至少一个事件片段附加到第一事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件开始偏移,所述事件开始偏移基于该事件片段被附加到所述第一事件处理缓冲器的时间来确定;
将所述至少一个事件片段附加到第二事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件派发信息;及,
基于所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述事件派发信息,派发所述至少一个事件片段。
CN202180032630.5A 2021-04-19 2021-10-08 用于处理dash和cmaf带内事件的扩展的w3c媒体扩展 Pending CN115581124A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163176748P 2021-04-19 2021-04-19
US63/176,748 2021-04-19
US17/495,299 US11882170B2 (en) 2021-04-19 2021-10-06 Extended W3C media extensions for processing dash and CMAF inband events
US17/495,299 2021-10-06
PCT/US2021/054125 WO2022225552A1 (en) 2021-04-19 2021-10-08 Extended w3c media extensions for processing dash and cmaf inband events

Publications (1)

Publication Number Publication Date
CN115581124A true CN115581124A (zh) 2023-01-06

Family

ID=83602763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180032630.5A Pending CN115581124A (zh) 2021-04-19 2021-10-08 用于处理dash和cmaf带内事件的扩展的w3c媒体扩展

Country Status (6)

Country Link
US (2) US11882170B2 (zh)
EP (1) EP4101178A4 (zh)
JP (1) JP2023527648A (zh)
KR (1) KR20230006835A (zh)
CN (1) CN115581124A (zh)
WO (1) WO2022225552A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170034232A1 (en) * 2015-07-30 2017-02-02 International Business Machines Corporation Caching streaming media to user devices
US20170134466A1 (en) * 2014-07-01 2017-05-11 Vid Scale, Inc. Server-side session control in media streaming by media player devices
CN107665150A (zh) * 2016-07-27 2018-02-06 Sap欧洲公司 用于计算机系统的事件服务建模框架
US20190281100A1 (en) * 2018-03-12 2019-09-12 Qualcomm Incorporated Processing interactivity events for streaming media data
US20210006871A1 (en) * 2019-07-02 2021-01-07 Tencent America LLC Events in timed metadata tracks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9444863B2 (en) * 2013-06-06 2016-09-13 Intel Corporation Manager for DASH media streaming
CN105230024B (zh) * 2013-07-19 2019-05-24 华为技术有限公司 一种媒体表示自适应方法、装置及计算机存储介质
GB2521845B (en) * 2014-01-03 2021-07-07 British Broadcasting Corp Content delivery
GB2533624B (en) * 2014-12-23 2017-08-09 Canon Kk Methods, devices, and computer programs for improving coding of media presentation description data
WO2017038065A1 (en) * 2015-09-02 2017-03-09 Sharp Kabushiki Kaisha Mapping event signaling to html
US10666961B2 (en) * 2016-01-08 2020-05-26 Qualcomm Incorporated Determining media delivery event locations for media transport
EP3563574A1 (en) * 2017-01-02 2019-11-06 Koninklijke KPN N.V. Selectively updating a dynamic manifest file
US10489220B2 (en) 2017-01-26 2019-11-26 Microsoft Technology Licensing, Llc Priority based scheduling
US10581707B2 (en) * 2018-04-10 2020-03-03 At&T Intellectual Property I, L.P. Method and apparatus for selective segment replacement in HAS video streaming adaptation
US20200275148A1 (en) * 2019-02-25 2020-08-27 Qualcomm Incorporated Event-Based Content Replacement In Live Media Services
GB2582014A (en) * 2019-03-08 2020-09-09 Canon Kk Method, device, and computer program for optimizing transmission of portions of encapsulated media content
FR3094166B1 (fr) * 2019-03-18 2021-04-23 Ateme Procédé de gestion de contenus multimédia et dispositif pour la mise en œuvre du procédé
US11310303B2 (en) 2019-10-01 2022-04-19 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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170134466A1 (en) * 2014-07-01 2017-05-11 Vid Scale, Inc. Server-side session control in media streaming by media player devices
US20170034232A1 (en) * 2015-07-30 2017-02-02 International Business Machines Corporation Caching streaming media to user devices
CN107665150A (zh) * 2016-07-27 2018-02-06 Sap欧洲公司 用于计算机系统的事件服务建模框架
US20190281100A1 (en) * 2018-03-12 2019-09-12 Qualcomm Incorporated Processing interactivity events for streaming media data
CN111837403A (zh) * 2018-03-12 2020-10-27 高通股份有限公司 处理用于以流传送媒体数据的交互性事件
US20210006871A1 (en) * 2019-07-02 2021-01-07 Tencent America LLC Events in timed metadata tracks

Also Published As

Publication number Publication date
EP4101178A4 (en) 2023-08-09
EP4101178A1 (en) 2022-12-14
KR20230006835A (ko) 2023-01-11
US20220337647A1 (en) 2022-10-20
US11882170B2 (en) 2024-01-23
JP2023527648A (ja) 2023-06-30
US20240121287A1 (en) 2024-04-11
WO2022225552A1 (en) 2022-10-27

Similar Documents

Publication Publication Date Title
CN113748659B (zh) 接收会话的媒体数据的方法、装置和非易失性计算机可读介质
KR102501184B1 (ko) Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들
JP7176133B2 (ja) Http上の動的アダプティブストリーミングのための方法、装置及びコンピュータプログラム
JP7252373B2 (ja) メディアコンテンツのメディアデータを受信する方法、装置、およびコンピュータプログラム
JP2022525366A (ja) メディアデータを受信するための方法、装置、およびプログラム
KR102636993B1 (ko) Http를 통한 동적 적응적 스트리밍을 위한 방법 및 장치
JP7483919B2 (ja) Httpによる動的適応ストリーミングのための方法及び装置
CN115581124A (zh) 用于处理dash和cmaf带内事件的扩展的w3c媒体扩展
KR102659938B1 (ko) Http를 통한 동적 적응 스트리밍을 위한 방법 및 장치
JP7387209B2 (ja) Http上の動的適応ストリーミングのための方法および装置
JP7477645B2 (ja) Process@appendおよびprocess@playモードを使用してメディアと共にdashおよびcmafインバンドイベントを処理するためのw3cメディア拡張
CN113364728B (zh) 媒体内容接收方法、装置、存储介质和计算机设备
KR20230154977A (ko) 스택화 속성들을 갖는 프리롤들, 미드롤들 및 엔드롤들을 지원하는 mpeg dash를 위한 보조 mpd들
KR20230101907A (ko) 미디어 플레이백 동안 프리롤 및 미드롤 콘텐츠를 지원하기 위한 mpeg dash를 위한 방법 및 장치
CN116530072A (zh) 用于在媒体流式传输和回放期间支持前贴片和中贴片的方法及装置
CN116636193A (zh) 使用w3c媒体源和加密扩展的实况cmaf/dash播放器中的mpd链接
CN117256153A (zh) 用于支持处理dash事件更新的dash客户端处理模型的处理模型

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40080095

Country of ref document: HK