Data Keyframe Management for Live Streaming
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing streaming technologies lack efficient methods for storing and distributing data keyframes during live broadcasts, leading to potential disruptions and inconsistencies in playback for subscribing clients who join mid-stream.
Innovation Solution
A streaming server system that identifies, stores, and distributes data keyframes with predetermined identifiers, allowing clients to join live broadcasts in progress by transmitting stored keyframes and ensuring consistent playback, while also deleting keyframes when the publisher stops publishing or receives a clear message.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data keyframes are periodically retransmitted to ensure clients joining mid-stream receive necessary data, then playback consistency is improved, but network bandwidth consumption and server load increase
Solution Approach 1:
The patent stores data keyframes in advance at the server before clients join the stream. When a client connects, the server checks the client's buffer status and selectively transmits only the necessary stored keyframes that the client needs, rather than periodically retransmitting all keyframes to all clients. This preliminary storage and on-demand transmission approach ensures playback consistency while minimizing unnecessary network bandwidth consumption.
2Reliability
If data keyframes are stored indefinitely to support clients joining at any time, then client initialization reliability is improved, but server storage requirements and data management complexity increase
Solution Approach 1:
The server performs preliminary storage of data keyframes when they are first generated in the stream, maintaining them in a cache or storage structure. The system tracks which keyframes have been transmitted to which clients and automatically purges stored keyframes once they have been successfully delivered. This approach ensures reliable client initialization while managing server storage resources efficiently through automatic cleanup mechanisms.
Solution Approach 2:
The patent replaces manual or periodic keyframe retransmission mechanisms with an automated system that tracks client buffer status and selectively retrieves stored keyframes based on client needs. The server maintains a mapping between clients and their required keyframes, using this information to automatically determine which stored keyframes to transmit, eliminating the need for complex periodic retransmission schedules and manual intervention.
3Stability of the object's composition
If the system transmits stored data keyframes to clients joining mid-stream, then playback continuity is improved, but initial transmission delay for new clients increases
Solution Approach 1:
The patent implements a buffer threshold mechanism where the server transmits stored data keyframes to joining clients only until the client's buffer reaches a predetermined threshold level. Once this threshold is achieved, the server transitions to transmitting only real-time stream data. This partial transmission approach provides sufficient keyframes to ensure playback continuity without unnecessarily delaying client initialization by transmitting all possible historical keyframes.
Data Source
AI summary
Methods, systems, and apparatus, including computer program products, for using data keyframes. In one aspect, a method includes storing a data keyframe transmitted as part of a live streaming broadcast; receiving a request from a client to join the live streaming broadcast in-progress; determining that the stored data keyframe was transmitted before the request from the client was received; transmitting the stored data keyframe to the client; and distributing streaming content associated with the live streaming broadcast to the client. Further, the data keyframe can be generated by a publisher of the live streaming broadcast. Distributing streaming content further can include storing a plurality of data keyframes transmitted as part of the live streaming broadcast and transmitting the plurality of stored data keyframes to the client before distributing streaming content associated with the live streaming broadcast to the client.


