HTTP Adaptive Streaming Manifests with Local Block ID Generation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The frequent retrieval of large files containing data block identifiers for deferred playback in content streaming causes bandwidth congestion and server resource strain, particularly when accessing live content with delayed playback functions.
Innovation Solution
A method where clients generate and manage data block identifiers locally, reducing the need for frequent server requests by synchronizing with the content server's production schedule, and only retrieving the file when necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the client frequently retrieves the manifest file to access new data blocks for deferred playback, then the client can access content produced by the server, but the network bandwidth is congested and server resources are strained
Solution Approach 1:
The client generates block identifiers locally in advance based on the known production schedule, rather than waiting to request them from the server. This preliminary local generation eliminates the need for frequent manifest file retrievals, reducing network bandwidth consumption while ensuring the client has the necessary identifiers to access newly produced content blocks.
Solution Approach 2:
The client performs self-service by autonomously generating block identifiers using its own logic and the server's production schedule information, without needing to frequently contact the server for manifest updates. This self-generated identifier approach reduces server resource strain and network traffic while maintaining the ability to access new content.
2Reliability
If the client frequently retrieves the manifest file to access new data blocks, then the client can stay synchronized with server production, but the server resources are strained and performance degrades
Solution Approach 1:
The client obtains the server's content production schedule in advance and uses this information to generate block identifiers locally at the appropriate times. This preliminary acquisition of production schedule information allows the client to stay synchronized with server output without requiring frequent manifest file requests, thereby reducing server resource strain and maintaining server performance.
Solution Approach 2:
The client uses the server's production schedule as feedback to adjust its local identifier generation timing and frequency. By monitoring when new blocks are produced according to the schedule, the client can generate identifiers at the right moments without over-requesting, maintaining synchronization while minimizing server load.
3Adaptability or versatility
If the manifest file contains identifiers for a long time period to enable delayed playback, then the user can access past content, but the file size becomes considerable
Solution Approach 1:
Instead of containing all block identifiers for a long time period in a single large manifest file, the system segments the identifier generation process. The client generates identifiers in smaller batches locally based on the production schedule, breaking down the large file requirement into smaller, manageable segments that are generated on-demand rather than all at once.
Solution Approach 2:
The client serves itself by generating block identifiers locally rather than receiving them all from the server in a large manifest file. This self-generation approach eliminates the need for a considerable-sized manifest file while still providing delayed playback capability, as the client can generate identifiers for past, present, and future blocks as needed.
Data Source
Figure 1~2
Figure 3
AI summary
Method for managing access by a client (C) to content available on at least one server (S) through a telecommunications network (N), said content being temporally segmented into a sequence of data blocks, said method comprising a transmission by said server of a file (F) associating time segments with data block identifiers, as well as an action selected from a generation by said client within said file of at least one block identifier associated with a time segment and a transmission of a request to said server to receive said file (F) again.