Byterange Video Transcoding With Padding for Stable Playback
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing internet video streaming technologies face challenges in efficiently delivering video content with low latency and reduced resource allocation by requiring pre-transcoding of entire segments, leading to increased computational and storage costs, and potential playback errors due to inconsistent byterange addressing.
Innovation Solution
A method for just-in-time transcoding of byterange-addressable parts in video segments, where a system generates a manifest file with predicted byterange addresses, transcodes only requested parts, and appends padding data to ensure accurate delivery, reducing latency and resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If video segments are pre-transcoded into multiple renditions before delivery, then playback quality and adaptability are improved, but storage costs and compute resource usage increase significantly
Solution Approach 1:
The video content is divided into small byterange-addressable parts (e.g., 2-10 seconds each) that can be independently transcoded and delivered. Instead of pre-transcoding entire video segments into multiple renditions, the system segments them into smaller units that are transcoded on-demand based on actual player requests, significantly reducing storage requirements while maintaining rendition adaptability.
Solution Approach 2:
The patent extracts only the necessary portions of video content (specific byteranges) that are requested by players, rather than delivering entire pre-transcoded segments. This allows the system to transcode and deliver only the specific parts needed, reducing both storage requirements and compute resources while maintaining quality adaptability.
2Reliability
If entire video segments are transcoded before delivery, then playback continuity is ensured, but latency increases due to processing time
Solution Approach 1:
The system performs preliminary actions by pre-calculating and storing metadata about video segments including byterange information, duration, and rendition characteristics. This allows the system to quickly respond to player requests by retrieving and transcoding only the specific byteranges needed, rather than waiting to transcode entire segments, thus reducing latency while maintaining playback continuity.
Solution Approach 2:
By segmenting video content into smaller byterange-addressable parts, the system can transcode and deliver individual parts independently and in parallel. This segmentation enables the system to start delivering content before the entire segment is processed, reducing perceived latency while ensuring playback continuity through proper buffering and error handling.
3Reliability
If video content is delivered as complete segments, then playback stability is maintained, but network bandwidth efficiency decreases due to unnecessary data transmission
Solution Approach 1:
The system extracts and delivers only the specific byteranges of video content that are actually requested by players, rather than transmitting complete video segments. This extraction approach eliminates unnecessary data transmission, reducing network bandwidth consumption while maintaining playback stability through proper protocol handling and error recovery mechanisms.
4Productivity
If byterange parts are transcoded without padding, then processing speed increases, but playback errors occur due to size inconsistencies
Solution Approach 1:
The system applies beforehand cushioning by appending padding data to byterange parts during the transcoding process. This padding ensures that all delivered parts have consistent sizes, preventing playback errors related to size inconsistencies. The padding is added automatically as part of the transcoding workflow, maintaining processing efficiency while ensuring playback accuracy through size normalization.
Data Source
AI summary
A method including: ingesting a video segment and a set of video features of the video segment; estimating a part size distribution for the video segment based on the set of video features and a first rendition of the video segment; calculating a maximum expected part size based on a threshold percentile in the part size distribution; at a first time, transmitting, to an video player, a manifest file indicating a set of byterange-addressable parts of the video segment in the first rendition, each byterange addressed part characterized by the maximum expected part size; at a second time, receiving, a playback request for a first byterange-addressable part; transcoding the first byterange-addressable part; in response to the maximum expected part size exceeding a size of the first byterange-addressable part in the first rendition, appending padding data to the first byterange-addressable part; and transmitting the first byterange-addressable part to the AV player.


