Adaptive Media Streaming Buffer Stall Avoidance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Adaptive media streaming systems face challenges in preventing stalls during playback due to limited information available to the media player client, which can lead to network congestion and server overload issues, resulting in suboptimal quality and interrupted playback.
Innovation Solution
The media player device monitors the buffer utilization over time, using linear regression to predict future changes and adjust segment requests accordingly, either increasing or decreasing quality to maintain a stable buffer level, thereby preventing stalls by requesting lower or higher bandwidth segments as needed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the media player client uses a player-centric approach to control the streaming process and determine next segment requests, then adaptability to player conditions is improved, but the ability to react in time to network congestion or server overload is worsened
Solution Approach 1:
The server performs preliminary actions by monitoring buffer utilization and predicting future buffer states using linear regression before the client can react. The server proactively adjusts segment delivery rates or pre-loads segments based on predicted buffer depletion, preventing stalls before they occur. This shifts the timing of adaptive decisions from reactive (client-side) to proactive (server-side).
Solution Approach 2:
The system implements feedback by having the client send buffer utilization information back to the server. The server uses this feedback to monitor buffer trends and make informed decisions about segment delivery. This feedback loop enables the server to adapt its delivery strategy based on actual client buffer states, resolving the contradiction between client adaptability and timely reaction to network issues.
2Device complexity
If the media player client only uses limited information to determine which segment to request, then device complexity is reduced, but playback reliability is worsened
Solution Approach 1:
The server acts as an intermediary between the client's limited information and the segment selection decision. Instead of the client making complex predictions based on limited data, the server receives the client's buffer status, performs comprehensive analysis including linear regression predictions, and determines optimal segment requests. This intermediary approach maintains client simplicity while improving playback reliability through server-side intelligence.
Solution Approach 2:
The server performs preliminary analysis of buffer trends using linear regression to predict future buffer states before segments need to be requested. This advance prediction allows the server to proactively select and prepare appropriate segments, ensuring playback continuity without requiring the client to have complex predictive capabilities.
3Device complexity
If the server delivers segments without monitoring buffer utilization trends, then device complexity is reduced, but playback reliability is worsened due to buffer depletion
Solution Approach 1:
The server performs preliminary monitoring of buffer utilization trends using linear regression before buffer depletion occurs. By analyzing historical buffer data and extrapolating future states, the server proactively identifies potential buffer exhaustion scenarios and adjusts segment delivery accordingly, preventing playback interruptions before they happen.
Solution Approach 2:
The system implements feedback by having the client report buffer utilization information to the server. The server uses this feedback to continuously monitor buffer trends and make real-time adjustments to segment delivery rates or quality, ensuring playback reliability while maintaining manageable server complexity through automated decision-making algorithms.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods, systems and devices are described to avoid stalling during playback of an adaptive media stream delivered to a media player device over a network. The media device requests segments of the media stream that are received in a buffer. Buffer utilization is monitored over time to determine a rate of change, and future segment requests are adjusted based upon the determined rate of change in the buffer utilization. By making adjustments based upon the rate of change in buffer utilization, sudden changes that could otherwise affect the viewer's experience can be avoided.