HK40080095B - Method for processing events in media stream, apparatus, storage medium and computer equipment - Google Patents
Method for processing events in media stream, apparatus, storage medium and computer equipment Download PDFInfo
- Publication number
- HK40080095B HK40080095B HK62023069253.0A HK62023069253A HK40080095B HK 40080095 B HK40080095 B HK 40080095B HK 62023069253 A HK62023069253 A HK 62023069253A HK 40080095 B HK40080095 B HK 40080095B
- Authority
- HK
- Hong Kong
- Prior art keywords
- event
- fragment
- buffer
- segment
- media
- Prior art date
Links
Description
引用并入References merged
本申请要求于2019年4月19日提交、申请号为63/176,748号的美国临时申请的优先权,于2021年10月6日提交的、申请号为17/495,299的美国申请的优先权,以及其全部内容通过引用并入本申请中。This application claims priority to U.S. Provisional Application No. 63/176,748, filed April 19, 2019, and U.S. Application No. 17/495,299, filed October 6, 2021, the entire contents of which are incorporated herein by reference.
技术领域Technical Field
本申请实施例涉及互联网传输技术,尤其涉及一种处理媒体流中事件的方法、装置、存储介质及计算机设备。This application relates to Internet transmission technology, and more particularly to a method, apparatus, storage medium, and computer device for processing events in a media stream.
背景技术Background Technology
运动图象专家组(MPEG)超文本传输协议(DASH)为IP网络上的流式传输媒体内容提供了标准。在MPEG DASH中,媒体呈现描述(MPD,media presentation description)和带内事件(inband events)用于将媒体时间线相关的事件传递到客户端。DASH提供一种用于媒体片段的机制来携带带内事件。类似地,通用媒体应用格式(CMAF,Common MediaApplication Format)为CMAF块提供了携带带内事件的机制。一个流行的DASH事件是带内MPD有效性到期事件。其它事件包括诸如SCTE-35(“用于电缆的数字节目插入提示消息”)事件的应用事件。The Moving Picture Experts Group (MPEG) Hypertext Transfer Protocol (DASH) provides a standard for streaming media content over IP networks. In MPEG DASH, media presentation descriptions (MPDs) and in-band events are used to deliver timeline-related events to the client. DASH provides a mechanism for media segments to carry in-band events. Similarly, the Common Media Application Format (CMAF) provides a mechanism for carrying in-band events in CMAF blocks. A popular DASH event is the in-band MPD validity expiration event. Other events include application events such as the SCTE-35 ("Digital Program Insertion Prompt Message for Cable") event.
流媒体播放器,包括DASH播放器,使用媒体源扩展(MSE,Media SourceExtensions),其允许浏览器或用户代理来处理媒体片段。然而,当前的MSE规范不支持解析和处理嵌入在DASH或CMAF媒体片段中的带内事件。Streaming media players, including DASH players, use Media Source Extensions (MSEs), which allow browsers or user agents to process media segments. However, the current MSE specification does not support parsing and processing in-band events embedded in DASH or CMAF media segments.
发明内容Summary of the Invention
本申请实施例提供了一种处理媒体流中事件的方法、装置、存储介质及计算机设备,使得使用MSE的浏览器或者用户代理,能够原生地处理DASH和CMAF带内事件,并将它们发送至相应的应用。This application provides a method, apparatus, storage medium, and computer device for processing events in a media stream, enabling browsers or user agents using MSE to natively process DASH and CMAF in-band events and send them to the corresponding applications.
本申请实施例提供了一种处理媒体流中事件的方法,包括:This application provides a method for processing events in a media stream, including:
获得媒体数据;Obtain media data;
从所述媒体数据中,生成至少一个事件片段;Generate at least one event segment from the media data;
将所述至少一个事件片段附加到第一事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件开始时间偏移,所述事件开始时间偏移基于该事件片段被附加到所述第一事件处理缓冲器的时间来确定;The at least one event segment is attached to a first event processing buffer, the at least one event segment including an event start time offset for each of the at least one event segments, the event start time offset being determined based on the time when the event segment is attached to the first event processing buffer;
将所述至少一个事件片段附加到第二事件处理缓冲器,所述至少一个事件片段还包括所述至少一个事件片段中每个事件片段的事件派发信息;及,The at least one event fragment is appended to a second event processing buffer, the at least one event fragment further comprising event dispatch information for each event fragment in the at least one event fragment; and,
基于所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述事件派发信息,派发所述至少一个事件片段。The at least one event fragment is dispatched based on the event dispatch information in the first event processing buffer and the second event processing buffer.
本申请实施例还提供了一种处理媒体流中事件的装置,包括:This application also provides an apparatus for processing events in a media stream, comprising:
第一获得模块,用于获得媒体数据;The first acquisition module is used to acquire media data;
第一生成模块,用于从所述媒体数据中,生成至少一个事件片段;The first generation module is used to generate at least one event fragment from the media data;
第一附加模块,用于将所述至少一个事件片段附加到第一事件处理缓冲器,所述至少一个事件片段包括所述至少一个事件片段中每个事件片段的事件开始时间偏移,所述事件开始时间偏移基于该事件片段被附加到所述第一事件处理缓冲器的时间来确定;A first attachment module is configured to attach the at least one event segment to a first event processing buffer, the at least one event segment including an event start time offset for each of the at least one event segments, the event start time offset being determined based on the time when the event segment is attached to the first event processing buffer;
第二附加模块,用于将所述至少一个事件片段附加到第二事件处理缓冲器,所述至少一个事件片段还包括所述至少一个事件片段中每个事件片段的事件派发信息;及,A second append module is configured to append the at least one event fragment to a second event processing buffer, wherein the at least one event fragment further includes event dispatch information for each event fragment in the at least one event fragment; and,
第一派发模块,用于基于所述第一事件处理缓冲器和所述第二事件处理缓冲器中的所述事件派发信息,派发所述至少一个事件片段。A first dispatch module is configured to dispatch the at least one event fragment based on the event dispatch information in the first event processing buffer and the second event processing buffer.
本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述方法。This application also provides a computer device, including a processor and a memory, wherein the memory stores at least one instruction, which is loaded and executed by the processor to implement the above method.
本申请实施例还提供一种非暂时性计算机可读介质,其上存储有指令,当所述指令由计算机执行视频解码时,使得所述计算机执行上述方法。This application also provides a non-transitory computer-readable medium storing instructions that, when performed by a computer for video decoding, cause the computer to perform the above-described method.
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法。This application also provides a computer program product or computer program that includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the described method.
由上述技术方案可见,本发明实施例提供的方法,使用事件片段的事件开始时间偏移,避免了应用在确定事件片段的相对开始时间时,需要比较公共时间基准,增加了应用处理效率,降低了网络开销(如带宽要求)、服务器计算开销以及应用计算开销。As can be seen from the above technical solutions, the method provided by the embodiments of the present invention uses the event start time offset of the event segment, which avoids the need for the application to compare a common time base when determining the relative start time of the event segment, thereby increasing the application processing efficiency and reducing network overhead (such as bandwidth requirements), server computing overhead and application computing overhead.
附图说明Attached Figure Description
根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中:Other features, properties, and various advantages of the disclosed subject matter will become further apparent from the following detailed description and accompanying drawings, wherein:
图1示出了根据本申请一实施例的通信系统的简化示意图;Figure 1 shows a simplified schematic diagram of a communication system according to an embodiment of this application;
图2示出了根据本申请一实施例的流环境中部件放置的示意图;Figure 2 shows a schematic diagram of component placement in a flow environment according to an embodiment of this application;
图3示出了根据本申请一实施例的DASH处理模型的简化框图;Figure 3 shows a simplified block diagram of a DASH processing model according to an embodiment of this application;
图4示出了根据本申请另一实施例的DASH处理模型的简化框图;Figure 4 shows a simplified block diagram of a DASH processing model according to another embodiment of this application;
图5示出了根据本申请一实施例的媒体缓冲器和事件缓冲器的简化框图;Figure 5 shows a simplified block diagram of a media buffer and an event buffer according to an embodiment of this application;
图6示出了根据本申请另一实施例的媒体缓冲器和事件缓冲器的简化框图;Figure 6 shows a simplified block diagram of a media buffer and an event buffer according to another embodiment of this application;
图7示出了根据本申请又一实施例的媒体缓冲器和事件缓冲器的简化框图;Figure 7 shows a simplified block diagram of a media buffer and an event buffer according to yet another embodiment of this application;
图8A示出了根据本申请一实施例的处理DASH和CAMF带内事件过程的简化示意图;Figure 8A shows a simplified schematic diagram of the process for processing DASH and CAMF in-band events according to an embodiment of this application;
图8B示出了根据本申请另一实施例的处理DASH和CAMF带内事件过程的简化示意图;Figure 8B shows a simplified schematic diagram of the process for processing DASH and CAMF in-band events according to another embodiment of this application;
图9示出了根据本申请又一实施例的处理DASH和CAMF带内事件过程的简化示意图;Figure 9 shows a simplified schematic diagram of the process for processing DASH and CAMF in-band events according to another embodiment of this application;
图10示出了根据实施例的计算机设备的示意图。Figure 10 shows a schematic diagram of a computer device according to an embodiment.
具体实施方式Detailed Implementation
下面所讨论的本申请提出的特征,可以单独使用,或者以任何顺序进行组合。进一步,本申请实施例可以由处理电路(例如,至少一个处理器,或者,至少一个集成电路)来实施。在一个示例中,至少一个处理器执行存储在非易失性计算机可读介质中的程序。The features proposed in this application, discussed below, can be used individually or in combination in any order. Furthermore, embodiments of this application can be implemented by processing circuitry (e.g., at least one processor, or at least one integrated circuit). In one example, at least one processor executes a program stored on a non-volatile computer-readable medium.
图1是根据本申请公开的实施例的通信系统1000的简化框图。通信系统1000包括通过网络105互连的第一终端102和第二终端103。对于单向数据传输,第一终端103可对本地位置上的视频数据进行编码,以通过网络105传输到另一终端102。第二终端102可从网络105接收另一终端的已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。Figure 1 is a simplified block diagram of a communication system 1000 according to an embodiment disclosed in this application. The communication system 1000 includes a first terminal 102 and a second terminal 103 interconnected via a network 105. For unidirectional data transmission, the first terminal 103 can encode video data at its local location for transmission to the other terminal 102 via the network 105. The second terminal 102 can receive the encoded video data from the other terminal via the network 105, decode the encoded video data to recover the video data, and display video images based on the recovered video data. Unidirectional data transmission is common in applications such as media services.
图1示出了另一对终端101和104,来支持已编码视频数据的双向传输,例如在视频会议期间。对于双向数据传输,每个终端101和/或104可对本地获取到的视频数据进行编码,以通过网络105传输到另一终端。每个终端101和/或104还可接收由另一终端传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。Figure 1 illustrates another pair of terminals 101 and 104 to support bidirectional transmission of encoded video data, for example, during a video conference. For bidirectional data transmission, each terminal 101 and/or 104 can encode locally acquired video data for transmission to the other terminal via network 105. Each terminal 101 and/or 104 can also receive encoded video data transmitted by the other terminal, decode the encoded video data to recover the video data, and display video images on an accessible display device based on the recovered video data.
在图1中,终端101、102、103和/或104可为服务器、个人计算机和智能电话,但本申请公开的原理可不限于此。本申请公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络105表示在终端101、102、103和/或104之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络105可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络105的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。In Figure 1, terminals 101, 102, 103, and/or 104 may be servers, personal computers, and smartphones, but the principles disclosed in this application are not limited to these. The embodiments disclosed in this application are applicable to laptop computers, tablet computers, media players, and/or dedicated video conferencing equipment. Network 105 refers to any number of networks transmitting encoded video data between terminals 101, 102, 103, and/or 104, including, for example, wired and/or wireless communication networks. Communication network 105 may exchange data in circuit-switched and/or packet-switched channels. This network may include telecommunications networks, local area networks, wide area networks, and/or the Internet. For the purposes of this application, unless explained below, the architecture and topology of network 105 may be irrelevant to the operation of this application.
作为实施例,图2示出视频编码器和视频解码器在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。As an example, Figure 2 illustrates the placement of the video encoder and video decoder in a streaming environment. The subject matter disclosed in this application is equally applicable to other video-enabled applications, including, for example, video conferencing, digital TV, storing compressed video on digital media including CDs, DVDs, memory sticks, etc.
流式传输系统可包括采集子系统203,所述采集子系统可包括数码相机等视频源201,所述视频源创建例如未压缩的视频样本流213。相较于已编码的视频码流,视频样本流213被强调为高数据量的视频图片流,可由耦接到视频源201的编码器202进行处理。编码器202可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于样本流,已编码的视频码流204被强调为较低数据量,其可存储在流式传输服务器205上以供将来使用。至少一个流式传输客户端212和207,可访问流式传输服务器205以检索已编码的视频码流208进而206,二者是已编码的视频码流204的副本。客户端212包括视频解码器211。视频解码器211对已编码的视频码流208的进入副本进行解码,且产生可在显示器209或另一呈现装置上呈现的输出视频样本流210。在一些流式传输系统中,可根据某些视频编码/压缩标准,对已编码的视频码流204、206、208进行编码。该些标准的示例如上指出的那些,并且在此进一步描述。The streaming system may include an acquisition subsystem 203, which may include a video source 201 such as a digital camera, which creates, for example, an uncompressed video sample stream 213. The video sample stream 213 is emphasized as a high-data-volume video image stream compared to an encoded video stream and may be processed by an encoder 202 coupled to the video source 201. The encoder 202 may include hardware, software, or a combination of hardware and software to implement or enforce aspects of the disclosed subject matter as described in more detail below. The encoded video stream 204 is emphasized as a lower-data-volume stream compared to the sample stream and may be stored on a streaming server 205 for future use. At least one streaming client 212 and 207 can access the streaming server 205 to retrieve encoded video streams 208 and further 206, both of which are copies of the encoded video stream 204. Client 212 includes a video decoder 211. Video decoder 211 decodes the incoming copy of the encoded video stream 208 and produces an output video sample stream 210 that can be displayed on display 209 or another presentation device. In some streaming systems, the encoded video streams 204, 206, and 208 may be encoded according to certain video encoding/compression standards. Examples of these standards are as noted above and are further described herein.
5G媒体流(5GMS)系统是应用功能、应用服务器和接口的集合,与支持下行链路媒体流服务、或上行链路媒体流服务、或两者的5G媒体流架构相互连接。5GMS应用提供商可以包括与5GMS系统的功能进行交互并且提供与5GMS系统的功能交互的5GMS感知应用的一方。5GMS感知应用可以指由5GMS应用提供商提供的用户设备(UE)中的应用,其包含5GMS应用服务的服务逻辑,并且经由5GMS架构中定义的接口和应用编程接口(API)与其它5GMS客户端和网络功能交互。5GMS客户端可以指一种UE功能,包括5GMS下行链路(5GMSd)客户端或5GMS上行链路(5GMSu)客户端或两者。A 5G Media Streaming (5GMS) system is a collection of application functions, application servers, and interfaces interconnected with a 5G Media Streaming architecture that supports downlink media streaming services, uplink media streaming services, or both. 5GMS application providers may include parties that interact with and provide 5GMS-aware applications that interact with the functions of the 5GMS system. 5GMS-aware applications may refer to applications in a User Equipment (UE) provided by a 5GMS application provider, containing the service logic of 5GMS application services, and interacting with other 5GMS clients and network functions via interfaces and application programming interfaces (APIs) defined in the 5GMS architecture. A 5GMS client may refer to a UE function, including a 5GMS downlink (5GMSd) client, a 5GMS uplink (5GMSu) client, or both.
5GMSd客户端可以指一种UE功能,该UE功能至少包括5G媒体流播放器和用于下行链路流式传输的媒体会话处理器,并且可以通过明确定义的接口/API来访问。5GMSu客户端可以指5GMSu服务的发起者,其中,通过明确定义的接口/API来访问5GMSu。5GMSu流媒体播放器可以指一种UE功能,该UE功能使得将流式传输媒体内容上行链路递送到5GMS应用提供商的应用服务器(AS)功能,并且该UE功能能够不仅与用于媒体捕获和后续流式传输的5GMSu感知应用交互,还能与用于媒体会话控制的媒体会话处理器交互。A 5GMSd client can refer to a UE function that includes at least a 5G media streaming player and a media session processor for downlink streaming, and can be accessed through a well-defined interface/API. A 5GMSu client can refer to an initiator of a 5GMSu service, where 5GMSu is accessed through a well-defined interface/API. A 5GMSu streaming media player can refer to a UE function that enables uplink delivery of streaming media content to the application server (AS) function of a 5GMS application provider, and that can interact not only with 5GMSu-aware applications used for media capture and subsequent streaming, but also with a media session processor used for media session control.
动态策略指动态策略和计费控制(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文档。Dynamic policies refer to dynamic policies and charging control (PCC) rules used for uplink or downlink application flows during a media session. An egest session refers to an uplink media flow session from the 5GMS AS to the 5GMS Application Provider. An ingest session refers to a session that uploads media content to the 5GMSd AS. A policy template refers to a set of (semi-static) policy or control function (PCF)/network open function (NEF) API parameters, where NEF API parameters are specific to the 5GMS Application Provider and the resulting PCC rules. A policy template ID identifies the desired policy template used by the 5GMSd Application Function (AF) to select the appropriate PCF/NEF API for the 5G system, enabling the PCF to compile the desired PCC rules. A media player entry refers to a document or an indicator pointing to a document used to define media presentation (e.g., a Media Presentation Description (MPD) for DASH or a Uniform Resource Locator (URL) for a video clip file). A Media Streamer Entry is an indicator (e.g., in the form of a URL) that defines the entry point for an uplink media streaming session. A Rendering Entry refers to a document or an indicator pointing to a document, used to define application rendering, such as an HTML5 document.
供应会话(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服务访问信息。A provisioning session refers to a data structure provided by the 5GMSd application provider at the interface (M1d), which configures 5GMSd features associated with a set of 5GMSd-aware applications. A 5GMSd media player refers to a UE function that enables the replay and presentation of media based on media playback items and provides basic controls to 5GMSd-aware applications, such as play, pause, search, and stop. Server access information refers to a set of parameters and addresses (including 5GMSd AF and 5GMSd AS addresses) required to activate a streaming session. Service and content discovery refers to the functions and procedures provided by the 5GMSd application provider to 5GMSd-aware applications, enabling end users to discover available streaming services and content settings and select specific services or content items for access. A service announcement is a procedure executed between a 5GMS sensing application and a 5GMS application provider, enabling the 5GMS sensing application to obtain 5GMS service access information directly or through reference information.
第三方播放器指一部分应用,其使用API来运用(exercise)选择的5GMSd功能以回放媒体内容。第三方上行链路流媒体播放器指一部分应用,其使用API来运用选择的5GMSu功能以捕获和流式传输媒体内容。Third-party media players refer to a subset of applications that use APIs to exercise selected 5GMSd features to play back media content. Third-party uplink streaming media players refer to a subset of applications that use APIs to exercise selected 5GMSu features to capture and stream media content.
图3示出了诸如用于处理DASH和CMAF事件的样本客户端架构的样本DASH处理模型300。在DASH处理模型300中,客户端对媒体片段的请求可以基于清单解析器(manifestparser)303中描述的地址。清单解析器303还描述了元数据轨道,客户端可以从元数据轨道访问元数据轨道的片段,对这些片段进行解析,并将它们发送到应用301。Figure 3 illustrates a sample DASH processing model 300, such as a sample client architecture for handling DASH and CMAF events. In DASH processing model 300, client requests for media segments can be based on addresses described in manifest parser 303. Manifest parser 303 also describes metadata tracks from which the client can access segments, parse, and send them to application 301.
清单解析器303包括MPD事件或带内事件,带内事件和‘moof’解析器306可以解析MPD事件片段或带内事件片段,并将事件片段附加到事件和元数据缓冲器330。带内事件和‘moof’解析器306还可以提取媒体片段并将其附加到媒体缓冲器340。事件和元数据缓冲器330可以将事件和元数据信息发送到事件和元数据同步器和派发器335。事件和元数据同步器和派发器335可以将特定事件派发给DASH播放器控制、选择和启发逻辑(HeuristicLogic)302,并且将与应用相关的事件和元数据轨道派发给应用301。The manifest parser 303 includes MPD events or in-band events. The in-band event and 'moof' parser 306 can parse MPD event fragments or in-band event fragments and append the event fragments to the event and metadata buffer 330. The in-band event and 'moof' parser 306 can also extract media fragments and append them to the media buffer 340. The event and metadata buffer 330 can send event and metadata information to the event and metadata synchronizer and dispatcher 335. The event and metadata synchronizer and dispatcher 335 can dispatch specific events to the DASH player control, selection, and heuristic logic 302, and dispatch application-related event and metadata tracks to the application 301.
根据一些实施例,MSE可以包括媒体缓冲器340和媒体解码器345。MSE 320是媒体片段的一个或多个逻辑缓冲器,可以基于媒体片段的呈现时间来确认和排序媒体片段。可以基于媒体片段的时间戳偏移,将每个媒体片段添加或附加到媒体缓冲器340,并且可以使用时间戳偏移来对媒体缓冲器340中的媒体片段进行排序。According to some embodiments, the MSE may include a media buffer 340 and a media decoder 345. The MSE 320 is one or more logical buffers for media segments, which can be identified and ordered based on the presentation time of the media segments. Each media segment can be added to or appended to the media buffer 340 based on a timestamp offset, and the timestamp offset can be used to order the media segments in the media buffer 340.
只要媒体片段存在于媒体缓冲器340中,事件和元数据缓冲器330就维护对应的事件片段和元数据。根据图3,MSE 320仅包括媒体缓冲器340和媒体解码器345。事件和元数据缓冲器330以及事件和元数据同步器和派发器335对于MSE 320不是原生(native)的,禁止MSE 320原生地处理事件并将它们发送到应用。As long as a media segment exists in the media buffer 340, the event and metadata buffer 330 maintains the corresponding event segment and metadata. According to Figure 3, the MSE 320 only includes the media buffer 340 and the media decoder 345. The event and metadata buffer 330, as well as the event and metadata synchronizer and dispatcher 335, are not native to the MSE 320, preventing the MSE 320 from natively processing events and sending them to the application.
图4示出了诸如用于处理DASH和CMAF事件的样本客户端架构的样本DASH处理模型400。在DASH处理模型400中,媒体片段的客户端请求可以基于清单403中描述的地址。清单403还描述了元数据轨道,客户端可以从元数据轨道访问元数据轨道的片段,对这些片段进行解析,并且将它们发送到应用401。Figure 4 illustrates a sample DASH processing model 400, such as a sample client architecture for handling DASH and CMAF events. In DASH processing model 400, client requests for media segments can be based on the addresses described in Listing 403. Listing 403 also describes a metadata track from which the client can access segments, parse, and send them to application 401.
清单403包括MPD事件或带内事件,并且带内事件和‘moof’解析器406可以解析MPD事件片段或带内事件片段,并将事件片段附加到事件清除(purge)缓冲器430。基于媒体数据或媒体流以及清单403中的信息,带内事件和‘moof’解析器406可以提取媒体片段并且将其附加到媒体缓冲器440。事件清除缓冲器330可以将事件和元数据信息发送到事件同步器和派发器435。事件同步器和派发器435可以将特定事件派发给DASH播放器控制、选择和启发逻辑402,并且将与应用相关的事件和元数据轨道派发给应用401。Listing 403 includes MPD events or in-band events, and the in-band event and 'moof' parser 406 can parse MPD event fragments or in-band event fragments and append the event fragments to the event purge buffer 430. Based on media data or media streams and the information in Listing 403, the in-band event and 'moof' parser 406 can extract media fragments and append them to the media buffer 440. The event purge buffer 430 can send event and metadata information to the event synchronizer and dispatcher 435. The event synchronizer and dispatcher 435 can dispatch specific events to the DASH player control, selection, and heuristic logic 402, and dispatch application-related event and metadata tracks to the application 401.
根据示例性实施例,在图4中,MSE被扩展为包括:媒体缓冲器340、媒体解码器345、事件清除缓冲器430、事件同步器和派发器435以及已经派发(already-dispatched)的事件表450。已经派发的事件表450可以记录已经派发给应用401的事件。事件清除缓冲器430以及事件同步器和派发器435的扩展,使得MSE能够本地处理带内事件,并且创建已经派发的事件表450,使得能够记录和检测已经派发的事件消息。According to an exemplary embodiment, in FIG4, the MSE is extended to include: a media buffer 340, a media decoder 345, an event clearing buffer 430, an event synchronizer and dispatcher 435, and an already-dispatched event table 450. The already-dispatched event table 450 can record events that have been dispatched to application 401. The extension of the event clearing buffer 430 and the event synchronizer and dispatcher 435 enables the MSE to locally process in-band events and create the already-dispatched event table 450, enabling the recording and detection of dispatched event messages.
在示例性实施例中,MSE 420或其部件可以基于事件片段的事件特定偏移来派发事件。示例包括事件开始时间偏移。MSE 420或其部件可以确定事件片段的事件开始时间偏移,其中,通过参考事件呈现时间来确定开始时间偏移,并且使用事件开始时间偏移,在事件清除缓冲器430或事件同步器和派发器435中对事件进行排序和派发。在示例性实施例中,事件开始时间偏移和时间戳偏移可以是等效的,其中,事件开始时间偏移是指事件清除缓冲器430或事件同步器和派发器435中的事件片段,时间戳偏移是指媒体缓冲器440中的媒体片段。In an exemplary embodiment, the MSE 420 or its components may dispatch events based on an event-specific offset of an event segment. Examples include an event start time offset. The MSE 420 or its components may determine the event start time offset of an event segment by referencing an event presentation time, and use the event start time offset to sort and dispatch events in the event clear buffer 430 or the event synchronizer and dispatcher 435. In an exemplary embodiment, the event start time offset and the timestamp offset may be equivalent, wherein the event start time offset refers to an event segment in the event clear buffer 430 or the event synchronizer and dispatcher 435, and the timestamp offset refers to a media segment in the media buffer 440.
在示例性实施例中,MSE 420可以针对关联的事件和媒体,处理事件片段以及媒体片段清除和重写。如果与事件相关联的媒体片段被保留在媒体缓冲器440中,则MSE420可以将事件保留在事件清除缓冲器430或事件同步器和派发器435中。MSE 420可以基于相关联的媒体片段的定时和持续时间来管理事件片段的定时和持续时间。In an exemplary embodiment, MSE 420 can process event segments and media segment clearing and rewriting for associated events and media. If the media segment associated with the event is retained in media buffer 440, MSE 420 can retain the event in event clearing buffer 430 or event synchronizer and dispatcher 435. MSE 420 can manage the timing and duration of event segments based on the timing and duration of the associated media segments.
在示例性实施例中,应用401可以设置时间戳偏移或事件时间戳偏移。应用401还可以设置方案URI/值和用于方案URI/值的派发模式。MSE 420可以基于方案URI/值、事件ID、指示与事件片段相关联的媒体片段的事件关联ID、事件片段的呈现时间、事件的开始时间偏移和事件持续时间,来派发事件。In an exemplary embodiment, application 401 may set a timestamp offset or an event timestamp offset. Application 401 may also set a scheme URI/value and a dispatch mode for the scheme URI/value. MSE 420 may dispatch events based on the scheme URI/value, the event ID, the event association ID indicating the media segment associated with the event segment, the presentation time of the event segment, the start time offset of the event, and the event duration.
图5示出了处理媒体片段和事件片段的示例媒体和事件缓冲器组500。每个媒体流510可以包括媒体片段(S0,S1,S2,S3)和事件片段(E0,E1,E2)。媒体片段可以被附加到媒体源缓冲器或媒体缓冲器520。Figure 5 illustrates an example media and event buffer group 500 for processing media segments and event segments. Each media stream 510 may include media segments (S0, S1, S2, S3) and event segments (E0, E1, E2). Media segments may be appended to a media source buffer or a media buffer 520.
带内事件和‘moof’解析器406可以解析媒体流并且生成媒体片段和事件片段。可以基于时间戳偏移,将每个媒体片段附加到媒体源缓冲器或媒体缓冲器520。附加到媒体源缓冲器或媒体缓冲器520的每个媒体片段,可以具有唯一的事件关联ID。使用相应媒体片段的事件关联ID,可以将生成的事件片段(E0,E1,E2)与特定媒体片段(S0,S1,S2,S3)相关联。在示例性实施例中,多个事件片段可以与一个媒体片段相关联。The in-band event and 'moof' parser 406 can parse the media stream and generate media segments and event segments. Each media segment can be appended to a media source buffer or media buffer 520 based on a timestamp offset. Each media segment appended to the media source buffer or media buffer 520 can have a unique event association ID. Using the event association ID of the corresponding media segment, the generated event segments (E0, E1, E2) can be associated with a specific media segment (S0, S1, S2, S3). In an exemplary embodiment, multiple event segments can be associated with a single media segment.
在示例性实施例中,可以通过将事件清除缓冲器530中的事件片段的事件开始时间和事件持续时间,与媒体缓冲器520中的相关联的媒体片段(S0,S1,S2,S3)的开始时间和持续时间对准,将事件片段(E0,E1,E2)附加到事件清除缓冲器530。作为示例,一个或多个事件片段的呈现时间或事件开始时间偏移和事件清除缓冲器530中的持续时间,可以与媒体缓冲器620中的相关联媒体片段的呈现时间和持续时间对准。在一些示例性实施例中,如果多于一个事件片段与同一媒体片段相关联,则可以基于相关联的媒体片段的呈现时间来调整每个事件片段的事件开始时间偏移。In an exemplary embodiment, event segments (E0, E1, E2) can be appended to the event clearing buffer 530 by aligning the event start time and event duration of the event segments in the event clearing buffer 530 with the start time and duration of the associated media segments (S0, S1, S2, S3) in the media buffer 520. As an example, the rendering time or event start time offset of one or more event segments and their durations in the event clearing buffer 530 can be aligned with the rendering time and duration of the associated media segments in the media buffer 620. In some exemplary embodiments, if more than one event segment is associated with the same media segment, the event start time offset of each event segment can be adjusted based on the rendering time of the associated media segment.
在一些示例性实施例中,可以通过在事件清除缓冲器530中复制相应事件片段的事件开始时间和持续时间,将事件片段附加到事件派发缓冲器540。在一些实施例中,事件片段的顺序、呈现时间和持续时间,在事件清除缓冲器530和事件派发缓冲器540两者中,可以是等效的。作为示例,如果应用已经将该方案设置为“on_receive”,则事件片段的呈现时间或事件开始时间偏移和事件派发缓冲器540中的持续时间,可以与相关联的媒体片段的呈现时间和持续时间对准,即,事件派发缓冲器540可以是事件清除缓冲器530的副本。In some exemplary embodiments, an event segment can be appended to an event dispatch buffer 540 by copying the event start time and duration of the corresponding event segment into the event clearing buffer 530. In some embodiments, the order, rendering time, and duration of the event segments can be equivalent in both the event clearing buffer 530 and the event dispatch buffer 540. As an example, if the application has set the scheme to "on_receive", the rendering time or event start time offset of the event segment and the duration in the event dispatch buffer 540 can be aligned with the rendering time and duration of the associated media segment; that is, the event dispatch buffer 540 can be a copy of the event clearing buffer 530.
图6示出了处理媒体片段和事件片段的示例媒体和事件缓冲器组。每个媒体流610可以包括媒体片段(S0,S1,S2,S3)和事件片段(E0,E1,E2)。媒体片段可以被附加到媒体源缓冲器或媒体缓冲器620。Figure 6 illustrates an example group of media and event buffers for processing media segments and event segments. Each media stream 610 may include media segments (S0, S1, S2, S3) and event segments (E0, E1, E2). Media segments may be appended to a media source buffer or a media buffer 620.
带内事件和‘moof’解析器406可以解析媒体流,并且生成媒体片段和事件片段。可以基于时间戳偏移,将每个媒体片段附加到媒体源缓冲器或媒体缓冲器620。附加到媒体源缓冲器或媒体缓冲器620的每个媒体片段,可以具有唯一的事件关联ID。使用相应媒体片段的事件关联ID,可以将生成的事件片段(E0,E1,E2)与特定媒体片段(S0,S1,S2,S3)相关联。在示例性实施例中,多个事件片段可以与一个媒体片段相关联。The in-band event and 'moof' parser 406 can parse the media stream and generate media segments and event segments. Each media segment can be appended to a media source buffer or media buffer 620 based on a timestamp offset. Each media segment appended to the media source buffer or media buffer 620 can have a unique event association ID. Using the event association ID of the corresponding media segment, the generated event segments (E0, E1, E2) can be associated with a specific media segment (S0, S1, S2, S3). In an exemplary embodiment, multiple event segments can be associated with a single media segment.
在示例性实施例中,通过将事件清除缓冲器630中的事件片段的事件开始时间和事件持续时间,与媒体缓冲器620中的相关联的媒体片段(S0,S1,S2,S3)的开始时间和持续时间对准,可以将事件片段(E0,E1,E2)附加到事件清除缓冲器630。作为示例,一个或多个事件片段的呈现时间或事件开始时间偏移和事件清除缓冲器630中的持续时间可以与媒体缓冲器620中的相关联媒体片段的呈现时间和持续时间对准。在一些示例性实施例中,如果多于一个事件片段与同一媒体片段相关联,则应该基于相关联的媒体片段的呈现时间来调整每个事件片段的事件开始时间偏移。In an exemplary embodiment, event segments (E0, E1, E2) can be appended to the event clearing buffer 630 by aligning the event start time and event duration of the event segments in the event clearing buffer 630 with the start time and duration of the associated media segments (S0, S1, S2, S3) in the media buffer 620. As an example, the rendering time or event start time offset of one or more event segments and their durations in the event clearing buffer 630 can be aligned with the rendering time and duration of the associated media segments in the media buffer 620. In some exemplary embodiments, if more than one event segment is associated with the same media segment, the event start time offset of each event segment should be adjusted based on the rendering time of the associated media segment.
在示例性实施例中,可以通过添加事件片段来将事件片段附加到事件派发缓冲器640,使得事件片段的事件开始时间偏移是事件派发缓冲器640中的事件的呈现时间,并且事件片段的持续时间是事件派发缓冲器640中的事件的持续时间。作为示例,如果应用已经将该方案设置为“on_start”,则事件片段的呈现时间和事件派发缓冲器640中持续时间可以反映事件片段的事件开始时间偏移和持续时间。在一些实施例中,事件派发缓冲器640可以反映事件片段的事件开始时间和持续时间,即,可以附加事件片段,使得事件片段在事件派发缓冲器640中是从事件片段的开始直到事件片段的结束。因此,在一些实施例中,事件清除缓冲器630和事件派发缓冲器640可以不是等效的。In an exemplary embodiment, an event fragment can be appended to the event dispatch buffer 640 by adding an event fragment, such that the event start time offset of the event fragment is the rendering time of the event in the event dispatch buffer 640, and the duration of the event fragment is the duration of the event in the event dispatch buffer 640. As an example, if the application has already set this scheme to "on_start", the rendering time of the event fragment and the duration in the event dispatch buffer 640 can reflect the event start time offset and duration of the event fragment. In some embodiments, the event dispatch buffer 640 can reflect the event start time and duration of the event fragment; that is, event fragments can be appended such that the event fragment in the event dispatch buffer 640 extends from the beginning of the event fragment to the end of the event fragment. Therefore, in some embodiments, the event clearing buffer 630 and the event dispatch buffer 640 may not be equivalent.
图7示出了用于处理媒体片段和事件片段的示例媒体和事件缓冲器组700。每个媒体流710可以包括媒体片段(S0,S1,S2,S3)和事件片段(E0,E1,E2)。媒体片段可以被附加到媒体源缓冲器或媒体缓冲器720。Figure 7 illustrates an example media and event buffer group 700 for processing media segments and event segments. Each media stream 710 may include media segments (S0, S1, S2, S3) and event segments (E0, E1, E2). Media segments may be appended to a media source buffer or a media buffer 720.
在示例性实施例中,事件清除缓冲器730和事件派发缓冲器740中的事件片段(E0,E1,E2)可以被移除、清除或重写。在一些实施例中,事件片段可以被部分地移除、清除或重写。为了移除、清除或重写事件片段,可以从事件清除缓冲器730和事件派发缓冲器740中移除事件片段。作为示例,一旦媒体片段在媒体缓冲器720中被重写,事件清除缓冲器730和事件派发缓冲器740中与被重写的媒体片段相关联的相应事件片段也可以被重写。In an exemplary embodiment, event fragments (E0, E1, E2) in the event clearing buffer 730 and the event dispatch buffer 740 may be removed, cleared, or rewritten. In some embodiments, event fragments may be partially removed, cleared, or rewritten. To remove, clear, or rewrite event fragments, event fragments may be removed from the event clearing buffer 730 and the event dispatch buffer 740. As an example, once a media fragment is rewritten in the media buffer 720, the corresponding event fragments associated with the rewritten media fragment in the event clearing buffer 730 and the event dispatch buffer 740 may also be rewritten.
在一些实施例中,为了部分地移除或重写事件片段,事件片段可以在事件清除缓冲器730和事件派发缓冲器740中被分割成更小的分段(sections),并且可以仅移除、清除或重写与新事件片段重叠的事件片段的各个分段,进而添加新事件片段的各个分段。作为示例,如果新事件片段小于事件清除缓冲器730或事件派发缓冲器740中的当前事件片段,则事件清除缓冲器730中的一个或多个当前事件片段可以被分割成更小的分段以匹配新事件片段。事件清除缓冲器730中与新的较小事件片段重叠的事件片段的各个分段可以被移除、清除或重写。In some embodiments, to partially remove or rewrite event segments, event segments can be divided into smaller sections in the event clearing buffer 730 and the event dispatch buffer 740. Only the sections of the event segments that overlap with the new event segment can be removed, cleared, or rewritten, thereby adding sections of the new event segment. As an example, if the new event segment is smaller than the current event segment in the event clearing buffer 730 or the event dispatch buffer 740, one or more current event segments in the event clearing buffer 730 can be divided into smaller sections to match the new event segment. The sections of the event segments in the event clearing buffer 730 that overlap with the new, smaller event segment can be removed, cleared, or rewritten.
在一些实施例中,可以仅移除、清除或重写事件清除缓冲器730中与新事件片段重叠的事件片段。在一些实施例中,可以仅移除、清除或重写事件派发缓冲器740中与新事件片段重叠的事件片段。事件清除缓冲器730可以被重写,并且然后事件派发缓冲器740可以被重写,使得事件清除缓冲器730和事件派发缓冲器740可以是等效的。作为示例,如果应用已经将该方案设置为“on_receive”,则可以重写事件清除缓冲器730和事件派发缓冲器740两者中与新事件片段重叠的事件片段或事件片段的各个分段。In some embodiments, only event segments overlapping with the new event segment in the event clearing buffer 730 may be removed, cleared, or rewritten. In some embodiments, only event segments overlapping with the new event segment in the event dispatch buffer 740 may be removed, cleared, or rewritten. The event clearing buffer 730 may be rewritten, and then the event dispatch buffer 740 may be rewritten, such that the event clearing buffer 730 and the event dispatch buffer 740 may be equivalent. As an example, if the application has already set the scheme to "on_receive", then event segments or individual segments of event segments overlapping with the new event segment in both the event clearing buffer 730 and the event dispatch buffer 740 may be rewritten.
在一些示例性实施例中,事件片段的移除、清除或重写需要确定:在事件清除缓冲器730中不存在与同一媒体片段相关联的其它事件片段。在一些示例性实施例中,如果在事件清除缓冲器730中不存在与同一媒体片段相关联的其它事件片段,则事件派发缓冲器740中的对应事件可以被移除、清除或重写。作为示例,如果多于一个事件片段与事件清除缓冲器730中的新事件片段重叠,则重写重叠的事件片段要求:在重写事件清除缓冲器730中的重叠事件片段之前,派发与同一媒体片段相关联的所有事件片段。在一些实施例中,如果在事件清除缓冲器730中不存在与同一媒体片段相关联的事件片段,则可以在事件清洗缓冲器730中对重叠的事件段进行重写。作为示例,如果应用已经将该方案设置为“on_start”,则重写事件清除缓冲器730中的重叠事件要求:在重写事件清除缓冲器730中的重叠事件片段之前,派发与同一媒体片段相关联的所有事件片段。在一些实施例中,一旦事件片段在事件清除缓冲器730中被移除、清除或重写,对应的事件片段就可以在事件派发缓冲器740中被移除、清除或重写。作为示例,如果应用已经将方案设置为“on_start”,则在事件清除缓冲器730中的一个或多个重叠事件片段被重写之后,事件派发缓冲器740中要被重写的重叠段可以被重写。In some exemplary embodiments, the removal, clearing, or rewriting of an event segment requires determining that no other event segments associated with the same media segment exist in the event clearing buffer 730. In some exemplary embodiments, if no other event segments associated with the same media segment exist in the event clearing buffer 730, the corresponding event in the event dispatch buffer 740 can be removed, cleared, or rewritten. As an example, if more than one event segment overlaps with a new event segment in the event clearing buffer 730, rewriting the overlapping event segments requires dispatching all event segments associated with the same media segment before rewriting the overlapping event segments in the event clearing buffer 730. In some embodiments, if no event segments associated with the same media segment exist in the event clearing buffer 730, the overlapping event segments can be rewritten in the event cleanup buffer 730. As an example, if the application has set this scheme to "on_start", rewriting the overlapping events in the event clearing buffer 730 requires dispatching all event segments associated with the same media segment before rewriting the overlapping event segments in the event clearing buffer 730. In some embodiments, once an event fragment is removed, cleared, or rewritten in the event clearing buffer 730, the corresponding event fragment can be removed, cleared, or rewritten in the event dispatch buffer 740. As an example, if the application has set the scheme to "on_start", then after one or more overlapping event fragments in the event clearing buffer 730 have been rewritten, the overlapping segment to be rewritten in the event dispatch buffer 740 can be rewritten.
图8A示出了图示关于处理DASH和CMAF带内事件的过程800的示例性流程图,其中,根据示例性实施例,事件片段可以被附加到事件清除缓冲器和事件派发缓冲器。在810处,获得媒体数据。媒体数据可以是任何类型的媒体数据。作为示例,媒体数据可以是音频数据、视频数据、文档或其任何组合。获得的媒体数据还可以包含事件数据。Figure 8A illustrates an exemplary flowchart of process 800 for processing DASH and CMAF in-band events, wherein, according to an exemplary embodiment, event fragments may be appended to an event clearing buffer and an event dispatch buffer. At 810, media data is obtained. The media data can be any type of media data. As an example, the media data can be audio data, video data, a document, or any combination thereof. The obtained media data may also contain event data.
在815处,可以从获得的媒体数据中,生成至少一个事件片段。在一些实施例中,MSE或MSE的解析器部件可以从获得的媒体数据中,生成事件片段。事件片段可以包括MPD和带内事件,以将媒体时间线相关的事件传递到客户端或应用。作为示例,带内事件和‘moof’解析器(306或406)可以从获得的媒体数据中生成事件片段。在一些实施例中,解析器可以生成媒体片段和与媒体片段相对应的事件片段两者。作为示例,带内事件和‘moof’解析器(306或406)可以基于媒体数据生成媒体片段和相关联的事件片段。事件片段可以使用事件关联ID与事件片段相关联,其中,事件关联ID可以是与媒体片段相关联的唯一ID。在一些实施例中,多个事件片段可以与同一媒体片段相关联。与同一媒体片段相关联的事件片段可以具有事件关联ID。At point 815, at least one event fragment can be generated from the acquired media data. In some embodiments, the MSE or a parser component of the MSE can generate event fragments from the acquired media data. Event fragments may include MPDs and in-band events to deliver media timeline-related events to a client or application. As an example, an in-band event and 'moof' parser (306 or 406) can generate event fragments from the acquired media data. In some embodiments, the parser can generate both a media fragment and an event fragment corresponding to the media fragment. As an example, an in-band event and 'moof' parser (306 or 406) can generate media fragments and associated event fragments based on media data. Event fragments can be associated with an event association ID, where the event association ID can be a unique ID associated with the media fragment. In some embodiments, multiple event fragments can be associated with the same media fragment. Event fragments associated with the same media fragment can have an event association ID.
在820处,确定事件片段的事件开始时间偏移。在一些实施例中,MSE或其部件确定要附加到事件清除缓冲器或事件派发缓冲器的每个事件片段的事件开始时间偏移。在一些实施例中,事件片段的事件开始时间偏移可以基于事件片段被附加到事件清除缓冲器的时间来确定。在一些实施例中,事件片段的事件开始时间偏移可以基于事件片段被附加到事件派发缓冲器的时间来确定。在一些实施例中,事件片段的事件开始时间偏移可以基于MSEAPI中的事件片段或媒体片段的呈现时间来确定。事件片段的开始时间偏移指示从派发时刻开始的事件的开始时间。因此,当事件片段被发送到应用时,该应用可以从派发时刻确定事件的相对开始,而不是比较公共时间基准。At 820, the event start time offset of the event segment is determined. In some embodiments, MSE or its components determine the event start time offset for each event segment to be attached to the event clear buffer or the event dispatch buffer. In some embodiments, the event start time offset of the event segment may be determined based on the time the event segment is attached to the event clear buffer. In some embodiments, the event start time offset of the event segment may be determined based on the time the event segment is attached to the event dispatch buffer. In some embodiments, the event start time offset of the event segment may be determined based on the rendering time of the event segment or media segment in the MSE API. The start time offset of the event segment indicates the start time of the event from the dispatch time. Therefore, when the event segment is sent to the application, the application can determine the relative start of the event from the dispatch time, rather than comparing a common time base.
传统方法中,是使用MSE中的事件开始时间,并处理应用中的事件。但是,这种传统方法需要维护一个公共的时间参考。The traditional approach uses the event start time in the MSE (Multi-Security Environment) and processes events in the application. However, this traditional approach requires maintaining a common time reference.
根据本实施例,提供了一种替代的时间同步方式,使用基于MSE API中的时间来确定的事件片段的事件开始时间偏移,避免了应用在确定事件片段的相对开始时间时,需要比较公共时间基准,增加了应用处理效率并且降低了带宽要求。According to this embodiment, an alternative time synchronization method is provided, which uses the event start time offset of the event segment determined based on the time in the MSE API. This avoids the need for the application to compare a common time base when determining the relative start time of the event segment, thereby increasing the application processing efficiency and reducing bandwidth requirements.
在825处,可以基于事件片段的事件开始时间偏移,将事件片段附加到事件清除缓冲器。事件清除缓冲器可以用于确定事件片段的顺序、它们的位置和派发定时。在一些实施例中,将事件片段附加到清除缓冲器可以包括将事件片段的呈现时间和持续时间与相关联媒体片段的相应呈现时间和持续时间对准。作为示例,与媒体片段相关联的事件片段可以被放置在事件清除缓冲器中,使得每个事件片段和相关联的媒体片段具有相同的呈现时间和持续时间。At 825, event segments can be appended to the event clearing buffer based on their event start time offset. The event clearing buffer can be used to determine the order of event segments, their location, and dispatch timing. In some embodiments, appending event segments to the clearing buffer can include aligning the render time and duration of the event segment with the corresponding render time and duration of the associated media segment. As an example, event segments associated with media segments can be placed in the event clearing buffer such that each event segment and its associated media segment have the same render time and duration.
在830处,可以基于事件片段的派发信息,将事件片段附加到事件派发缓冲器。在一些实施例中,派发信息可以包括指示事件初始化、事件附加、事件清除、事件持续时间、事件重写或应用所设置的属性中至少一种信息。应用所设置的一些属性,或应用基于属性集合所设置的一些属性,包括方案URI/值、id、事件片段的事件开始时间偏移、事件片段的开始呈现增量和事件片段持续时间。At 830, an event fragment can be appended to the event dispatch buffer based on the event fragment's dispatch information. In some embodiments, the dispatch information may include information indicating at least one of the following: event initialization, event appending, event cleanup, event duration, event rewriting, or attributes set by the application. These attributes, or attributes set by the application based on a set of attributes, include scheme URI/value, id, event start time offset of the event fragment, start rendering increment of the event fragment, and event fragment duration.
在一些实施例中,将事件片段附加到事件派发缓冲器可以包括重复将事件片段附加到事件清除缓冲器,或复制这种附加操作。因此,事件片段的顺序、呈现时间和持续时间在事件清除缓冲器和事件派发缓冲器中可以是相同的。作为示例,如果应用已经将该方案设置为“on_receive”,则一个或多个事件片段的呈现时间或事件开始时间偏移和事件派发缓冲器中的持续时间,可以与相关联的媒体片段的呈现时间和持续时间对准,即,事件派发缓冲器可以是事件清除缓冲器的副本。In some embodiments, attaching event fragments to an event dispatch buffer may include repeatedly attaching event fragments to an event clear buffer, or duplicating this attachment operation. Therefore, the order, render time, and duration of event fragments can be the same in both the event clear buffer and the event dispatch buffer. As an example, if the application has set this scheme to "on_receive," the render time or event start time offset of one or more event fragments and their duration in the event dispatch buffer can be aligned with the render time and duration of the associated media fragment; that is, the event dispatch buffer can be a copy of the event clear buffer.
在一些实施例中,将事件片段附加到事件派发缓冲器可以通过如下添加事件片段的方式实现:事件片段的事件开始时间偏移是事件派发缓冲器中的事件呈现时间,事件片段的持续时间是事件派发缓冲器中的事件持续时间。作为示例,如果应用已经将该方案设置为“on_start”,则事件派发缓冲器中的事件片段的呈现时间和持续时间可以反映事件片段的事件开始时间偏移和持续时间。在一些实施例中,事件派发缓冲器可以反映事件片段的事件开始时间和持续时间,即,可以附加事件片段,使得事件片段在缓冲器中是从事件片段的开始直到事件片段的结束。因此,在一些实施例中,事件清除缓冲器和事件派发缓冲器可以不是等效的。In some embodiments, appending an event fragment to an event dispatch buffer can be achieved by adding the event fragment in such a way that the event start time offset of the event fragment is the event rendering time in the event dispatch buffer, and the duration of the event fragment is the event duration in the event dispatch buffer. As an example, if the application has already set this scheme to "on_start", the rendering time and duration of the event fragment in the event dispatch buffer can reflect the event start time offset and duration of the event fragment. In some embodiments, the event dispatch buffer can reflect the event start time and duration of the event fragment; that is, event fragments can be appended such that the event fragment in the buffer extends from the beginning of the event fragment to the end of the event fragment. Therefore, in some embodiments, the event clearing buffer and the event dispatch buffer may not be equivalent.
在835处,可以基于相应事件片段的派发信息将事件片段派发到应用。派发信息可以包括关于如下各项的信息:事件片段初始化、事件关联ID、事件开始时间偏移、事件片段持续时间、应用方案URI/值以及事件清除、事件附加、事件重写属性。At point 835, event fragments can be dispatched to the application based on the dispatch information for the corresponding event fragment. The dispatch information may include information about the following: event fragment initialization, event association ID, event start time offset, event fragment duration, application scheme URI/value, and event clearing, event attaching, and event rewriting attributes.
图8B示出了图示关于处理DASH和CMAF带内事件的过程850的示例性流程图,其中,根据示例性实施例,可以从事件清除缓冲器和事件派发缓冲器派发事件片段。Figure 8B shows an exemplary flowchart illustrating a process 850 for processing DASH and CMAF in-band events, wherein, according to an exemplary embodiment, event fragments can be dispatched from an event clear buffer and an event dispatch buffer.
在860处,识别用于特定呈现时间的事件派发缓冲器中的事件片段。在一些实施例中,MSE或其部件可以针对特定呈现时间识别事件派发缓冲器中的事件片段。在一些实施例中,呈现时间可以基于MSE API事件呈现时间来确定。在其它实施例中,呈现时间可以基于媒体片段的呈现时间来确定。多个事件片段可以与事件关联ID相关联,即,多个事件片段可以与同一媒体片段相关联。At 860, an event fragment in the event dispatch buffer for a specific presentation time is identified. In some embodiments, MSE or its components may identify event fragments in the event dispatch buffer for a specific presentation time. In some embodiments, the presentation time may be determined based on the MSE API event presentation time. In other embodiments, the presentation time may be determined based on the presentation time of the media fragment. Multiple event fragments may be associated with an event association ID; that is, multiple event fragments may be associated with the same media fragment.
在865处,确定在事件派发缓冲器中识别出的用于特定呈现时间的事件片段,是否被包括在派发事件表中。在一些实施例中,MSE或其部件可以确定事件片段是否被包括在派发事件表中。派发事件表可以保存已经被派发到应用的事件片段或事件消息的记录。因此,如果事件片段被包括在派发事件表中,则该事件片段可能已经被派发给应用。如果在呈现时间处事件派发缓冲器中的事件片段未被包括在派发事件表中,则在870处可以将事件片段派发给应用,因为该事件片段可能还未被派发给应用。作为示例,如果在呈现时间处事件派发缓冲器中的事件片段的事件ID不存在于派发事件表中,则将事件片段派发给应用。作为另一示例,如果在呈现时间处事件派发缓冲器中的事件片段的事件ID被包括在派发事件表中,则该事件片段可能已经被派发给应用。At 865, it is determined whether the event fragment identified in the event dispatch buffer for a specific rendering time is included in the dispatch event table. In some embodiments, the MSE or its components may determine whether the event fragment is included in the dispatch event table. The dispatch event table may store records of event fragments or event messages that have been dispatched to the application. Therefore, if an event fragment is included in the dispatch event table, the event fragment may have already been dispatched to the application. If the event fragment in the event dispatch buffer at the rendering time is not included in the dispatch event table, the event fragment may be dispatched to the application at 870 because the event fragment may not have been dispatched to the application yet. As an example, if the event ID of the event fragment in the event dispatch buffer at the rendering time does not exist in the dispatch event table, the event fragment is dispatched to the application. As another example, if the event ID of the event fragment in the event dispatch buffer at the rendering time is included in the dispatch event table, the event fragment may have already been dispatched to the application.
在875处,可以将派发给应用程序的事件片段添加到派发事件表。在一些实施例中,被派发且未被包括在派发事件表中的事件片段,被添加到派发事件表中。作为示例,如果事件片段被派发到应用,则该事件片段的事件ID可以被添加到派发事件表,以维护该事件片段被派发到应用的记录。At 875, event fragments dispatched to the application can be added to the dispatch event table. In some embodiments, event fragments that are dispatched but not included in the dispatch event table are added to the dispatch event table. As an example, if an event fragment is dispatched to the application, the event ID of that event fragment can be added to the dispatch event table to maintain a record of the event fragment being dispatched to the application.
图9示出了图示关于处理DASH和CMAF带内事件的过程900的示例性流程图,其中,根据示例性实施例,可以从事件清除缓冲器和事件派发缓冲器中移除、清除或重写事件片段。在910处,生成来自新媒体数据的新事件片段。在一些实施例中,MSE或其部件可以从新的媒体数据中生成一个或多个新事件片段。在一些示例性实施例中,可以为附加到媒体缓冲器的新媒体片段,生成新事件片段。作为示例,当新媒体片段被解析出来并且附加到媒体缓冲器时,可以将与新媒体片段相对应的新事件片段附加到事件清除缓冲器和事件派发缓冲器。Figure 9 illustrates an exemplary flowchart of process 900 for processing DASH and CMAF in-band events, wherein, according to an exemplary embodiment, event fragments can be removed, cleared, or rewritten from the event clearing buffer and the event dispatch buffer. At 910, a new event fragment from the new media data is generated. In some embodiments, the MSE or its components can generate one or more new event fragments from the new media data. In some exemplary embodiments, a new event fragment can be generated for a new media fragment appended to the media buffer. As an example, when a new media fragment is parsed and appended to the media buffer, a new event fragment corresponding to the new media fragment can be appended to the event clearing buffer and the event dispatch buffer.
在915处,可以将与事件清除缓冲器中的新事件片段重叠的事件片段拆分,以匹配新事件片段的事件持续时间、事件开始时间偏移或呈现时间。如果新片段小于事件清除缓冲器中的事件片段,则事件清除缓冲器中的重叠事件片段可以被分割,以匹配新事件片段的事件持续时间。作为示例,如果与事件清除缓冲器中的事件片段重叠的新事件片段具有较短的事件持续时间,则事件清除缓冲器中重叠的事件片段可以被分割成与新事件片段的较短事件持续时间相对应的两个或更多个分段。在一些实施例中,基于新事件片段的持续时间来移除、清除或重写事件清除缓冲器中重叠的事件片段分段。At 915, event segments overlapping with new event segments in the event clear buffer can be split to match the event duration, event start time offset, or rendering time of the new event segment. If the new segment is smaller than the event segments in the event clear buffer, the overlapping event segments in the event clear buffer can be segmented to match the event duration of the new event segment. As an example, if a new event segment overlapping with an event segment in the event clear buffer has a shorter event duration, the overlapping event segment in the event clear buffer can be segmented into two or more segments corresponding to the shorter event duration of the new event segment. In some embodiments, overlapping event segment segments in the event clear buffer are removed, cleared, or overwritten based on the duration of the new event segment.
在920处,可以将与事件派发缓冲器中的新事件片段重叠的事件片段拆分,以匹配新事件片段的事件持续时间、事件开始时间偏移或呈现时间。如果新片段小于或短于事件派发缓冲器中的事件片段,则事件派发缓冲器中重叠的事件片段可以被分割以匹配新事件片段的事件持续时间、事件开始时间偏移或呈现时间。作为示例,如果与事件派发缓冲器中的事件片段重叠的新事件片段具有较短的事件持续时间,则事件派发缓冲器中的重叠事件片段可以被分割成与新事件片段的较短事件持续时间相对应的两个或更多个分段。在一些实施例中,基于新事件片段的持续时间来移除、清除或重写事件派发缓冲器中重叠的事件片段分段。At 920, event segments overlapping with new event segments in the event dispatch buffer can be split to match the event duration, event start time offset, or rendering time of the new event segment. If the new segment is smaller or shorter than the event segments in the event dispatch buffer, the overlapping event segments in the event dispatch buffer can be split to match the event duration, event start time offset, or rendering time of the new event segment. As an example, if a new event segment overlapping with an event segment in the event dispatch buffer has a shorter event duration, the overlapping event segment in the event dispatch buffer can be split into two or more segments corresponding to the shorter event duration of the new event segment. In some embodiments, overlapping event segment segments in the event dispatch buffer are removed, cleared, or rewritten based on the duration of the new event segment.
在925处,确定来自事件清除缓冲器和事件派发缓冲器的事件片段是否可以被移除、清除或重写。来自事件清除缓冲器或事件派发缓冲器的事件片段是否可以被移除、清除或重写,取决于是否派发了与正被重写的媒体片段相关联的所有事件片段。如果来自事件清除缓冲器的与新事件片段重叠的事件片段不与同一媒体片段相关联,则在930处,可以从事件派发缓冲器中删除来自事件清除缓冲器的与新事件片段重叠的事件片段。在935处,可以从事件清除缓冲器中删除与新事件片段重叠的来自事件清除缓冲器的事件片段。作为示例,如果应用已经将该方案设置为“on_start”,并且如果来自事件清除缓冲器的与新事件片段重叠的事件片段不与同一媒体片段相关联,则可以从事件清除缓冲器中删除与新事件片段重叠的事件片段,并且还可以从事件派发缓冲器中删除与新事件片段重叠的事件片段,因为存在与同一媒体片段相关联的其它事件可能已经被派发。At 925, it is determined whether event fragments from the event clearing buffer and the event dispatch buffer can be removed, cleared, or overwritten. Whether event fragments from the event clearing buffer or the event dispatch buffer can be removed, cleared, or overwritten depends on whether all event fragments associated with the media fragment being overwritten have been dispatched. If an event fragment from the event clearing buffer that overlaps with the new event fragment is not associated with the same media fragment, then at 930, the event fragment from the event clearing buffer that overlaps with the new event fragment can be removed from the event dispatch buffer. At 935, the event fragment from the event clearing buffer that overlaps with the new event fragment can be removed from the event clearing buffer. As an example, if the application has set this scheme to "on_start", and if an event fragment from the event clearing buffer that overlaps with the new event fragment is not associated with the same media fragment, then the event fragment overlapping with the new event fragment can be removed from the event clearing buffer, and also from the event dispatch buffer, because there may be other events associated with the same media fragment that have already been dispatched.
在一些实施例中,可以可选地执行确定事件清除缓冲器中重叠的事件片段是否不与同一媒体片段相关联的步骤。作为示例,如果应用已经将该方案设置为“on_receive”,则可以不执行确定事件清除缓冲器中重叠的事件片段是否不与同一媒体片段相关联的步骤。In some embodiments, the step of determining whether overlapping event fragments in the event clear buffer are not associated with the same media fragment may be performed optionally. As an example, if the application has already set the scheme to "on_receive", the step of determining whether overlapping event fragments in the event clear buffer are not associated with the same media fragment may not be performed.
在930处,可以从事件清除缓冲器中删除与新事件片段重叠的事件片段。在935处,可以从事件派发缓冲器中删除与新事件片段重叠的事件片段。在940处,根据本公开中的实施例,可以将新事件片段附加到事件清除缓冲器和事件派发缓冲器。At 930, an event fragment overlapping with the new event fragment can be removed from the event clearing buffer. At 935, an event fragment overlapping with the new event fragment can be removed from the event dispatch buffer. At 940, according to embodiments of this disclosure, the new event fragment can be appended to both the event clearing buffer and the event dispatch buffer.
虽然图8A、图8B和图9示出了处理器800、850、900的示例块,但是在一些实现方式中,处理器800、850、900可以包括与图8A、图8B和图9中描绘的那些框相比更多的块、更少的块、不同的块或不同布置的块。在实施例中,处理器800、850、900的任何块可以根据所需,按照任何数量或顺序进行合并或者布置。在实施例中,处理器800、850、900的至少两个块可以并行执行。While Figures 8A, 8B, and 9 illustrate example blocks of processors 800, 850, and 900, in some implementations, processors 800, 850, and 900 may include more blocks, fewer blocks, different blocks, or blocks with different arrangements compared to those depicted in Figures 8A, 8B, and 9. In embodiments, any blocks of processors 800, 850, and 900 may be merged or arranged in any number or order as needed. In embodiments, at least two blocks of processors 800, 850, and 900 may execute in parallel.
上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或至少两个计算机可读介质中。例如,图10示出了计算机设备1000,其适于实现所公开主题的某些实施例。The above-described technologies can be implemented as computer software using computer-readable instructions and physically stored in one or at least two computer-readable media. For example, Figure 10 illustrates a computer device 1000 adapted to implement certain embodiments of the disclosed subject matter.
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或至少两个计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。The computer software can be encoded using any suitable machine code or computer language, and code including instructions can be created through mechanisms such as assembly, compilation, and linking. These instructions can be executed directly by one or at least two computer central processing units (CPUs), graphics processing units (GPUs), etc., or executed through decoding, microcode, etc.
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。The instructions can be executed on various types of computers or their components, including, for example, personal computers, tablets, servers, smartphones, gaming devices, Internet of Things devices, etc.
图10所示的用于计算机设备1000的组件本质上是示例性的,并不用于对实现本申请实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机设备1000的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。The components shown in Figure 10 for the computer device 1000 are exemplary in nature and are not intended to limit the scope or functionality of the computer software used to implement the embodiments of this application. Nor should the configuration of the components be construed as having any dependency or requirement on any component or combination thereof shown in the exemplary embodiments of the computer device 1000.
计算机设备1000可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或至少两个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。Computer device 1000 may include certain human-machine interface input devices. Such human-machine interface input devices may respond to input from one or at least two human users through tactile input (e.g., keyboard input, swiping, data glove movement), audio input (e.g., sound, applause), visual input (e.g., gestures), and olfactory input (not shown). The human-machine interface device may also be used to capture certain media that are not necessarily directly related to conscious human input, such as audio (e.g., speech, music, ambient sound), images (e.g., scanned images, photographic images obtained from still cameras), and video (e.g., two-dimensional video, three-dimensional video including stereoscopic video).
人机界面输入设备可包括以下中的一个或至少两个(仅绘出其中一个):键盘1001、鼠标1002、触控板1003、触摸屏1010、操纵杆1005、麦克风1006、扫描仪1008、照相机1007。The human-machine interface input device may include one or at least two of the following (only one is shown): keyboard 1001, mouse 1002, touchpad 1003, touch screen 1010, joystick 1005, microphone 1006, scanner 1008, and camera 1007.
计算机设备1000还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或至少两个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏1010、或操纵杆1005的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器1009、耳机)、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕1010,其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱)以及打印机。Computer device 1000 may also include certain human-machine interface (HMI) output devices. Such HMI output devices can stimulate the senses of one or at least two human users through, for example, tactile output, sound, light, and smell/taste. These HMI output devices may include tactile output devices (e.g., tactile feedback via touchscreen 1010 or joystick 1005, but may also include tactile feedback devices not used as input devices), audio output devices (e.g., speakers 1009, headphones), visual output devices (e.g., screen 1010 including cathode ray tube screens, liquid crystal screens, plasma screens, organic light-emitting diode screens, each with or without touchscreen input functionality, each with or without tactile feedback functionality—some of which may output two-dimensional or higher-dimensional visual outputs through means such as stereoscopic image output; virtual reality glasses (not shown), holographic displays, and smoke boxes), and printers.
计算机设备1000还可以包括人可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)1020或类似介质1011的光学介质、拇指驱动器1022、可移动硬盘驱动器或固体状态驱动器1023,诸如磁带和软盘的传统磁介质,诸如安全软件保护器等的基于ROM/ASIC/PLD的专用设备,等等。Computer device 1000 may also include human-accessible storage devices and related media, such as optical media including high-density read-only/rewritable optical discs (CD/DVD ROM/RW) 1020 or similar media 1011, thumb drives 1022, removable hard disk drives or solid-state drives 1023, conventional magnetic media such as magnetic tapes and floppy disks, dedicated devices based on ROM/ASIC/PLD such as security software protectors, etc.
本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the disclosed subject matter does not include transmission media, carrier waves, or other transient signals.
计算机设备1000还可以包括通往一个或至少两个通信网络1098的接口1099。例如,网络1098可以是无线的、有线的、光学的。网络1098还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络1098还包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络1098通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(1050和1051)(例如,计算机设备1000的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机设备1000的核心(例如,以太网接口集成到PC计算机设备或蜂窝网络接口集成到智能电话计算机设备)。通过使用这些网络1098中的任何一个,计算机设备1000可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机设备。上述的每个网络和网络接口可使用某些协议和协议栈。Computer device 1000 may also include interfaces 1099 providing access to one or more communication networks 1098. For example, network 1098 may be wireless, wired, or optical. Network 1098 may also be a local area network (LAN), wide area network (WAN), metropolitan area network (MAN), vehicular and industrial network, real-time network, latency-tolerant network, etc. Network 1098 also includes Ethernet, wireless LAN, cellular networks (GSM, 3G, 4G, 5G, LTE, etc.), cable or wireless wide area digital networks (including cable TV, satellite TV, and terrestrial broadcast TV), vehicular and industrial networks (including CANBus), etc. Some networks 1098 typically require external network interface adapters for connection to certain general-purpose data ports or peripheral buses (1050 and 1051) (e.g., the USB port of computer device 1000); other systems are typically integrated into the core of computer device 1000 via connection to system buses as described below (e.g., an Ethernet interface integrated into a PC computer device or a cellular network interface integrated into a smartphone computer device). By using any of these networks 1098, computer device 1000 can communicate with other entities. This communication can be unidirectional, used only for receiving (e.g., wireless television), unidirectional, used only for sending (e.g., CAN bus to certain CAN bus devices), or bidirectional, such as via a local area or wide area digital network to other computer devices. Each of the aforementioned networks and network interfaces can use certain protocols and protocol stacks.
上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机设备1000的核心1040。The aforementioned human-computer interface device, human-accessible storage device, and network interface can be connected to the core 1040 of the computer device 1000.
核心1040可包括一个或至少两个中央处理单元(CPU)1041、图形处理单元(GPU)1042、以现场可编程门阵列(FPGA)1043形式的专用可编程处理单元、用于特定任务的硬件加速器1044等。这些设备以及只读存储器(ROM)1045、随机存取存储器1046、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)1047等可通过系统总线1048进行连接。在某些计算机设备中,可以以一个或至少两个物理插头的形式访问系统总线1048,以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线1048,或通过外围总线1049进行连接。外围总线的体系结构包括外部控制器接口PCI、通用串行总线USB等。The core 1040 may include one or at least two central processing units (CPUs) 1041, a graphics processing unit (GPU) 1042, a dedicated programmable processing unit in the form of a field-programmable gate array (FPGA) 1043, a task-specific hardware accelerator 1044, etc. These devices, along with read-only memory (ROM) 1045, random access memory 1046, internal mass storage (e.g., internal non-user-accessible hard disk drives, solid-state drives, etc.) 1047, etc., can be connected via a system bus 1048. In some computer devices, the system bus 1048 can be accessed with one or at least two physical connectors to allow for expansion with additional CPUs, GPUs, etc. Peripheral devices may be directly attached to the core's system bus 1048 or connected via a peripheral bus 1049. Peripheral bus architectures include external controller interfaces (PCI), universal serial buses (USB), etc.
CPU 1041、GPU 1042、FPGA 1043和加速器1044可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM 1045或RAM 1046中。过渡数据也可以存储在RAM 1046中,而永久数据可以存储在例如内部大容量存储器1047中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或至少两个CPU 1041、GPU 1042、大容量存储器1047、ROM 1045、RAM 1046等紧密关联。The CPU 1041, GPU 1042, FPGA 1043, and accelerator 1044 can execute certain instructions, which, when combined, constitute the aforementioned computer code. This computer code can be stored in ROM 1045 or RAM 1046. Transient data can also be stored in RAM 1046, while permanent data can be stored, for example, in internal mass storage 1047. Fast storage and retrieval of any memory device can be achieved through the use of a cache memory, which can be closely associated with one or more of the CPU 1041, GPU 1042, mass storage 1047, ROM 1045, RAM 1046, etc.
所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。The computer-readable medium may contain computer code for performing various computer-implemented operations. The medium and computer code may be specifically designed and constructed for the purposes of this application, or they may be media and code well-known and usable by those skilled in the art of computer software.
作为实施例而非限制,具有所示结构的计算机设备1000,特别是核心1040,可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或至少两个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心1040的特定存储器,例如核心内部大容量存储器1047或ROM 1045。实现本申请的各种实施例的软件可以存储在这种设备中并且由核心1040执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心1040特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM 1046中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机设备可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器1044)中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本申请包括任何合适的硬件和软件组合。By way of example and not limitation, the computer device 1000 having the illustrated structure, particularly the core 1040, can serve as a processor (including a CPU, GPU, FPGA, accelerator, etc.) to perform the function of executing software contained in one or at least two tangible computer-readable media. Such computer-readable media may be a medium associated with the aforementioned user-accessible mass storage, and a specific memory of the non-volatile core 1040, such as the core's internal mass storage 1047 or ROM 1045. Software implementing various embodiments of this application can be stored in such a device and executed by the core 1040. Depending on specific needs, the computer-readable medium may include one or more storage devices or chips. The software can cause the core 1040, particularly the processor therein (including a CPU, GPU, FPGA, etc.), to perform a specific process or a specific portion of a specific process described herein, including defining data structures stored in RAM 1046 and modifying such data structures according to a software-defined process. Alternatively or as an alternative, the computer device may provide logic hardwired or otherwise included in circuitry (e.g., accelerator 1044) that may replace or operate with the software to perform the specific process or a specific portion of the specific process described herein. Where appropriate, references to software may include logic, and vice versa. Where appropriate, references to computer-readable media may include circuitry storing the execution of software (such as an integrated circuit (IC)), circuitry containing the execution logic, or both. This application includes any suitable combination of hardware and software.
虽然本申请已对至少两个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本申请的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本申请的原则,因此属于本申请的精神和范围之内。While at least two exemplary embodiments have been described in this application, various modifications, arrangements, and equivalent substitutions of the embodiments are within the scope of this application. Therefore, it should be understood that those skilled in the art can design various systems and methods that, although not explicitly shown or described herein, embody the principles of this application and are thus within its spirit and scope.
Claims (12)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US63/176,748 | 2021-04-19 | ||
| US17/495,299 | 2021-10-06 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK40080095A HK40080095A (en) | 2023-04-28 |
| HK40080095B true HK40080095B (en) | 2025-02-21 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102501184B1 (en) | Methods and apparatus for dynamic adaptive streaming over HTTP | |
| CN113767639B (en) | Method, device and non-volatile computer readable medium for receiving media data | |
| US11490169B2 (en) | Events in timed metadata tracks | |
| JP7483919B2 (en) | Method and apparatus for dynamic adaptive streaming over HTTP - Patents.com | |
| CN112188256B (en) | Information processing method, information providing device, electronic device, and storage medium | |
| CN115581124B (en) | Method, device, storage medium and computer equipment for processing events in media stream | |
| HK40080095B (en) | Method for processing events in media stream, apparatus, storage medium and computer equipment | |
| CN115699705B (en) | Method, apparatus and storage medium for processing event in media stream | |
| HK40080095A (en) | Method for processing events in media stream, apparatus, storage medium and computer equipment | |
| CN116530072B (en) | Method and apparatus for transmitting auxiliary media streams | |
| JP7387209B2 (en) | Method and apparatus for dynamic adaptive streaming over HTTP | |
| JP7658660B2 (en) | Method, apparatus, and medium for auxiliary MPD for MPEG DASH to support pre-roll, mid-roll, and end-roll with stacking features | |
| HK40093423A (en) | Method and apparatus for sending auxiliary media stream | |
| HK40081152B (en) | Method, apparatus and storage medium for processing events in media stream | |
| HK40091323A (en) | Method and apparatus for supporting preroll and midroll content in mpeg dash during media playback | |
| JP2024510181A (en) | Method and apparatus for MPEG DASH supporting pre-roll and mid-roll content during media playback | |
| KR20220116546A (en) | Method and apparatus for dynamic adaptive streaming over HTTP | |
| HK40090337A (en) | Method and apparatus for dynamic dash picture-in-picture stream |