Fast Channel Change via Multi-Connection Buffering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In over-the-top (OTT) environments, channel changes in video streaming are slower due to limited bandwidth and the need to request live channels, unlike traditional digital video broadcast systems where all channels are pre-sent, allowing for faster switching.

Innovation Solution

Establishing multiple connections with edge servers, using a high-priority thread for channel changes, and sending byte ranges across multiple servers to initiate a fast channel change process, along with thumbnail animation to simulate immediate playback.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If all channels are sent continuously to client devices like in traditional digital video broadcast, then channel switching speed is improved, but bandwidth consumption increases significantly

Engineering Contradiction:
Improvechannel switching speedVSAvoidbandwidth consumption
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The system pre-loads channel video data into buffer memory before it is requested by the user. When a channel change is initiated, the buffered data is already available for immediate playback, eliminating the need to wait for data transmission. This preliminary buffering action resolves the contradiction by enabling fast channel switching without requiring continuous transmission of all channels, thus maintaining low bandwidth consumption.

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If channels are sent upon request in OTT environment to save bandwidth, then bandwidth consumption is reduced, but channel switching time increases

Engineering Contradiction:
Improvebandwidth consumptionVSAvoidchannel switching time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The system proactively buffers channel data in advance of user requests. Multiple worker threads continuously download and buffer video segments from different channels in the background. When a user requests a channel change, the data is already prepared in the buffer, enabling immediate playback without increasing bandwidth consumption during the switching event.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically manages buffer content based on predicted user behavior and current viewing state. The buffer is continuously updated with data from the currently viewed channel and potentially pre-loaded with data from adjacent or popular channels. This dynamic buffering strategy ensures that frequently accessed or likely-to-be-accessed channels are ready in the buffer, reducing switching time without wasting bandwidth on unnecessary data transmission.

Inventive Principle:
Principle #15Dynamics

3Speed

If multiple connections are established with edge servers for fast channel change, then channel switching speed is improved, but system complexity increases

Engineering Contradiction:
Improvechannel switching speedVSAvoidconnection management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system dynamically creates and manages multiple worker threads only when needed for channel switching operations. During normal playback, a single connection is maintained. When a channel change is requested, additional worker threads are spawned to fetch data from edge servers, and these threads are terminated once the channel switch is complete. This dynamic thread management enables fast channel switching capability while minimizing system complexity during steady-state operation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10791366B2Fast channel change in a video delivery network
Publication Date: 2020.09.29 HULU LLC
  • US10791366B2 patent drawing
  • US10791366B2 patent drawing
  • US10791366B2 patent drawing

AI summary

A client establishes connections with a media server. The connections include a first connection for regular playback and one or more second connections for processing a channel change. Segments of a first video are received from the media server using the first connection in the plurality of connections. The first video is being played on a first channel in a plurality of channels. The client receives a request to change from the first channel to a second channel in the plurality of channels. A request for at least a portion of a segment of a second video being played on the second channel is sent to the media server. The request includes a channel change indicator. The client then receives the at least the portion of the segment of the second video using the one or more second connections with the media server.