Staggered Timer Mechanism for Browser Throttling Compensation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing content playback systems experience delays and disruptions due to browser throttling, leading to stuttering, pauses, and skipping of content, especially when the browser window is inactive, as they limit the number of timer events to conserve resources.
Innovation Solution
Modifying the content server code to start multiple timers in a staggered fashion, corresponding to the desired frame rate, to ensure continuous playback of audio or video content, regardless of the browser's active state, by implementing a content delivery mechanism that breaks content into chunks and using protocols like HTTP Live Streaming (HLS) or Real Time Messaging Protocol (RTMP).
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If the browser limits the number of timer events to conserve resources when the browsing window is inactive, then resource consumption is reduced, but content playback continuity is disrupted causing stuttering and pauses
Solution Approach 1:
The patent applies preliminary action by pre-loading content chunks into a buffer before playback is needed. The content server divides content into multiple chunks and transmits them ahead of time, so that when the browser becomes active again, buffered content is available for continuous playback without interruption, thus resolving the contradiction between resource conservation during inactivity and playback continuity upon activation
Solution Approach 2:
The patent applies segmentation by dividing the content delivery process into discrete chunks that are transmitted separately. Each chunk can be buffered independently, allowing the system to manage resource consumption in manageable units while ensuring that sufficient content is pre-loaded to maintain playback continuity, thus resolving the contradiction between resource usage and playback reliability
2Productivity
If the browser throttles scripts running in inactive windows to conserve processing power, then processing efficiency is improved, but playback smoothness deteriorates causing skipping and disruptions
Solution Approach 1:
The system performs preliminary actions by pre-processing and buffering content chunks on the server side before the browser needs to play them. This allows the browser to throttle script execution during inactive periods without impacting playback quality, as the content is already prepared and buffered, thus resolving the contradiction between processing efficiency and playback smoothness
Solution Approach 2:
The patent introduces an intermediary buffering mechanism between the content server and the browser player. This buffer acts as a mediator that decouples the server's content delivery from the browser's playback requirements, allowing the browser to throttle processing during inactivity while the buffer ensures smooth playback continues, thus resolving the contradiction between productivity and reliability
3Productivity
If content is transmitted in chunks using streaming protocols, then transmission efficiency is improved, but playback continuity is compromised when transmission delay exceeds playback speed
Solution Approach 1:
The patent applies preliminary action by transmitting multiple content chunks in advance and buffering them before playback begins. The content server sends chunks ahead of the playback schedule, building up a buffer that can sustain playback even when transmission delays occur, thus resolving the contradiction between transmission efficiency and playback continuity
Solution Approach 2:
The system implements beforehand cushioning by pre-loading excess content into the buffer beyond what is immediately needed for playback. This creates a cushion or safety margin that protects against transmission delays, network variations, and processing bottlenecks, ensuring playback continuity is maintained even when transmission speed fluctuates, thus resolving the contradiction between transmission productivity and playback reliability
Data Source
AI summary
To provide the continuous playback of content, a content server may provide code to a requesting device that causes the requesting device to play streaming content delivered in chunks or other portions without disruption in playback. The requesting device may execute the code by a browser or other application, which may cause the requesting device to determine whether a data buffer is empty or nearly empty and request additional content from a streaming server if the data buffer is empty or nearly empty. The process may be repeated a number of times each second for the duration of the playback of the content in order to enable continuous playback of the content regardless of any throttling of the code execution or content playback attempted to be imposed by a browser or other application.


