Video Streaming With Key-Frame Start for Low-Latency Seeking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video streaming protocols suffer from high seeking delay, latency, and startup time, especially when starting a video at an arbitrary point in time, and they often require unnecessary data transfer due to segment-based approaches that do not align perfectly in time, leading to visible glitches.
Innovation Solution
A server provides two versions of the video: a temporal independent version comprising key frames and a temporal dependent version, allowing clients to request and receive the first frame corresponding to the desired starting point directly, followed by subsequent dependent frames, without relying on segment-based transmission.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If segment-based streaming protocols are used to enable adaptive bitrate streaming and live streaming, then switching between qualities and live streaming capability are improved, but seeking delay and startup time increase because the client must download and decode the complete segment from the first key frame
Solution Approach 1:
The video stream is segmented into key frames that serve as independent starting points. Each key frame is a complete, decodable image that can initiate playback without requiring previous frames. This segmentation allows the client to jump to any key frame and start playback immediately, eliminating the need to download entire segments from the beginning.
Solution Approach 2:
Key frames are prepared in advance as standalone, decodable units during video encoding. These pre-prepared key frames contain all necessary information to start playback independently, allowing the client to begin playback at any key frame without waiting for or decoding preceding frames, thus reducing seeking delay.
2Adaptability or versatility
If segment-based streaming is used to provide live streaming and quality switching, then adaptability is improved, but data transfer efficiency deteriorates due to non-aligned segment boundaries causing visible glitches and unnecessary data download
Solution Approach 1:
The video is divided into segments based on key frame boundaries rather than arbitrary time intervals. This ensures that each segment starts with a complete, decodable key frame and contains only the necessary frames to reach the next key frame, eliminating redundant data transfer and alignment issues.
Solution Approach 2:
Different parts of the video stream are treated differently: key frames are transmitted as complete, standalone images, while intermediate frames are transmitted as differential data relative to the key frame. This local differentiation optimizes data transfer by sending only the necessary information for each portion of the stream.
3Loss of time
If progressive download is used to reduce latency by playing back media before complete download, then startup time is improved, but seeking capability and quality switching are lost
Solution Approach 1:
The video stream is structured with key frames that serve as independent playback points. This segmentation allows the client to download and play back from any key frame without needing to download the entire file first, combining the benefits of progressive download with seeking capability.
Solution Approach 2:
Key frames act as intermediaries that bridge the gap between progressive download and seeking capability. Each key frame is a complete, decodable unit that can serve as an independent starting point, allowing the client to jump to any key frame and begin playback immediately without requiring the complete file or preceding frames.
Data Source
AI summary
A server for streaming a video to a client involves making the video available from the server to the client upon request in at least a temporal independent version and a temporal dependent version. The server is configured for: i) receiving a request from the client to receive a stream of the video from an arbitrary starting point in time; and ii) retrieving at least the first frame from the temporal independent version; and iii) retrieving frames subsequent to the at least first frame from the temporal dependent version; and iv) sending the at least first frame to the client and send the frames subsequent to the at least first frame to the client.


