Block-Request Streaming via URL Templates and Dynamic Buffering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current media streaming systems face challenges in providing uninterrupted playback and efficient bandwidth utilization due to decoupling of media data delivery and playout, leading to issues like buffering, storage resource consumption, and the need for complex network architectures.
Innovation Solution
A block-request streaming system that uses HTTP streaming with segment-based media delivery, where clients request and play media segments dynamically based on available bandwidth, utilizing FEC codes for error correction and intelligent client procedures to manage buffer occupancy and network measurements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If media data is downloaded far in advance of playout to ensure availability, then playout continuity is improved, but storage resources and network resources are consumed excessively
Solution Approach 1:
The patent segments media content into discrete blocks that can be independently requested and delivered. This allows the client to request only the specific blocks needed for upcoming playout rather than downloading entire media files in advance, significantly reducing storage requirements while maintaining playout continuity.
Solution Approach 2:
The system dynamically adjusts block requests based on real-time buffer occupancy, network conditions, and playout timing. The client continuously monitors these parameters and adapts its requesting strategy, requesting blocks closer to playout time when buffer conditions permit, thereby reducing advance downloads and storage needs.
2Reliability
If media data is downloaded far in advance of playout to ensure availability, then playout continuity is improved, but network resources are consumed excessively
Solution Approach 1:
By segmenting media into blocks and using selective block requesting, the system downloads only the specific blocks needed for imminent playout rather than pre-downloading entire media files. This dramatically reduces network resource consumption while ensuring continuity by maintaining an adequate buffer of requested blocks.
Solution Approach 2:
The client autonomously manages block requests based on its own buffer state and playout schedule, requesting blocks only when needed and at the optimal time. This self-regulating mechanism prevents wasteful network usage by avoiding downloads of blocks that are not yet required for playout.
3Reliability
If tight coupling between delivery timing and playout timing is implemented, then playout continuity is improved, but system complexity increases
Solution Approach 1:
The patent introduces a block buffer as an intermediary between the media delivery system and the playout system. This buffer decouples the tight timing coupling while maintaining continuity, as it absorbs timing variations and allows flexible block requesting without directly impacting playout timing. The buffer acts as a shock absorber that simplifies the overall system architecture.
4Quantity of substance
If block requests are made closer to playout time to reduce storage needs, then storage efficiency is improved, but risk of buffering and playout interruption increases
Solution Approach 1:
The system dynamically adjusts the timing and quantity of block requests based on real-time buffer occupancy levels, network conditions, and playout schedule. When buffer occupancy is sufficient, requests are made closer to playout time to minimize storage needs. When buffer levels drop or network conditions deteriorate, the system proactively requests additional blocks earlier, preventing buffering and maintaining continuity.
Solution Approach 2:
The client continuously monitors buffer occupancy, network throughput, and block delivery timing, using this feedback to adaptively adjust its block requesting strategy. This closed-loop control ensures that blocks are requested at optimal times that balance storage efficiency with playout continuity, preventing both excessive storage usage and buffering interruptions.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A block-request streaming system provides for improvements in the user experience and bandwidth efficiency of such systems, typically using an ingestion system that generates data in a form to be served by a conventional file server (HTTP, FTP, or the like), wherein the ingestion system intakes content and prepares it as files or data elements to be served by the file server, which might include a cache. A client device can be adapted to take advantage of the ingestion process as well as improvements that make for a better presentation independent of the ingestion process. The client devices and ingestion system can be coordinated to have a predefined mapping and template for making block requests to HTTP file names that a conventional file server can accept through the use of URL construction rules. Segment size might be specified in an approximate manner for more efficient organization.