Dynamic Manifest Generation for Live Stream Rewind

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Adaptive bitrate streaming technologies impose limitations on the size of manifest files, restricting the rewind capability of subscribers within live streams, especially when they join mid-program, due to a fixed manifest window that does not adapt to varying stream lengths.

Innovation Solution

A system comprising a manifest modification server that generates program-specific manifests, allowing clients to rewind to the start of a live media stream regardless of its actual length, by dynamically generating and storing fragments and manifest files, and using tokens for authorization and timing parameters, ensuring backward compatibility with existing client software.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed manifest window size is used in adaptive bitrate streaming, then the system maintains simplicity and compatibility with existing clients, but the rewind capability is restricted when clients join mid-program

Engineering Contradiction:
Improverewind capabilityVSAvoidmanifest management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The manifest window size is changed from a fixed value to a dynamic value that adapts based on the program start time. The system calculates the manifest window size as the difference between the current time and the program start time, allowing the window to expand or contract automatically. This dynamic adjustment enables clients to rewind to the program start regardless of when they joined the stream, while maintaining compatibility with existing clients that expect a fixed window structure.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If the manifest window adapts to varying stream lengths, then rewind capability improves, but client software may require updates to handle variable manifest sizes

Engineering Contradiction:
Improverewind capabilityVSAvoidclient software compatibility
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The manifest structure is designed to serve multiple functions: it maintains the standard fixed-window format that existing clients expect, while simultaneously embedding the program start time information that enables rewind capability. The manifest window size is dynamically calculated but presented in a format compatible with existing clients, allowing the system to provide enhanced functionality without requiring client software updates.

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

3Adaptability or versatility

If program-specific manifests are generated dynamically, then rewind to program start is enabled, but server processing complexity increases

Engineering Contradiction:
Improverewind capabilityVSAvoidserver processing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs preliminary calculations of the manifest window size based on the program start time before generating the manifest. By pre-calculating the window size as the difference between current time and program start time, the server prepares the necessary parameters in advance, simplifying the manifest generation process and reducing real-time processing complexity while still enabling rewind capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10015222B2Systems and methods for selective retrieval of adaptive bitrate streaming media
Publication Date: 2018.07.03 ARRIS CANADA
  • US10015222B2 patent drawing
  • US10015222B2 patent drawing
  • US10015222B2 patent drawing

AI summary

Methods and apparatus that enable a subscriber of an adaptive bitrate streaming service provider to begin viewing a live program already in progress, and further have the ability to pause, rewind or start the program over from the beginning of the program regardless of its actual length or the manifest window defined by an encoder. Selective retrieval of a live media stream is provided by storing, at a server, a plurality of media fragments beginning at an initial time along with a server manifest for the media stream. In response to a client request for a start time later than the initial time, the server generates a program-specific manifest based on the server manifest.