Per-Segment Parameter Files for Smaller Streaming Manifests
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Adaptive streaming requires large manifest files due to individually listing segment parameters for each representation, increasing network traffic and computational resources.
Innovation Solution
A parameter file separate from the manifest file identifies time ranges with corresponding parameter values, allowing the manifest file to use templates for segment requests, reducing its size and resource requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If manifest files individually list addresses and parameters for each segment and representation of content, then complete content delivery information is provided, but manifest file size and resource requirements increase
Solution Approach 1:
The manifest file is segmented into two parts: a template portion containing the structure and a separate parameter file containing the actual parameter values for each segment. This segmentation allows the manifest to reference segments using templates with placeholders, significantly reducing the manifest file size while still providing complete content delivery information through the combination of template and parameter file.
Solution Approach 2:
Parameter values that vary by segment (such as forensic watermarking identifiers, timing information, or other segment-specific data) are extracted from the manifest file and placed into a separate parameter file. The manifest file retains only the template structure and references to the parameter file, eliminating redundant information while preserving all necessary content delivery details.
2Loss of information
If manifest files individually list addresses and parameters for each segment and representation of content, then complete content delivery information is provided, but parsing resource requirements increase
Solution Approach 1:
By segmenting the manifest into a template portion and a separate parameter file, the parsing process is divided into two simpler stages: first parsing the template structure (which is smaller and more regular), then loading parameters separately. This reduces the complexity of parsing the entire manifest at once and allows for more efficient memory management.
Solution Approach 2:
The template structure is prepared in advance with clearly defined placeholders and syntax rules, allowing user devices to efficiently parse and interpret the manifest structure without having to process all parameter values simultaneously. The separation of structure from data enables preliminary parsing of the template followed by efficient parameter loading.
3Quantity of substance
If Template elements are used to describe a standardized naming convention for segments, then manifest file size is reduced, but per-segment parameters cannot be defined according to standard naming convention
Solution Approach 1:
A parameter file serves as an intermediary between the template-based manifest structure and the need for flexible per-segment parameter definition. The parameter file contains structured key-value pairs that map to the placeholders in the template, allowing standard naming conventions to be maintained in the manifest while enabling flexible parameter values to be defined separately for each segment without increasing manifest complexity.
Data Source
AI summary
Per-segment parameters for content delivery are described herein. A manifest file for a segment and a parameter file for the segment may be sent to a user device. The parameter file may indicate one or more time ranges each corresponding to a parameter value. Requests for content segments based on the manifest file and the parameter file may be received. The user device may access the parameter file to determine a time range of the one or more time ranges into which a start time of a particular segment falls. The user device may determine a parameter value as corresponding to the determined time range. The user device may then generate a request to include the determined parameter value.


