EP-4738841-A1 - METHODS AND SYSTEMS FOR MANAGING STREAMING VIDEO SUB-CLIPS FOR FRAME ACCURATE SERVER SIDE CONTENT INSERTION
Abstract
Systems and methods are disclosed to efficiently insert new breakpoints into video content. A splicing window for a first breakpoint is applied to a portion of an item of video content, wherein the portion of the item of video content has been transcoded. New subclips are generated for the portion. The portion is re-transcoded, wherein a boundary between a first subclip and a second subclip defines a location for a first breakpoint. Existing segments that can be used are identified; the existing segments associated with corresponding existing playlists. New playlists for the new subclips are generated. The new playlists and the existing playlists are transmitted to a client. Corresponding content is streamed to the client in response to client requests.
Inventors
- SHANSON, SPENCER ADAM
- Igorovich, Vadym Kupriianchuk
- Kalmykov Vasilievich, Pavlo
- Yevheniiovych, Khodos Oleksandr
Assignees
- Pluto Inc.
Dates
- Publication Date
- 20260506
- Application Date
- 20250807
Claims (15)
- A system configured to provide distribution of video content over a network, the system comprising: a computer device; non-transitory computer readable memory having program instructions stored thereon that when executed by the computer device cause the system to perform operations comprising: receive a set of interstitial breakpoints for a first transcoded item of video content comprising a plurality of segments; apply a splicing window of a first size for a first interstitial breakpoint to a first portion of a first item of video content, wherein the first portion of the first item of video content has been previously transcoded, and the splicing window is larger than a segment of the first transcoded item of video content in size generate new subclips for the first portion of the of the first item of video content, the new subclips comprising a first subclip and a second subclip; re-transcode the first portion of the of the first item of video content comprising the new subclips within the splicing window, wherein a boundary between the first subclip and the second subclip define a location for the first interstitial breakpoint; identify existing segments of the first transcoded item of video content that can be used with the set of interstitial breakpoints without re-transcoding, wherein the existing segments of the first transcoded item of video content that can with the set of interstitial breakpoints are associated with corresponding existing playlists; generate new playlists for the new subclips; transmit the new playlists for the new subclips and the existing playlists to a client, wherein the client is configured to request content in accordance with the new playlists and the existing playlists; and stream the existing segments and the new subclips to the client in accordance with requests from the client.
- The system as defined in Claim 1, the operations further comprising determining the size of the splicing window based at least in part on a location of the first interstitial breakpoint, locations of adjacent interstitial breakpoint, and a bit budget redistribution.
- The system as defined in Claim 1, wherein new playlists generated for the new subclips comprise references to an existing segment.
- The system as defined in Claim 1, the operations further comprising updating a fragment array with new subclip objects.
- The system as defined in Claim 1, the operations further comprising: identifying unused items in memory for deletion by determining which items in a clip fragments array do not match any interstitial breakpoints sets for a first episode; and deleting the identified unused items from memory.
- The system as defined in Claim 1, the operations further comprising: reusing subclips collection entities in a clip fragments array comprising a reference identifier to an existing subclip.
- The system as defined in Claim 1, wherein the new playlists comprise new DASH or HLS playlists.
- A computer-implemented method, the method comprising: accessing a set of interstitial breakpoints for a first transcoded item of video content comprising a plurality of segments; applying a window of a first size for a first interstitial breakpoint to a first portion of a first item of video content, wherein the first portion of the first item of video content has been previously transcoded, and the window is larger than a segment of the first transcoded item of video content in size; generating new subclips for the first portion of the of the first item of video content, the new subclips comprising a first subclip and a second subclip; re-transcoding the first portion of the of the first item of video content comprising the new subclips within the window, wherein a boundary between the first subclip and the second subclip define a location for the first interstitial breakpoint; identifying existing segments of the first transcoded item of video content that can be used with the set of interstitial breakpoints without re-transcoding, wherein the existing segments of the first transcoded item of video content that can with the set of interstitial breakpoints are associated with corresponding existing playlists; generating new playlists for the new subclips; transmitting the new playlists for the new subclips and the existing playlists to a client, wherein the client is configured to request content in accordance with the new playlists and the existing playlists; and streaming the existing segments and the new subclips to the client in accordance with requests from the client.
- The computer-implemented method as defined in Claim 8, the method further comprising determining the size of the window based at least in part on a location of the first interstitial breakpoint, locations of adjacent interstitial breakpoint, and a bit budget redistribution.
- The computer-implemented method as defined in Claim 8, wherein new playlists generated for the new subclips comprise references to an existing segment.
- The computer-implemented method as defined in Claim 8, the method further comprising updating a fragment array with new subclip objects.
- The computer-implemented method as defined in Claim 8, the method further comprising: identifying unused items in memory for deletion by determining which items in a clip fragments array do not match any interstitial breakpoints sets for a first episode; and deleting the identified unused items from memory.
- The computer-implemented method as defined in Claim 8, the method further comprising: reusing subclips collection entities in a clip fragments array comprising a reference identifier to an existing subclip.
- Non-transitory computer readable memory having program instructions stored thereon that when executed by at least one computing device cause the at least one computing device to perform operations comprising: receive a set of breakpoints for a first transcoded item of video content comprising a plurality of segments; apply a window of a first size for a first breakpoint to a first portion of a first item of video content, wherein the first portion of the first item of video content has been previously transcoded, and the window is larger than a segment of the first transcoded item of video content in size generate new subclips for the first portion of the of the first item of video content, the new subclips comprising a first subclip and a second subclip; re-transcode the first portion of the of the first item of video content comprising the new subclips within the window, wherein a boundary between the first subclip and the second subclip define a location for the first breakpoint; identify existing segments of the first transcoded item of video content that can be used with the set of breakpoints without re-transcoding, wherein the existing segments of the first transcoded item of video content that can with the set of breakpoints are associated with corresponding existing playlists; generate new playlists for the new subclips; transmit the new playlists for the new subclips and the existing playlists to a client, wherein the client is configured to request content in accordance with the new playlists and the existing playlists; and stream the existing segments and the new subclips to the client in accordance with requests from the client.
- The non-transitory computer readable memory as defined in Claim 15, the operations further comprising determining the size of the window based at least in part on a location of the first interstitial breakpoint, locations of adjacent interstitial breakpoint, and a bit budget redistribution.
Description
INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS Any and all applications for which a foreign or domestic priority claim is identified in the Application Data Sheet as filed with the present application are hereby incorporated by reference under 37 CFR 1.57. BACKGROUND OF THE INVENTION Field The present disclosure is related to video content streaming. Description of the Related Art Streaming media has become an important mechanism for delivering video content to users. However, when interstitial content is to be inserted within an item of primary content, such interstitial content needs to be inserted between primary content segments, rather than at a desired frame position. One attempt to enable interstitial content to be inserted at a desired frame position, rather than between primary content segments, requires the creation of a new transcoding of the entire item of primary content with multiple sequential playlists (rather than a single full movie playlist) but split in exact places for the interstitial insertion breakpoints. Thus, each time a new insertion point is added, the entire item of content needs to be re-transcoded. Disadvantageously, where the content item is a movie, a full movie may, by way of illustrative example, utilize 10Gb of memory space. Further, disadvantageously, with the foregoing conventional approach, an entire set of new media for each subclipping process is created and stored in memory as an additional set. This process may need to be repeated to create a new set of subclips each time the interstitial insertion breakpoints changes, disadvantageously requiring inordinate amounts of computer processing power and memory. In addition, disadvantageously, the fully set of new media segments will not be immediately cached on a content distribution network (CDN), slowing client access to such new media segments. The challenge is even greater when multi-regional support is needed, wherein there may be different interstitial insertion rules for different regions. Thus, multiple transcoding of a given movie may need to be performed for each movie for each region. Further, a poorly placed interstitial insertion breakpoint may create spikes in the bitrate and thus degrade the playout experience. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 illustrates an example networked environment.Figure 2A is a block diagram illustrating example components of a content streaming system.Figure 2B illustrates example modules and services of the content streaming system.Figure 3 illustrates an example conventional technique for breakpoint insertion.Figure 4A illustrates an example of a bit budget distribution for breakpoint insertion.Figures 4B and 4C illustrate example applications of a bit budget redistribution window.Figure 4D illustrates an example of demuxed audio segments.Figure 5 illustrates an example process of efficiently inserting breakpoints into a video content item.Figure 6 illustrates an example clean-up process. While each of the drawing figures illustrates a particular aspect for purposes of illustrating a clear example, other embodiments may omit, add to, reorder, and/or modify any of the elements shown in the drawing figures. For purposes of illustrating clear examples, one or more figures may be described with reference to one or more other figures, but using the particular arrangement illustrated in the one or more other figures is not required in other embodiments. DETAILED DESCRIPTION The present disclosure describes systems and processes that overcome the above described technical problems as well as the drawbacks of conventional approaches to injecting interstitials into video content streamed to user devices. It is understood that the various aspects disclosed herein may be utilized together (e.g., via common system(s)) or separately. By way of background, a video that is to be streamed is divided into small segments (e.g., 2-10 seconds long) encoded at different bitrates and resolutions. A video playlist in the form of manifest file (e.g., .m3u8 for HLS, .mpd for DASH) lists the available streams and their respective bitrates, resolutions, and segment URLs. For example, an M3U8 file is a plain text file that lists the sequence of .ts segments in association with their metadata, such as segment duration. An M3U8 Playlist may include the following elements: EXTM3U: The first line in the M3U8 file, which indicates that the file is an Extended M3U playlist.EXT-X-VERSION: Indicates the version of the playlist format.EXT-X-TARGETDURATION: Specifies the maximum duration (in seconds) of any single segment in the playlist.EXTINF: Indicates the duration of respective segments. This tag is followed by the duration in seconds and a reference to the corresponding .ts file.EXT-X-ENDLIST: Marks the end of the playlist. When a video player on a user device starts streaming, it downloads the M3U8 playlist file. The player reads the playlist and sequentially requests each .ts segment listed