IP Library Granted Patent US 9,241,170
Granted Patent B1
US 9,241,170 · App. 13/484,150 · Granted Jan 19, 2016

Adaptive streaming using chunked time-to-offset mapping

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,241,170
App. No.
13/484,150
Granted
Jan 19, 2016
Kind
B1
Abstract

Systems and methods are provided herein relating to adaptive video streaming. Time-to-offset mapping associated with a set of video blocks can be broken up into chunks. A client can download a first set of seek index chunks and use the first set of seek index chunks to select a stream. Seek index chunks within remaining sets of seek index chunks can be ranked for relevance based on client capabilities. A subset of remaining sets of seeks index chunks can be downloaded based on the rankings and client capabilities during streaming. Chunked time-to-offset mapping can facilitate faster startup when playing streamed video.

Claims (32)

1. A client device comprising:

a memory that has stored thereon computer executable components; and

a processor that executes the following computer executable components stored in the memory:

a receiving component that receives, from a server device, a first set of seek index chunks associated with a first set of video blocks, wherein the video blocks are encoded with different video characteristics, and wherein reception of the first set of seek index chunks is based on a request, by the client device, for video content from the server device;

a streaming component that dynamically selects to stream one of the video blocks among the first set of video blocks as a function of the first set of seek index chunks and client capabilities, wherein selection to stream is based on the client device request based on the first set of seek index chunks and the client capabilities, wherein the client capabilities comprise client device power consumption; and

a ranking component that ranks index chunks within a second set of seek index chunks for relevance based on the client capabilities, wherein the receiving component receives a subset of the second set of seek index chunks, during streaming, as a function of the ranking, wherein ranking the index chunks is based on the client device dynamically monitoring the client capabilities.

2. The client device of claim 1 , further comprising:

a monitoring component that dynamically monitors the client capabilities.

3. The client device of claim 2 , wherein the streaming component dynamically selects and streams one of the video blocks based on the dynamic monitoring.

4. The client device of claim 2 , wherein the ranking component dynamically updates ranks based on the dynamic monitoring.

5. A client device comprising:

a memory that has stored thereon computer executable components; and

a processor that executes executable components stored in the memory, the executable components comprising:

a receiving component that receives, from a server device, a first set of seek index chunks associated with a first set of video blocks, wherein the video blocks are encoded at different bit rates, and wherein reception of the first set of seek index chunks is based on a request, by the client device, for video content from the server device;

a streaming component that dynamically selects to stream one of the video blocks among the first set of video blocks as a function of the first set of seek index chunks and client connection speed, wherein selection to stream is based on the client device request based on the first set of seek index chunks and the client connection speed; and

a ranking component that ranks index chunks within a second set of seek index chunks for relevance based on client connection speed wherein the receiving component receives a subset of the second set of seek index chunks, during streaming the one of the video blocks among the first set of video blocks, based on the ranking, wherein ranking the index chunks is based on the client device dynamically monitoring the client connection speed.

6. The client device of claim 5 , wherein the streaming component,

upon completion of streaming one of the video blocks among the first set of video blocks, dynamically selects to stream a video block associated with the subset of the second set of seek index chunks as a function of the subset of the second set of seek index chunks and client connection speed.

7. The client device of claim 6 , wherein the ranking component ranks seek index chunks within a third set of seek index chunks for relevance based on updated client connection speed.

8. A method comprising:

receiving, by a client device comprising a processor, from a server device, a first set of seek index chunks associated with a first set of video blocks, wherein the video blocks are encoded with different video characteristics, and wherein the receiving the first set of seek index chunks is based on a request, by the client device, for video content from the server device;

dynamically selecting, by the client device, one of the video blocks among the first set of video blocks to stream as a function of the first set of seek index chunks and client capabilities, wherein the dynamically selecting is based on the client device request based on the first set of seek index chunks and the client capabilities, wherein the client capabilities comprises power consumption of the client device;

ranking index chunks within a second set of seek index chunks for relevance based on client capabilities, wherein the ranking the index chunks is based on the client device dynamically monitoring the client capabilities; and

downloading a subset of the second set of seek index chunks, during streaming, based on the ranking.

9. The method of claim 8 , further comprising:

selecting, upon completion of streaming one of the video blocks among the first set of video blocks, a video block associated with the subset of the second set of seek index chunks to stream as a function of the subset of the second set of seek index chunks and client capabilities.

10. The method of claim 8 , further comprising:

ranking seek index chunks within a third set of seek index chunks for relevance based on client capabilities.

11. The method of claim 8 , further comprising:

dynamically monitoring client capabilities.

12. The method of claim 11 , further comprising:

dynamically updating ranks based on the dynamic monitoring.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2012
From: GALLIGAN, FRANCIS
To: GOOGLE INC.
Reel/Frame 028292/0399 →