HLS Live Resume Using Client-Side Buffering After Pause
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current HLS streaming systems fail to resume a converted DLNA-HLS media stream from a pause position, often restarting from a live position instead, causing users to miss playback and requiring significant waiting periods due to system processing and network overhead.
Innovation Solution
Implement a method that maintains a connection to the content source during pause, storing a predetermined number of transport stream packets in temporary storage, and generates a sliding-window HLS manifest to allow seamless playback from the paused position without updating the server, using HTTP stalling and socket-level APIs to manage the client-side stream.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the current HLS streaming system restarts playback from the live position after a pause, then the system can maintain continuous connection to the content source, but the user misses playback content and experiences poor quality
Solution Approach 1:
The system performs preliminary action by buffering a predetermined number of transport stream packets in temporary storage before playback is needed. This allows the system to have advance data ready, enabling seamless resume from pause position without restarting from live position, thus preventing users from missing playback content while maintaining continuous connection
2Ease of operation
If the system sends pause position to server and waits for server to stop and restart data transmission, then playback can resume from pause position, but significant delay occurs due to processing and network overhead
Solution Approach 1:
The system introduces an intermediary mechanism by maintaining a local temporary storage buffer at the client side that holds transport stream packets. This intermediary buffer allows the client to resume playback directly from stored data without requiring server intervention, processing, or network transmission, thus eliminating the 5-6 second delay while enabling seamless resume from pause position
Solution Approach 2:
The system implements self-service by enabling the client to autonomously manage pause and resume operations using locally stored transport stream packets. The client maintains connection to the content source and manages its own playback state without requiring server to stop or restart data transmission, eliminating network overhead and processing delays associated with server-based solutions
3Reliability
If the system maintains connection to content source during pause and stores transport stream packets locally, then seamless resume is achieved, but client-side storage and management complexity increases
Solution Approach 1:
The system applies parameter changes by defining a predetermined number of transport stream packets to be stored in temporary storage. This parameter-based approach simplifies client-side management by establishing clear, fixed criteria for buffering, rather than requiring complex dynamic decisions about when and how much data to store, thus reducing management complexity while ensuring seamless playback continuity
Data Source
AI summary
A method, apparatus, and computer program product for trickplay in HTTP live streaming (HLS), includes: establishing a connection to a content source; receiving a piece of content from a content source as a multimedia stream, wherein the multimedia stream comprises a digital living network alliance stream; converting the multimedia stream into a client stream that comprises a HLS stream, the HLS stream including a manifest file containing a plurality of transport stream packets; storing a pre-determined number of the plurality of transport stream packets in a temporary storage; outputting the client stream to a media player; receiving a first trickplay request from the media player, the first trickplay request being a pause request; in response to the first trickplay request: pausing the client stream; transmitting a signal keeping the connection to the content source alive and the multimedia stream active; and storing the multimedia stream in the temporary storage.


