Adjacent Channel Video Preloading for Seamless Streaming
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing media streaming solutions experience cumbersome loading times and frequent breaks when switching between media streams, especially on low bandwidth networks, degrading the user experience.
Innovation Solution
A method for switching between video streams by preloading content from adjacent channels, allowing concurrent display of portions of the current and preloaded streams, reducing the need for continuous data delivery and minimizing loading times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If media streams are loaded on demand during channel switching, then network bandwidth is conserved, but loading times increase and user experience degrades
Solution Approach 1:
The system preloads media content from adjacent channels into a buffer before the user actually requests to switch to those channels. This preliminary action stores content in advance, so when channel switching occurs, the content is already available locally, eliminating loading delays while avoiding the need to load all possible channels simultaneously over the network.
Solution Approach 2:
The system differentiates between content that is preloaded (adjacent channels) and content that is loaded on demand (other channels). By applying different loading strategies to different portions of the media library based on their likelihood of being accessed, the system optimizes both speed and bandwidth usage.
2Speed
If multiple media streams are loaded simultaneously, then channel switching is fast, but network bandwidth requirements increase
Solution Approach 1:
The system segments the media streaming process into two distinct phases: a preloading phase where content is fetched and buffered in advance, and a playback phase where content is delivered immediately from local storage. This segmentation allows the system to achieve fast switching speeds during playback while concentrating network bandwidth usage during the separate preloading phase.
Solution Approach 2:
Content from adjacent channels is preloaded into a buffer before switching is needed. This preliminary buffering action ensures that when the user switches channels, the content is already locally available, achieving instant switching without requiring simultaneous high-bandwidth delivery of multiple streams.
3Loss of time
If buffering is used to reduce loading times, then user experience improves, but device memory requirements increase
Solution Approach 1:
The system applies buffering selectively only to adjacent channels that are likely to be switched to soon, rather than buffering all possible channels. This localized buffering approach minimizes memory usage while still providing the speed benefits of preloading for the most relevant content.
Solution Approach 2:
The system performs preliminary loading of content into a buffer in advance of when it is needed, but only for adjacent channels. This allows the buffer to be kept relatively small since it only needs to hold content for a limited number of adjacent channels rather than all possible channels, reducing memory requirements while still eliminating loading delays.
Data Source
AI summary
An electronic device with one or more processors, memory and a display receives a first request to display a first video stream that corresponds to a first channel. In response to receiving the first request, the device starts to download the first video stream from a content source for the first video stream. After starting to download the first video stream, the device displays the first video stream and starts to preload one or more video streams including a second video stream that corresponds to a second channel that is adjacent to the first channel. While displaying the first video stream, the device receives a second request to display the second video stream. In response to receiving the second request, the device displays at least a portion of the second video stream using a preloaded portion of the second video stream.


