Video Streaming Pre-fetching B-frames to Reduce Playback Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current network technologies often result in a frustrating user experience due to slow download speeds and buffering issues when streaming or downloading content, as users' hardware and network environments can significantly impact the efficiency of content delivery.
Innovation Solution
A streaming data service pre-fetches bi-predictive inter frames (B-frames) of visual media files, allowing for faster download and presentation of content by transmitting only the necessary intra frames (I-frames) and predictive inter frames (P-frames) when the user selects a media file, utilizing shared dictionary compression over HyperText Transfer Protocol (SDCH) to enhance transmission speed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all video frames (I-frames, P-frames, and B-frames) are transmitted when a user selects a media file, then the video playback can be complete and accurate, but the download time increases and user experience deteriorates
Solution Approach 1:
The system pre-fetches and caches B-frames in advance before the user actually selects the media file for playback. When a user browses available media files, the streaming service proactively downloads and stores B-frames in the user's local cache, so that when the user clicks to play, these frames are already available locally, eliminating the need to download them during playback initiation.
Solution Approach 2:
The video frame transmission is segmented into different phases: B-frames are fetched and cached in advance during the browsing phase, while only I-frames and P-frames are transmitted during the actual playback phase. This segmentation allows the system to optimize download timing for different frame types, reducing the immediate download burden when playback starts.
2Reliability
If the streaming service buffers content in advance, then playback smoothness improves, but network bandwidth is consumed during buffering periods
Solution Approach 1:
The system applies different buffering strategies to different frame types based on their specific requirements. B-frames, which require both past and future reference frames for decoding, are cached locally in advance with higher priority. I-frames and P-frames are transmitted on-demand during playback. This localized optimization ensures playback smoothness where it matters most while conserving network bandwidth.
Solution Approach 2:
The user's local device cache serves itself by storing B-frames locally in advance, reducing the need for continuous network bandwidth consumption during playback. The local cache acts as a self-service repository that provides frames without requiring real-time network access, thereby reducing overall network bandwidth usage while maintaining playback quality.
3Quantity of substance
If B-frames are transmitted and cached in advance, then the total payload for playback is reduced, but the initial network request complexity increases
Solution Approach 1:
The system introduces a cache management intermediary layer that mediates between the network and the playback system. This intermediary automatically manages B-frame caching, handling the complexity of determining which B-frames to cache, when to cache them, and how to retrieve them during playback. This shields the user from the complexity while still achieving payload reduction.
Solution Approach 2:
The system changes the temporal parameters of frame transmission by shifting B-frame downloads from the playback phase to the pre-browsing phase. This parameter change in timing reduces the immediate payload during playback while distributing network traffic over a longer period, effectively managing the complexity through temporal redistribution.
Data Source
AI summary
Techniques are described for providing a predictive data streaming service associated with a visual media file. For example, third type of frame data for a visual media file may be transmitted to a client device from a streaming service. In embodiments, a selection of the particular visual media file may be transmitted to the streaming service. A request may be made to an interface associated with the client device, via an application program interface call, for a first data stream of a first type of frame data and a second data stream of a second type of frame data for the particular visual media file. The request may be based at least in part on the selection of the particular visual media file and after receipt of the third type of frame data. The third type of frame data, the first data stream of the first type of frame data, and the second data stream of the second type of frame data may be interleaved based at least in part on instructions from the interface.


