Streaming Server On-Demand Encoding for Adaptive Bitrate Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional HLS-based streaming systems face challenges in managing adaptive bitrates efficiently, leading to delays and increased storage requirements, as clients frequently switch bitrates and all bitrates must be pre-encoded and stored, even if not requested.

Innovation Solution

A streaming video server that uses on-demand encoding and transcoding, with a virtual file system generating segments and encryption keys only as needed, and adjusts bitrates server-side based on network conditions, eliminating client-side bitrate control and reducing storage needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If all bitrates are pre-encoded and stored for adaptive bitrate streaming, then clients can switch bitrates freely, but storage requirements increase significantly

Engineering Contradiction:
Improvebitrate switching capabilityVSAvoidstorage requirements
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system performs preliminary encoding of the video source at multiple bitrates, but only stores the encoded segments when they are actually requested by clients. The encoder is pre-configured with multiple bitrate profiles, allowing it to encode on-demand without pre-storing all possible bitrate variations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses on-demand encoding where the video source is encoded and segmented only when a client requests a specific bitrate. The encoder serves itself by maintaining a library of encoding profiles and automatically encoding the source video when needed, rather than pre-encoding and storing all bitrates.

Inventive Principle:
Principle #25Self-service

2Ease of operation

If clients control their own bitrate selection, then client autonomy is improved, but network efficiency decreases due to frequent switching and suboptimal selections

Engineering Contradiction:
Improveclient autonomyVSAvoidnetwork efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system implements server-side network condition monitoring that continuously measures bandwidth availability and client device capabilities. This feedback information is used by the server to make intelligent bitrate selection decisions, overriding client preferences when necessary to optimize network efficiency and streaming quality.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Instead of allowing clients to control bitrate selection, the system inverts the control to the server side. The server monitors network conditions and client capabilities, then automatically selects and delivers the optimal bitrate without requiring client-side decision-making or frequent client requests for bitrate changes.

Inventive Principle:
Principle #13The other way round (Inversion)

3Speed

If video segments are pre-encoded and stored at multiple bitrates, then streaming speed is improved, but storage requirements and content security worsen

Engineering Contradiction:
Improvestreaming speedVSAvoidstorage requirements
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system prepares the video source in advance by configuring multiple encoding profiles with different bitrates, but only performs the actual encoding and creates segments when a client requests streaming. This preliminary preparation of encoding parameters enables fast on-demand encoding without requiring pre-stored encoded segments.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The encoder serves itself by maintaining encoding profiles and automatically encoding video segments on-demand based on client requests and network conditions. This self-service encoding eliminates the need for pre-storing multiple bitrate versions while maintaining the ability to provide fast streaming by encoding quickly when needed.

Inventive Principle:
Principle #25Self-service

4Adaptability or versatility

If all bitrate versions are stored on the server, then adaptive streaming is enabled, but content security is compromised

Engineering Contradiction:
Improveadaptive bitrate streamingVSAvoidcontent security
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The system pre-configures multiple encoding profiles with different bitrate parameters, but only executes the encoding process when a client requests streaming. This preliminary setup of encoding parameters enables adaptive bitrate streaming functionality without creating and storing actual encoded content, thereby maintaining content security.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The encoder maintains a library of encoding profiles and automatically encodes video segments on-demand based on client requests. This self-service approach enables adaptive bitrate streaming by generating segments only when needed, eliminating the security risk of storing multiple encoded versions while preserving the adaptability to deliver different bitrates.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8965960B2Client device with video player and client-side proxy and methods for use therewith
Publication Date: 2015.02.24 AT&T INTELLECTUAL PROPERTY I L P
  • US8965960B2 patent drawing
  • US8965960B2 patent drawing
  • US8965960B2 patent drawing

AI summary

A client device includes a video player that generates a program request for a selected video program. A client-side proxy passes the program request from the video player to the streaming video server for the video program. The client-side proxy identifies that the selected video program has been previously bookmarked by the video player at a bookmark position, intercepts a request from the video player to the streaming video server for at least one first segment of the selected video program, and in response, sending at least one corresponding fixed segment to the video player. The client-side proxy passes a request from the video player to the streaming video server for a plurality of second segments of the selected video program, wherein the plurality of second segments commence at a position corresponding to the bookmark position.