HTTP Byte Range URL Embedding for Proxy-Compatible Video Streaming
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for streaming multimedia data over HTTP face challenges such as inefficient data retrieval due to intermediate proxy devices not supporting byte range requests, leading to full file retrieval and delays, especially in caching and virus scanning scenarios.
Innovation Solution
The technique involves specifying byte ranges directly in the URL path of HTTP GET requests instead of using partial GET requests, allowing proxy devices to cache and retrieve only the requested data, and using a manifest file to provide templates for constructing URLs that include byte ranges, enabling efficient data retrieval and caching.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If partial GET requests with Range headers are used to retrieve byte ranges, then data retrieval efficiency is improved, but intermediate proxy devices may not support this feature causing full file retrieval and delays
Solution Approach 1:
The patent introduces a manifest file as an intermediary that contains byte range information in a format compatible with standard HTTP proxies. Instead of relying on proxy devices to understand Range headers, the byte range data is embedded in the manifest file which all devices can process, thus maintaining compatibility while enabling efficient byte range retrieval.
Solution Approach 2:
The patent performs preliminary action by pre-organizing video content into segmented files with associated manifest files that contain byte range information before transmission. This pre-processing allows receiving devices to directly request specific byte ranges without requiring intermediate proxy devices to support Range headers, resolving the compatibility issue while maintaining retrieval efficiency.
2Reliability
If full video files are retrieved for caching purposes, then caching completeness is improved, but storage requirements and retrieval delays increase
Solution Approach 1:
The patent segments video content into smaller files organized by time intervals, with each file containing byte range information in its manifest. This segmentation allows caching devices to store and retrieve only the specific byte ranges needed rather than entire video files, reducing storage requirements while maintaining caching effectiveness for adaptive streaming.
Solution Approach 2:
The patent enables different parts of the caching system to store different byte ranges of video content based on local需求和访问模式。Each caching device can maintain a localized cache of relevant byte ranges from segmented video files, optimizing storage usage while ensuring the necessary data is available for playback.
3Adaptability or versatility
If adaptive streaming switches between multiple representations, then quality adaptation is improved, but the number of files to manage on the origin server increases
Solution Approach 1:
The patent makes each video file universal by organizing content into time-based segments that can represent multiple quality levels. Each segmented file can serve multiple representations (different bitrates and resolutions) through byte range requests, eliminating the need to manage separate files for each quality level on the origin server.
Solution Approach 2:
The patent adds a new dimension to video file organization by using time-based segmentation instead of quality-based separation. Video content is divided into temporal segments, and quality adaptation is achieved through byte range requests within these segments rather than through separate files for each quality level, simplifying origin server file management.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In one example, a device for receiving information for multimedia data includes one or more processors configured to determine a byte range of a file of a representation of multimedia content to request from a source device, form a uniform resource locator (URL) that specifies, in a file path portion of the URL, according to a template, the file and the byte range in accordance with requirements of the source device, and issue a GET request that specifies the formed URL to the source device.