Client-Side Live Stream Splicing for Arbitrary Ad Insertions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional server-side ad insertion and server guided ad insertion techniques for live stream media content incur a trade-off between maintaining a fixed cadence and allowing arbitrary splice points for supplemental content insertion, leading to inefficient network bandwidth usage and limited scalability due to manifest polling and individual client updates.
Innovation Solution
Client-side splicing techniques determine supplemental content insertion based on media events, allowing arbitrary splice points while maintaining a fixed cadence, utilizing client processing power for real-time targeting and personalization without server burden.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If server-side ad insertion or server guided ad insertion is used, then supplemental content can be inserted into live stream media content, but the system must choose between maintaining a fixed cadence for segments or allowing variable cadence for arbitrary splice points
Solution Approach 1:
Instead of the server controlling segment cadence and requiring manifest polling to accommodate variable splice points, the patent inverts the approach by having the client application control the playback cadence. The client downloads segments at a fixed cadence but plays back frames at variable rates to achieve arbitrary splice points, eliminating the need for server-side manifest polling while maintaining both fixed segment structure and flexible insertion timing.
2Adaptability or versatility
If variable cadence is used to allow arbitrary splice points, then splice point flexibility is improved, but network bandwidth is wasted due to manifest polling for updated manifests
Solution Approach 1:
The patent applies preliminary action by having the client application pre-download multiple media segments at fixed cadence intervals before the actual playback occurs. The client stores these segments locally and then plays back frames at variable rates to achieve arbitrary splice points. This eliminates the need for manifest polling during playback, as all necessary segment information is already cached, thereby preventing network bandwidth waste while maintaining splice point flexibility.
3Productivity
If fixed cadence is maintained for media segments, then mapping of media events to segment numbers is efficient, but constraints on where supplemental content can be inserted
Solution Approach 1:
The patent applies dynamics by decoupling the segment download cadence from the playback cadence. Media segments are downloaded at a fixed cadence for efficient mapping, but the client application dynamically adjusts the frame playback rate to accommodate arbitrary splice points. This allows the system to maintain efficient fixed-cadence segment acquisition while implementing variable cadence playback to insert supplemental content at any desired timing, resolving the contradiction between mapping efficiency and insertion flexibility.
4Ease of manufacture
If server performs supplemental content insertion, then content can be inserted into live stream, but scalability is limited due to individual client updates requiring custom manifests
Solution Approach 1:
The patent applies self-service by shifting the content insertion operation from the server to the client application. The client application independently manages its own playback, downloads segments at fixed cadence, stores them locally, and dynamically adjusts playback rates to insert supplemental content at arbitrary splice points. This eliminates the need for server-side manifest customization for each client, enabling scalable deployment where multiple clients can receive the same fixed-cadence segments and independently perform their own content insertion operations.
Data Source
AI summary
In various embodiments, a method for client-side splicing of a media content stream comprises determining supplemental content begins at a first time indicated by a media event; downloading, based on the first time, a beginning portion of a first segment of the media content, wherein the first time coincides with a playback time period of the first segment; downloading, based on information included in the beginning portion of the first segment, one or more frames of the first segment that occur prior to the first time; and outputting the one or more frames of the first segment that occur prior to the first time.


