Server-Side Splicing for Live Streaming Media

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for server-side splicing in HTTP Live Streaming (HLS) face challenges in maintaining sequence number consistency and efficient caching of advertisements, leading to potential playback issues and suboptimal utilization of HTTP caching.

Innovation Solution

A method and apparatus for server-side splicing that involves receiving a request for media content, accessing media and additional content playlists, and modifying the media playlist by replacing URIs and adjusting sequence numbers to ensure consistency, using custom tags and fragmenting media segments as needed to align with advertisement insertion points.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If server-side splicing is used to insert advertisements into live media streams, then advertising content can be inserted into the stream, but sequence number consistency may be disrupted and HTTP caching efficiency decreases

Engineering Contradiction:
Improveadvertising content insertionVSAvoidsequence number consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary actions by pre-calculating sequence number adjustments and preparing advertisement segments with correct sequence numbers before actual splicing occurs. The server maintains a running count of sequence numbers and pre-adjusts advertisement segment metadata to ensure continuity with the main stream, eliminating the need for complex real-time corrections during playback.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the server monitors sequence number assignments in real-time and adjusts subsequent advertisement insertions based on the current stream state. The server tracks the last processed sequence number and ensures that each advertisement segment receives the correct sequence number, creating a closed-loop system that maintains consistency even as the stream evolves.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If server-side splicing is used to insert advertisements into live media streams, then advertising content can be inserted into the stream, but HTTP caching utilization is reduced

Engineering Contradiction:
Improveadvertising content insertionVSAvoidHTTP caching efficiency
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The system segments the media stream into discrete time intervals and separates advertisement content into distinct segments that can be independently cached. Each advertisement segment is packaged as a separate HTTP resource with its own metadata, allowing the web browser to cache these segments independently from the main media stream. This segmentation enables selective caching of advertisement segments without interfering with the main content delivery.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The server performs preliminary actions by pre-tagging and pre-packaging advertisement segments with appropriate HTTP headers and metadata before insertion into the main stream. This allows the browser to recognize and cache these segments efficiently, as they are already prepared with the correct caching headers and sequence information, eliminating the need for complex real-time caching decisions during playback.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple splicers operate simultaneously on the same stream, then more advertisements can be served, but sequence number mismatches occur between servers

Engineering Contradiction:
Improveadvertisement serving capacityVSAvoidsequence number matching
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements universality by creating a common reference framework that all splicers use to assign sequence numbers. Each splicer maintains a shared view of the current stream state and uses a unified sequence number assignment algorithm. This universal approach ensures that regardless of which splicer processes which advertisement, all sequence numbers align with the global stream state, enabling multiple splicers to operate simultaneously without creating mismatches.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system implements feedback mechanisms where each splicer continuously receives updates about the current stream state and adjusts its sequence number assignments accordingly. The splicers monitor the main stream's sequence number progression and synchronize their advertisement segment assignments to match the current stream state, creating a feedback loop that prevents sequence number mismatches even when multiple splicers operate in parallel.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8959241B2Method and apparatus for performing server-side splicing for live streaming media
Publication Date: 2015.02.17 ADOBE INC
  • US8959241B2 patent drawing
  • US8959241B2 patent drawing
  • US8959241B2 patent drawing

AI summary

A method and apparatus for performing server-side splicing for live streaming media comprises receiving a request for media content from a client computer; accessing a media playlist comprising a plurality of universal resource identifiers (URIs) for each of a plurality of media content segments and consecutive sequence numbers defining an order in which the plurality of media content segments are to be viewed; accessing at least one additional content playlist for additional content to be spliced into the media content to be viewed; replacing a plurality of URIs of the media playlist with the URIs of the at least one additional content playlist to create a modified media playlist; and correcting a gap in sequence numbers that occurs in the modified media playlist when the number of URIs of the at least one additional content playlist is less than the plurality of URIs of the media playlist that are replaced.