Fragmented Media Caching via Index Points
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current HTTP streaming technologies face challenges in efficiently caching and playing back fragmented media documents, particularly in handling seek requests without interrupting the current stream and managing storage effectively for media players.
Innovation Solution
A method that involves receiving a manifest from a server system indicating storage locations of fragmented media documents, caching these fragments on a client system, generating index points for cached fragments, and using these index points to play back media data without requiring scripting instructions, thus allowing for efficient forward and backward seeking without relying on browser caching policies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If fragmented media documents are cached in persistent storage medium, then playback buffer overload is avoided and seek requests are handled efficiently, but device complexity increases due to cache index management
Solution Approach 1:
The media document is divided into multiple fragments that are cached independently in persistent storage. Each fragment is associated with index points that map to specific portions of the media data item, allowing selective caching and retrieval without requiring the entire media document to be loaded into memory.
Solution Approach 2:
The patent introduces a cache index data structure that adds an organizational dimension to the caching system. The cache index maps index points to storage locations in persistent storage medium, enabling efficient random access to cached fragments without requiring sequential processing or complex in-memory buffer management.
2Speed
If index points are generated for cached fragments to enable random access, then seek requests are handled efficiently, but loss of information increases due to potential index inaccuracies
Solution Approach 1:
Index points are generated and stored in the cache index during the caching process, before any playback or seek operations occur. This preliminary indexing allows the media player to directly locate and retrieve specific portions of cached media data without needing to process or analyze the cached fragments at playback time, ensuring both speed and accuracy.
3Productivity
If multiple fragments are requested using separate requests, then caching efficiency is improved, but loss of time increases due to multiple network round trips
Solution Approach 1:
The media player client proactively requests and caches multiple fragments from the server system in advance, using separate requests for each fragment as indicated in the manifest. By performing this caching action preliminarily, before playback is needed, the system prepares the media data for efficient local playback while accepting the time cost of initial network transfers.
Solution Approach 2:
The patent maintains continuous caching operations by systematically requesting and caching fragments in sequence according to the manifest. This continuous action ensures that media data is progressively accumulated in persistent storage, transforming the intermittent network requests into a smooth, ongoing caching process that minimizes playback interruptions.
Data Source
AI summary
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for caching fragmented streaming media, e.g., for caching fragmented media documents streamed in accordance with HTTP, are described in this specification. In one aspect, a system including means for obtaining, locally, fragments of a media document from a remote media source based on a manifest that refers to storage locations where the fragments are stored at the remote media source. Further, the system includes means for generating index points into a locally cached media item of the obtained fragments, the generated index points being different from any index point of the manifest. Additionally, the system includes means for playing the locally cached media item based on the generated index points.


