Methods, devices and media for dynamic adaptive streaming over Hypertext Transfer Protocol
By expanding the event message instance box, the problem of insufficient expression of event instance relationships in the DASH standard is solved, enabling more flexible and efficient media content display.
Patent Information
- Application Number
- CN202280004015.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-03-25
- Filing Date
- 2022-03-28
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2042-03-28
AI Technical Summary
The existing Dynamic Adaptive Streaming (DASH) standard over HTTP can only represent the equivalence between two event instances in the event message track, and cannot effectively express more possible situations.
By expanding the event message instance box and introducing relationship types such as update, timed change, and undo, more complex relationships between event instances can be represented by signals, and the event message instance box can be modified to adapt to the display requirements of the DASH client.
It enables more flexible and accurate handling of event message trajectories in the DASH client, improving the adaptability and efficiency of media content display.
Smart Images

Figure CN115552387B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to U.S. Provisional Application No. 63 / 177,271, filed April 20, 2021, the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0003] The embodiments of this disclosure are directed to media streaming, and more specifically, to Dynamic Adaptive Streaming (DASH) over Hypertext Transfer Protocol (HTTP). Background Technology
[0004] The ISO / IEC 23009-1 Dynamic Adaptive Streaming over HTTP (DASH) standard introduces event message boxes for carrying events of media segments. Furthermore, ISO / IEC 23001-19CD defines the event message track format, where tracks can carry event messages.
[0005] The current event message trace specification uses boxes to carry each event instance. The only relationship between two instances that can be represented by a signal within this box is when the two event instances are equivalent, i.e., when it is sufficient to process one event instance. However, there are many more possible scenarios regarding the relationship between two event instances.
[0006] "Information technology—Coding of audiovisual objects—Part 12: ISO base media fileformat", ISO / IEC 14496-12 (December 2015); "Draft of FDIS of ISO / IEC 23000-19 Common Media Application Format for Segmented Media", ISO / IEC JTC1 / SC29 / WG11 MPEG117 / 16819 (April 2017); and "Text of ISO / IEC FDIS 23009-1, Version 4". th The entire ISO / IEC JTC 1 / SC 29 / WG 11N18609 (August 2019 edition) is incorporated herein by reference. Summary of the Invention
[0007] In an embodiment, a method executed by at least one processor includes: obtaining an event message trajectory comprising a plurality of event message instance frames, the event message trajectory being configured to be processed by a Dynamic Adaptive Streaming (DASH) client over Hypertext Transfer Protocol to display media content; obtaining a first event message instance frame included in the event message trajectory; obtaining a second event message instance frame included in the event message trajectory, wherein the second event message instance frame includes first information and second information, the first information identifying the first event message instance frame, and the second information specifying a relationship between the first event message instance frame and the second event message instance frame; modifying the first event message instance frame based on the first information and the second information; and providing the event message trajectory to the DASH client, or displaying media content based on the event message trajectory.
[0008] In an embodiment, a device includes: at least one memory storing program code; and at least one processor configured to read the program code and operate according to instructions in the program code, the program code including: first obtaining code configured to cause the at least one processor to obtain an event message track including a plurality of event message instance frames, the event message track being configured to be processed by a Dynamic Adaptive Streaming (DASH) client over Hypertext Transfer Protocol to display media content; second obtaining code configured to cause the at least one processor to obtain a first event message instance frame included in the event message track; third obtaining code configured to cause the at least one processor to obtain a second event message instance frame included in the event message track, wherein the second event message instance frame includes first information and second information, the first information identifying the first event message instance frame, and the second information specifying a relationship between the first event message instance frame and the second event message instance frame; modification code configured to cause the at least one processor to modify the first event message instance frame based on the first information and the second information; and providing code configured to cause the at least one processor to provide the event message track to a DASH client or to display media content based on the event message track.
[0009] In an embodiment, a non-transitory computer-readable medium stores instructions that, when executed by at least one processor, cause the at least one processor to: obtain an event message trajectory comprising a plurality of event message instance frames, the event message trajectory being configured for processing by a Dynamic Adaptive Streaming (DASH) client over a Hypertext Transfer Protocol to display media content; obtain a first event message instance frame included in the event message trajectory; obtain a second event message instance frame included in the event message trajectory, wherein the second event message instance frame includes first information and second information, the first information identifying the first event message instance frame and the second information specifying the relationship between the first event message instance frame and the second event message instance frame; modify the first event message instance frame based on the first information and the second information; and provide the event message trajectory to a DASH client, or display media content based on the event message trajectory. Attached Figure Description
[0010] Further features, properties, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings, in which:
[0011] Figure 1 This is a diagram of the environment in which the methods, apparatus and systems described herein can be implemented according to embodiments.
[0012] Figure 2 yes Figure 1 A block diagram of example components for one or more devices.
[0013] Figure 3 This is a diagram of a DASH client according to an embodiment.
[0014] Figure 4 This is a diagram of a method according to an embodiment.
[0015] Figure 5 This is a diagram of computer code according to an embodiment. Detailed Implementation
[0016] Figure 1 This is a diagram of an environment 100 in which the methods, apparatus, and systems described herein can be implemented according to embodiments. Figure 1 As shown, environment 100 may include user equipment 110, platform 120, and network 130. The devices in environment 100 may be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.
[0017] User equipment 110 includes one or more devices capable of receiving, generating, storing, processing, and / or providing information associated with platform 120. For example, user equipment 110 may include computing devices (e.g., desktop computers, laptop computers, tablet computers, handheld computers, smart speakers, servers, etc.), mobile phones (e.g., smartphones, wireless phones, etc.), wearable devices (e.g., smart glasses or smartwatches), or similar devices. In some implementations, user equipment 110 may receive information from and / or send information to platform 120.
[0018] Platform 120 includes one or more devices as described elsewhere herein. In some implementations, platform 120 may include a cloud server or a group of cloud servers. In some implementations, platform 120 may be designed as a modular platform, allowing software components to be called in or out as needed. Therefore, platform 120 can be easily and / or quickly reconfigured for different purposes.
[0019] In some implementations, as shown in the figure, platform 120 may be hosted in a cloud computing environment 122. It should be noted that although the implementations described herein depict platform 120 as hosted in cloud computing environment 122, in some implementations, platform 120 may not be cloud-based (i.e., it may be implemented outside of a cloud computing environment) or may be partially cloud-based.
[0020] The cloud computing environment 122 includes the environment of the hosting platform 120. The cloud computing environment 122 provides services such as computing, software, data access, and storage, which do not require end users (e.g., user equipment 110) to know the physical location and configuration of the systems and / or devices of the hosting platform 120. As shown in the figure, the cloud computing environment 122 may include a group of computing resources 124 (collectively referred to as "computing resources 124", with each individual computing resource referred to as "computing resource 124").
[0021] Computing resource 124 includes one or more personal computers, workstations, server devices, or other types of computing and / or communication devices. In some implementations, computing resource 124 may host platform 120. Cloud resources may include computing instances running in computing resource 124, storage devices provided in computing resource 124, data transmission devices provided by computing resource 124, etc. In some implementations, computing resource 124 may communicate with other computing resources 124 via wired connections, wireless connections, or a combination of wired and wireless connections.
[0022] like Figure 1As further shown, computing resources 124 include a set of cloud resources, such as one or more applications (“APP”) 124-1, one or more virtual machines (“VM”) 124-2, virtualized storage (“VS”) 124-3, one or more hypervisors (“HYP”) 124-4, etc.
[0023] Application 124-1 includes one or more software applications that may be provided to or accessed by user device 110 and / or platform 120. Application 124-1 does not require the software applications to be installed and run on user device 110. For example, application 124-1 may include software associated with platform 120 and / or any other software that can be provided via cloud computing environment 122. In some implementations, an application 124-1 may send information to / receive information from one or more other applications 124-1 via virtual machine 124-2.
[0024] Virtual machine 124-2 includes a software implementation of a machine (e.g., a computer) that executes programs like a physical machine. Depending on the extent to which virtual machine 124-2 corresponds to any physical machine and its purpose, virtual machine 124-2 can be a system virtual machine or a process virtual machine. A system virtual machine can provide a complete system platform supporting the operation of a full operating system (“OS”). A process virtual machine can run a single program and can support a single process. In some implementations, virtual machine 124-2 can run on behalf of a user (e.g., user device 110) and can manage the infrastructure of cloud computing environment 122, such as data management, synchronization, or long-duration data transfer.
[0025] Virtualized storage 124-3 includes one or more storage systems and / or one or more devices that utilize virtualization technology within the storage system or device of computing resource 124. In some implementations, the type of virtualization, within the context of the storage system, may include block virtualization and file virtualization. Block virtualization may refer to abstracting (or separating) logical storage from physical storage, enabling access to the storage system regardless of physical storage or heterogeneous architecture. This separation allows storage system administrators flexibility in how they manage end-user storage. File virtualization eliminates the dependency between data accessed at the file level and the location where the files are physically stored. This enables optimization of storage usage, server consolidation, and / or non-disruptive file migration performance.
[0026] Hypervisor 124-4 provides hardware virtualization technology, which allows multiple operating systems (such as "guest operating systems") to run simultaneously on a host computer such as computing resource 124. Hypervisor 124-4 can present a virtual operating platform to the guest operating system and manage the operation of the guest operating system. Multiple instances of various operating systems can share virtualized hardware resources.
[0027] Network 130 includes one or more wired and / or wireless networks. For example, network 130 may include cellular networks (e.g., fifth-generation (5G) networks, long-term evolution (LTE) networks, third-generation (3G) networks, code division multiple access (CDMA) networks, etc.), public land mobile networks (PLMN), local area networks (LAN), wide area networks (WAN), metropolitan area networks (MAN), telephone networks (e.g., public switched telephone network (PSTN)), private networks, self-organizing networks, intranets, the Internet, fiber-optic networks, etc., and / or combinations of these networks or other types of networks.
[0028] Figure 1 The number and layout of devices and networks shown are provided as an example. In practice, with... Figure 1 Compared to the equipment and / or networks shown, there may be additional equipment and / or networks, fewer equipment and / or networks, different equipment and / or networks, or equipment and / or networks arranged differently. Furthermore, Figure 1 The two or more devices shown can be implemented within a single device, or Figure 1 The single device shown can be implemented as multiple distributed devices. Alternatively, a group of devices in environment 100 (e.g., one or more devices) can perform one or more functions described as being performed by another group of devices in environment 100.
[0029] Figure 2 yes Figure 1 A block diagram of example components of one or more devices. Device 200 may correspond to user device 110 and / or platform 120. Figure 2 As shown, device 200 may include bus 210, processor 220, memory 230, storage component 240, input component 250, output component 260 and communication interface 270.
[0030] Bus 210 includes components that allow communication between components of device 200. Processor 220 is implemented in hardware, firmware, or a combination of hardware and software. Processor 220 is a central processing unit (CPU), graphics processing unit (GPU), accelerated processing unit (APU), microprocessor, microcontroller, digital signal processor (DSP), field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), or another type of processing component. In some implementations, processor 220 includes one or more processors that can be programmed to perform functions. Memory 230 includes random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) that stores information and / or instructions for use by processor 220.
[0031] Storage component 240 stores information and / or software related to the operation and use of device 200. For example, storage component 240 may include hard disks (e.g., magnetic disks, optical disks, magneto-optical disks, and / or solid-state disks), optical disks (CDs), digital versatile optical disks (DVDs), floppy disks, cartridge disks, magnetic tapes, and / or other types of non-transitory computer-readable media, and corresponding drives.
[0032] Input component 250 includes components that allow device 200 to receive information, such as via user input (e.g., a touchscreen display, keyboard, keypad, mouse, buttons, switches, and / or microphone). Alternatively, input component 250 may include sensors for sensing information (e.g., a Global Positioning System (GPS) component, accelerometer, gyroscope, and / or actuator). Output component 260 includes components that provide output information from device 200 (e.g., a display, speaker, and / or one or more light-emitting diodes (LEDs)).
[0033] Communication interface 270 includes transceiver-like components (e.g., a transceiver and / or separate receiver and transmitter) that enable device 200 to communicate with other devices, for example, via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communication interface 270 allows device 200 to receive information from another device and / or provide information to another device. For example, communication interface 270 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, etc.
[0034] Device 200 can perform one or more processes described herein. Device 200 can perform these processes in response to processor 220 executing software instructions stored in a non-transitory computer-readable medium, such as memory 230 and / or storage component 240. Computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space distributed across multiple physical storage devices.
[0035] Software instructions may be read into memory 230 and / or storage component 240 via communication interface 270 from another computer-readable medium or from another device. When executed, the software instructions stored in memory 230 and / or storage component 240 cause processor 220 to perform one or more processes described herein. Alternatively, hard-wired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Therefore, the implementations described herein are not limited to any particular combination of hardware circuitry and software.
[0036] Figure 2 The number and arrangement of components shown are provided as an example. In practice, with... Figure 2 Compared to the components shown, device 200 may include additional components, fewer components, different components, or components arranged differently. Alternatively, a set of components of device 200 (e.g., one or more components) may perform one or more functions described as being performed by another set of components of device 200.
[0037] Figure 3 An exemplary DASH client 300 according to an embodiment of the present disclosure is illustrated. The DASH client 300 is configured to process Media Presentation Description (MPD) events 301, in-band events 302, and sparse timing metadata trace events. The DASH client 300 can also be used to process Common Media Application Format (CMAF) events. According to one embodiment, the DASH client 300 may be... Figure 1 User equipment 100 is implemented.
[0038] Events can be provided to signal non-periodic information to the DASH client 300 or an application. Events can be timed (e.g., each event begins at a specific media presentation time and may have a certain duration). Events can include DASH-specific signaling or application-specific events. DASH events can be identified by a scheme identifier. For application-specific events, the scheme identifier identifies the application, allowing the DASH client 300 to forward the event to the appropriate application.
[0039] like Figure 3As shown, the DASH client 300 may include an application 310, control, selection, and heuristic logic for the DASH player 315, a manifest parser 320, a DASH access API 325, an in-band event and "moof" (movie clip frame) parser 330, a timing metadata track parser 335, an event and timing metadata buffer 340, a synchronizer and scheduler 345, a file format parser 350, a media buffer 355, a media decoder 360, and an HTTP stack 370.
[0040] exist Figure 3 In the diagram, dashed lines represent control and / or synchronization; regular solid lines represent event and / or timing metadata streams; and bold solid lines represent media data streams. For example, control and / or synchronization may include subscription functionality 306 and the event / metadata API 307. For example, event and / or timing metadata streams may include MPD events 301, in-band events 302, timing metadata 303, and DASH events 305. For example, media data streams may include media segments 304, etc.
[0041] DASH client 300 can receive and process manifests (e.g., MPDs). Manifests describe the combination and synchronization of independently packaged CMAF tracks grouped by CMAF exchange sets and selection sets to form a synchronized multimedia presentation. Manifests can provide information to DASH client 300 to select, initialize, begin alignment, and synchronize CMAF tracks to be played, and identify CMAF media objects (e.g., CMAF headers, CMAF blocks, and CMAF fragments) as resources for access and potential download. CMAF tracks and CMAF fragments can contain sufficient information to enable decryption, decoding, and presentation scheduling. In addition to resource identification and presentation descriptions, manifests can provide information related to transport protocols, network management, authorization, and license acquisition. Manifests can also use signals to indicate that tracks conform to CMAF media profiles.
[0042] For reference, a CMAF segment can be an encoded and decoded media object. A CMAF segment can include one or more pairs of movie clip frames (“mof”) and media data frames (“mdat”). Each pair of “moof” and “mdat” can be called a CMAF block, and each CMAF block can contain a contiguous subset of media samples belonging to the CMAF segment.
[0043] A CMAF track can be a continuous sequence of one or more CMAF segments and associated CMAF headers whose rendering order conforms to a CMAF media profile. The CMAF header may contain a MovieBox, which is sufficient to process and render all CMAF segments within the CMAF track. CMAF tracks can be generated by encoders and ISOBMFF file packers, but can be formatted as CMAF-addressable media objects that can be referenced as resources defined by external media application specifications.
[0044] The DASH client 300 can request media segments based on the addresses described in the manifest. The manifest can also describe metadata traces. The DASH client 300 can also access metadata trace segments, parse metadata trace segments, and send metadata trace segments to applications.
[0045] Furthermore, the DASH manifest can provide addresses to indexed segments within the media segment addresses. Each indexed segment provides information related to the duration and size of a segment. It indicates that an index can provide indexing information to all segments of a given representation.
[0046] According to an embodiment, manifest parser 320 can parse MPD events 301 from the manifest and append MPD events 301 to event and timing metadata buffer 340. Based on MPD, DASH client 300 can manage the extraction and parsing of segments from HTTP stack 370. Segment parsing can be performed by in-band event and "moof" parser 330. In-band event and "moof" parser can parse media segment 304 from the segment and then append media segment 304 to media buffer 355. Parsing performed by in-band event and "moof" parser 330 may also include parsing in-band events 302 and timing metadata 303 (e.g., timing metadata traces) from the segment. Furthermore, timing metadata trace parser 335 can parse high-level boxes (e.g., event message boxes of timing metadata 303 and event message instance boxes of timing metadata 308) and append high-level boxes to event and timing metadata buffer 340.
[0047] The event and timing metadata buffer 340 can pass event and timing metadata samples to the synchronizer and scheduler 345, which can be referred to as the event and timing metadata synchronizer and scheduler function.
[0048] Synchronizer and scheduler 345 can schedule specific events of DASH client 300 to the control, selection, and heuristic logic 315 of DASH player. If application 310 subscribes to specific events and / or timing metadata streams, synchronizer and scheduler 345 can schedule corresponding event instances and / or timing metadata samples to application 310 via event / metadata API 307.
[0049] The embodiments may provide a method for representing relationships between event instances using signals within an event message track. Therefore, the embodiments can be extended to use signals to represent more extended relationships between event instances within the event message instance box.
[0050] In an embodiment, the event message instance box can be expanded to represent broader relationships between event instances using signals. For example, in an embodiment, the event message instance box can be used to represent:
[0051] 1. An event instance is an update of a previous event.
[0052] 2. Scheduled Changes: Change the start and / or duration of a previous event.
[0053] 3. The incident has been withdrawn and no further action is required.
[0054] 4. Reserved bits for further expansion.
[0055] In this embodiment, the event message instance box can be expanded as follows:
[0056]
[0057] In the expanded event message instance box shown above:
[0058] • update_id: This indicates that the new instance is an update of the previous instance that has the same value as this field.
[0059] • update_mode: Each value can define a specific relationship with the previous instance. For example:
[0060] 0: Indicates replacement, causing the new event to replace the previous event.
[0061] 1: Timed changes, i.e., the start time and / or end time of the event have been updated.
[0062] 2: Undo: This indicates that the event instance has undone the previous instance, meaning that the previous instance does not need to be processed.
[0063] Therefore, embodiments may provide a method for representing a more extended relationship (e.g., a relationship beyond equivalence) between event instances in an event message trajectory using signals, wherein one or more event instances can be linked together for updating using a unique new identifier, and another field may display relationships including replacement, timed changes, and reversals, wherein when an event message instance is detected to be an update of a previous instance, the client may only process the updated instance or correct the previously processed instance.
[0064] Figure 4 This is a flowchart of an example process 400 for managing a media streaming system including a DASH client 300. In some implementations, Figure 4 One or more process frames can be executed by user equipment 441. Figure 4 One or more process frames may be executed by another device or a group of devices (e.g., platform 120) that is separate from or includes user equipment 110.
[0065] like Figure 4 As shown, process 400 may include: obtaining an event message track comprising multiple event message instance boxes, the event message track being configured to be processed by a Dynamic Adaptive Streaming (DASH) client over Hypertext Transfer Protocol to display media content (box 410).
[0066] Further as Figure 4 As shown, process 400 may include: obtaining a first event message instance box (box 420) included in the event message trajectory.
[0067] Further as Figure 4 As shown, process 400 may include: obtaining a second event message instance box included in the event message trajectory, wherein the second event message instance box includes first information and second information, the first information identifying the first event message instance box, and the second information specifying the relationship between the first event message instance box and the second event message instance box (box 430).
[0068] Further as Figure 4 As shown, process 400 may include: modifying the first event message instance box (box 440) based on the first information and the second information.
[0069] Further as Figure 4 As shown, process 400 may include: providing event message traces to the DASH client, or displaying media content based on the event message traces (box 440).
[0070] In an embodiment, the first event message instance box may include an identifier, the first information may include an update identifier, and the process 400 may further include: determining that the first event message instance box is related to the second event message instance box based on the value of the identifier being equal to the value of the update identifier.
[0071] In an embodiment, the second information may include a value indicating the type of the relationship between the first event message instance box and the second event message instance box.
[0072] In the embodiment, the second information indication relationship has a first relationship type based on the value being a first value, a second relationship type based on the value being a second value, and a third relationship type based on the value being a third value.
[0073] In an embodiment, the first relationship type may be a replacement relationship, and based on the fact that the value is the first value, modifying the first event message instance box may include: replacing the first event message instance box in the event message trajectory with a second event message instance box.
[0074] In an embodiment, the second relationship type may be a timed change relationship, and based on the value being the second value, modifying the first event message instance box may include: changing at least one of the start time corresponding to the first event message instance box or the end time corresponding to the first event message instance box.
[0075] In an embodiment, the third relationship type can be a revocation relationship, and based on the fact that the value is a third value, modifying the first event message instance box can include: revoking the first event message instance box from the event message trajectory.
[0076] Although Figure 4 An exemplary box of process 400 is shown, but in some implementations, process 400 may include additional boxes, fewer boxes, different boxes, or boxes similar to those shown. Figure 4 The boxes depicted are arranged differently. Alternatively, two or more boxes of process 400 may be executed in parallel.
[0077] refer to Figure 5 This describes computer code 500 according to an embodiment. Computer code 500 can be executed by a media streaming system including a DASH client 300. For example, the media streaming system can be configured for... Figure 1The described environment 100 is implemented. The media streaming system may include a memory configured to store computer code 500, and at least one processor configured to access the computer code 500 and operate according to the instructions of the computer code 500. The computer code 500 may be distributed across the memories of different components of the media streaming system (e.g., servers, clients, etc.) and may be configured to cause at least one processor of a particular component to perform any number of functions, including those described in this disclosure. For example, the computer code 500 may include any number of codes among first obtaining code 510, second obtaining code 520, third obtaining code 530, modification code 540, and providing code 550.
[0078] In an embodiment, the first obtaining code 510, the second obtaining code 520, the third obtaining code 530, the modification code 540, and the providing code 550 can be configured to cause the media streaming system including the DASH client 300 to execute the above reference. Figure 4 The process described covers all aspects.
[0079] The embodiments of this disclosure can be used individually or in any combination in any order. Furthermore, each method, server, and client can be implemented using processing circuitry (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored in a non-transitory computer-readable medium.
[0080] The foregoing disclosure provides illustrations and descriptions, but is not intended to be exhaustive or to limit the implementation to the precise form disclosed. Modifications and variations can be made based on the foregoing disclosure, or modifications and variations can be derived from the practice of implementation.
[0081] It will be apparent that the systems and / or methods described herein can be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods does not limit the implementation method. Therefore, it should be understood that software and hardware can be designed to implement the systems and / or methods described herein.
[0082] Although combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. In fact, many of these features can be combined in ways not specifically recited in the claims and / or disclosed in the specification. While each dependent claim listed below may be directly dependent on only one claim, the disclosure of possible implementations includes combinations of each dependent claim with every other claim in the claim set.
[0083] Elements, actions, or instructions used herein should not be construed as critical or necessary unless explicitly stated otherwise. Furthermore, as used herein, the articles “a” and “an” are intended to include one or more items and are used interchangeably with “one or more.” Additionally, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, a combination of related and unrelated items, etc.) and is used interchangeably with “one or more.” The term “a” or similar language is used where the intent is to refer to only one item. Furthermore, as used herein, the terms “have,” “contain,” “have,” or similar terms are intended to be open-ended terms. Additionally, the phrase “based on” is intended to mean “at least partially based on” unless explicitly stated otherwise.
Claims
1. A method for dynamic adaptive streaming over Hypertext Transfer Protocol, characterized in that, The method includes: Obtain an event message track including multiple event message instance boxes, the event message track being configured to be processed by a dynamic adaptive streaming DASH client over Hypertext Transfer Protocol to display media content, the multiple event message instance boxes corresponding to multiple events, the multiple events including one or more of the following: Media Presentation Description (MPD) event, in-band event, timing metadata, Common Media Application Format (CMAF) event, and DASH event; Obtain the first event message instance box included in the event message trajectory; Obtain a second event message instance box included in the event message trajectory, wherein the second event message instance box includes first information and second information, the first information identifies the first event message instance box, and the second information specifies the relationship between the first event message instance box and the second event message instance box; Based on the first information and the second information, modify the first event message instance box; and Provide the event message trajectory to the DASH client, or display media content based on the event message trajectory; Wherein, the first event message instance box includes an identifier, the first information includes an update identifier, and the method further includes: determining that the first event message instance box is related to the second event message instance box based on the value of the identifier being equal to the value of the update identifier.
2. The method according to claim 1, characterized in that, The second information includes a value indicating the type of the relationship between the first event message instance box and the second event message instance box.
3. The method according to claim 2, characterized in that, Based on the fact that the value is a first value, the second information indicates that the relationship has a first relationship type. Wherein, based on the value being a second value, the second information indicates that the relationship has a second relationship type, and Wherein, based on the fact that the value is a third value, the second information indicates that the relationship has a third relationship type.
4. The method according to claim 3, characterized in that, The first relation type is a substitution relation, and Wherein, based on the value being the first value, modifying the first event message instance box includes: replacing the first event message instance box in the event message trajectory with the second event message instance box.
5. The method according to claim 3, characterized in that, The second relationship type is a periodically changed relationship, and Wherein, based on the value being the second value, modifying the first event message instance box includes: changing at least one of the start time corresponding to the first event message instance box or the end time corresponding to the first event message instance box.
6. The method according to claim 3, characterized in that, The third relationship type is a revocation relationship, and Wherein, based on the value being the third value, modifying the first event message instance box includes: canceling the first event message instance box from the event message trajectory.
7. A device for dynamic adaptive streaming over Hypertext Transfer Protocol, characterized in that, The device includes: At least one memory for storing program code; and At least one processor is configured to read the program code and operate according to the instructions of the program code, the program code including: The first obtaining code is configured to cause the at least one processor to obtain an event message track including a plurality of event message instance boxes, the event message track being configured to be processed by a Dynamic Adaptive Streaming DASH client over Hypertext Transfer Protocol to display media content, the plurality of event message instance boxes corresponding to a plurality of events, the plurality of events including one or more of the following: Media Presentation Description (MPD) event, in-band event, timing metadata, Common Media Application Format (CMAF) event, and DASH event; The second acquisition code is configured to cause the at least one processor to acquire a first event message instance frame included in the event message trajectory; A third obtaining code is configured to cause the at least one processor to obtain a second event message instance frame included in the event message trajectory, wherein the second event message instance frame includes first information and second information, the first information identifying the first event message instance frame, and the second information specifying the relationship between the first event message instance frame and the second event message instance frame; The code is modified to allow the at least one processor to modify the first event message instance box based on the first information and the second information; and Provide code configured to cause the at least one processor to provide the event message trace to the DASH client, or to display media content based on the event message trace; Wherein, the first event message instance box includes an identifier, the first information includes an update identifier, and the modification code is further configured to cause the at least one processor to determine that the first event message instance box is related to the second event message instance box based on the value of the identifier being equal to the value of the update identifier.
8. The device according to claim 7, characterized in that, The second information includes a value indicating the type of the relationship between the first event message instance box and the second event message instance box.
9. The device according to claim 7, characterized in that, Based on the fact that the value is a first value, the second information indicates that the relationship has a first relationship type. Wherein, based on the value being a second value, the second information indicates that the relationship has a second relationship type, and Wherein, based on the fact that the value is a third value, the second information indicates that the relationship has a third relationship type.
10. The device according to claim 9, characterized in that, The first relation type is a substitution relation, and Wherein, based on the value being the first value, the modified code is further configured to cause the at least one processor to replace the first event message instance box in the event message trajectory with the second event message instance box.
11. The device according to claim 10, characterized in that, The second relationship type is a periodically changed relationship, and Wherein, based on the value being the second value, the modification code is further configured to cause the at least one processor to change at least one of the start time corresponding to the first event message instance box or the end time corresponding to the first event message instance box.
12. The device according to claim 9, characterized in that, The third relationship type is a revocation relationship, and Wherein, based on the value being the third value, the modified code is further configured to cause the at least one processor to remove the first event message instance box from the event message trajectory.
13. A non-transitory computer-readable medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Methods and apparatuses for dynamic adaptive streaming over HTTP
US20210099509A1