HLS Proxy for DLNA-to-HLS Streaming Chunk Alignment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing DLNA protocol is not natively compatible with HLS, leading to issues such as buffering errors, stalls, and duplicate manifest downloads due to timing mismatches and incompatibilities in block sizes during the conversion of media streams from DLNA to HLS, particularly in mobile devices like iOS AVPlayer.
Innovation Solution
A method and apparatus that aligns the media segment production with a target duration by creating chunks at PCP block boundaries and generating segments based on available content, ensuring timely delivery of new manifests and preventing duplicate downloads by using a proxy that handles media segment acquisition and updates HLS manifest managers to provide new segments with minimal delay.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If blind chunking is used to create media segments from DLNA content, then media segments can be generated for HLS playback, but timing mismatches and block size incompatibilities cause buffering errors and duplicate manifest downloads
Solution Approach 1:
The patent introduces a conversion proxy as an intermediary component between DLNA sources and HLS sinks. This proxy implements intelligent chunking logic that translates DLNA's block-based structure into HLS's segment-based structure, mediating the protocol incompatibility while maintaining reliable streaming. The proxy acts as a buffer and translator, preventing direct interaction between incompatible protocols.
Solution Approach 2:
The patent changes the parameter of chunk creation from fixed-size blind chunking to duration-based intelligent chunking. By switching from a spatial parameter (block size) to a temporal parameter (target duration), the system aligns with HLS playback requirements and eliminates timing mismatches that cause buffering errors and duplicate manifest downloads.
2Productivity
If fixed-size chunks are created without examining media timestamps, then chunk creation is simple and fast, but alignment with sink playback rate deteriorates causing stalls and buffering errors
Solution Approach 1:
The patent performs preliminary examination of media timestamps and block boundaries during the chunk creation process. By proactively analyzing the temporal structure of incoming DLNA content, the system can pre-calculate optimal chunk boundaries that align with target duration requirements, preventing timing mismatches before they occur during playback.
Solution Approach 2:
The patent implements feedback mechanisms where the conversion proxy monitors the actual duration of created chunks and adjusts subsequent chunk creation accordingly. This closed-loop control ensures that chunks are consistently aligned with the sink's playback rate, maintaining precision without significantly impacting creation speed.
3Adaptability or versatility
If DLNA content is transcoded to HLS format, then compatibility with mobile devices is improved, but timing mismatches between PCP blocks and HLS segments cause duplicate manifest downloads
Solution Approach 1:
The patent applies segmentation by dividing DLNA content into HLS segments based on temporal boundaries rather than fixed block sizes. This segmentation strategy ensures that each manifest contains segments with consistent duration, allowing the sink to efficiently cache and reuse manifests without encountering timing mismatches that would trigger duplicate downloads.
Data Source
AI summary
A method and system is provided for segmenting blocks of video data into chunks for consumption by player devices to create a new block to improve overall chunk creation. In one embodiment, issues that occur at the PCP block boundaries are handled by creating two chunks, one from the tail of content from the previous block and the other from the start of the new block, with the sums of the two chunks approximately equal to the target duration, improving manifest and chunk cadence creation. In another embodiment, chunks are created when the sink 104 requests a new manifest regardless of whether a proxy chunk timer pulling data from the PCP block has expired or not.


