Receiver-Driven Streaming Playback Seeking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current multimedia playback systems lack the flexibility and scalability to support progressive playback and 'trick play' functions, especially for longer content like feature-length movies, due to limitations in random access and buffering requirements.
Innovation Solution
The system employs a receiver or player-driven approach that maintains a full capacity download stream of required data, allows random file access, and uses asynchronous requests to support progressive playback and 'trick play' functions. This is achieved through a tight coupling of the playback engine with a transport protocol that provides random access to remote files, utilizing an index to determine required byte ranges and optimizing download efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If linear downloading from beginning to end is used, then buffering requirement is reduced, but random seeking and trick-play functions are not supported
Solution Approach 1:
The patent divides the media file into discrete chunks or blocks that can be independently downloaded and cached. This segmentation allows the system to download only specific portions of the file needed for trick-play operations rather than requiring the entire file in sequential order, enabling random seeking while reducing overall buffering requirements.
Solution Approach 2:
The system performs preliminary downloading and caching of media chunks before they are actually needed for playback. By proactively downloading and storing media segments in advance, the system prepares data for future random access operations, enabling fast forwarding, rewinding, and other trick-play functions without requiring large amounts of data to be buffered during playback.
2Adaptability or versatility
If server-driven approach with custom web servers is used, then network efficiency and playback flexibility improve, but scalability to large number of players deteriorates
Solution Approach 1:
The patent implements a receiver-driven approach where the client device autonomously determines which media chunks to download and caches them locally based on playback requirements. This self-service mechanism eliminates the need for a custom server to manage and control the downloading process for each client, allowing standard web servers to handle multiple concurrent connections efficiently while maintaining playback flexibility through client-side decision-making.
3Loss of time
If pre-caching data from current file position is used, then access latency is minimized, but trick-play functions requiring non-sequential access deteriorate
Solution Approach 1:
The media file is divided into independently cacheable chunks that can be downloaded and stored separately. This segmentation allows the system to cache specific chunks needed for trick-play operations without requiring sequential access, enabling fast forwarding to future chunks or rewinding to previous chunks with minimal latency since the data is already cached locally.
Solution Approach 2:
The system transitions from sequential one-dimensional downloading to multi-dimensional caching strategies, where media chunks are cached based on multiple factors including current position, predicted user behavior, and trick-play requirements. This dimensional approach allows simultaneous optimization for both low latency and comprehensive trick-play support by caching data along different access patterns.
Data Source
AI summary
A receiver driven approach for playback of remote content is described. One embodiment includes obtaining information concerning the content of the media file from the remote server, identifying a starting location within the media sequence, identifying byte ranges of the media file corresponding to media required to play the media sequence from the starting location, requesting the byte ranges required to play the media sequence from the starting location, buffering received bytes of information pending commencement of playback, playing back the buffered bytes of information, receiving a user instruction, identifying byte ranges of the media file corresponding to media required to play the media sequence in accordance with the user instruction, flushing previous byte range requests, and requesting the byte ranges required to play the media in accordance with the user instruction.


