Websocket Media Server Push for Live Streaming Delay
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Adaptive streaming technologies face significant end-to-end delays and clock drift issues in live media streaming due to client-controlled request methodologies and lack of synchronization between clients and servers, leading to undesirable delays and HTTP 404 errors.
Innovation Solution
Implementing a persistent websocket connection over HTTP for live media streaming, allowing media servers to push media segments directly to clients in real-time, eliminating the need for client requests and enabling frequent clock synchronization, thus minimizing delays and avoiding HTTP 404 responses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If client-controlled request methodology is used for adaptive streaming, then the system is compatible with widespread HTTP infrastructure, but end-to-end delay increases due to padding and client buffering
Solution Approach 1:
The patent inverts the traditional client-controlled request model by implementing a server-push model where the server proactively sends media segments to clients without waiting for requests. This reversal eliminates the need for client buffering and padding delays while maintaining HTTP infrastructure compatibility through the use of websockets and HTTP/2 server push capabilities
Solution Approach 2:
The server prepares and sends media segments to clients in advance of when they are strictly needed for playback. By pushing segments proactively through persistent websocket connections, the system eliminates the padding delay that occurs in traditional models where clients must wait for segments to become available before requesting them
2Reliability
If padding delay is added to account for server time variations, then segment availability issues are avoided, but overall end-to-end delay increases
Solution Approach 1:
The patent implements a feedback mechanism where the server tracks client playback position and segment reception status in real-time. This feedback allows the server to push segments at the optimal time - neither too early (causing padding delay) nor too late (causing availability issues) - by continuously adjusting push timing based on actual client state
Solution Approach 2:
The server pushes media segments to clients in advance of when they are needed for playback, but uses the feedback mechanism to determine the optimal advance time. This preliminary action eliminates the need for arbitrary padding delays while ensuring segments are available when needed
3Device complexity
If clock synchronization is not implemented, then system complexity is reduced, but HTTP 404 errors occur due to clock drift between client and server
Solution Approach 1:
The patent implements a feedback-based clock synchronization mechanism where the server monitors client playback timing and adjusts segment push timing to compensate for clock drift. This feedback loop prevents HTTP 404 errors by ensuring segments are pushed at the correct time relative to client playback position, without requiring complex explicit clock synchronization protocols
Solution Approach 2:
The server automatically detects and compensates for clock drift between itself and clients through the feedback mechanism, without requiring clients to perform complex synchronization operations. The system self-corrects timing issues through continuous monitoring and adjustment of segment push timing
4Stability of the object's composition
If client buffering is increased to handle jitter, then playback stability is improved, but end-to-end delay increases
Solution Approach 1:
The patent maintains a persistent websocket connection between server and client that continuously delivers media segments in real-time. This continuous delivery eliminates the need for large client buffers by ensuring segments arrive steadily and on-time, maintaining playback stability through continuous useful action rather than pre-buffering
Data Source
AI summary
A system and method for pushing live media to a client device in an adaptive streaming environment. In one aspect, a media server configured to transmit live media includes a storage unit for storing media segments of a live media programming stream, wherein the media segments are encoded at multiple bitrates identified in respective media presentation data structures associated therewith. A websocket interface is provided that is operative to facilitate a websocket session with the client device. One or more processors of the system are operative to execute service logic for pushing the media segments to the client device substantially in real time during the websocket session.


