Video Bitstream Chunking for Low-Latency Navigation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video streaming technologies face significant delays when navigating to previously played out parts of a streamed video bitstream, as they require downloading and buffering large amounts of data before playback can resume, especially when rewinding or jumping back in time.
Innovation Solution
The solution involves partitioning the streamed video bitstream into chunks, each starting with an independently decodable picture, and selectively discarding stored chunks while keeping strategically distributed navigation tune-in points throughout the played out part of the bitstream, allowing immediate decoding and playback upon navigation without the need for re-requesting data from the server.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the video player requests and buffers video data from the server before playback, then the video can be played without freezing, but the navigation delay becomes significant
Solution Approach 1:
The system pre-loads and caches video data at the server side before the user navigation request occurs. The server maintains a buffer of video data that can be quickly delivered to the client, eliminating the need for the client to request and buffer data after navigation, thus reducing navigation delay while ensuring playback continuity
Solution Approach 2:
The video stream is divided into discrete segments or chunks that can be independently cached and delivered. This segmentation allows the server to efficiently manage and deliver specific video portions based on navigation requests, reducing the amount of data that needs to be buffered and improving navigation response time
2Reliability
If the video player builds up a large buffer of video data, then playback can continue during network bandwidth drops, but the memory usage increases
Solution Approach 1:
The solution moves the buffering function from the client device to the server infrastructure. Instead of buffering data locally in device memory, the server maintains buffers across multiple dimensions (multiple video streams, multiple clients), allowing distributed buffer management that reduces individual device memory requirements while maintaining playback stability
Solution Approach 2:
The server-side buffering system serves multiple clients simultaneously and handles multiple functions (buffering, transcoding, delivery). This universal buffering infrastructure benefits all clients without requiring each client to maintain its own large buffer, reducing overall memory usage per device while maintaining reliability
Data Source
Figure 1~4
Figure 2~7
Figure 8~11
AI summary
Chunks (12, 14) of encoded video data of a streamed video bitstream (1) are stored and encoded video data is decoded to form decoded video data to be output for display. A selected portion (12) of the stored chunks (12, 14) or selected sub-chunks (25, 27) of the stored chunks (20, 22) for a previous, already played out part (3) of the streamed video bitstream (1) is or are discarded while keeping selected stored chunks (14) or selected sub-chunks (21, 23) stored as navigation tune-in points. The usage of selected stored chunks (14) or sub-chunks (21, 23) that are not discarded from the already played out part (3) of the streamed video bitstream (1) enables a low delay solution during video navigation when a user wants to jump to a previously played out position (5) within the streamed video bitstream (1).