IP Library Granted Patent US 10,687,095
Granted Patent B2
US 10,687,095 · App. 15/587,182 · Granted Jun 16, 2020

Systems and methods for saving encoded media streamed using adaptive bitrate streaming

Inventors: Ben Ziskind (San Marcos, CA); Song Cen (San Diego, CA); Tung Lin (San Diego, CA); Jason Braness (San Diego, CA); Kourosh Soroushian (San Diego, CA)
Assignee: DIVX, LLC
H04N21/23439H04L63/0428H04L65/4069H04L65/604H04L65/607H04N19/00H04N19/44H04N21/23608H04N21/234309H04N21/4331H04N21/4344H04N21/44209H04N21/4621H04N21/6373H04N21/85406H04W4/12H04L65/4092
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 10,687,095
App. No.
15/587,182
Granted
Jun 16, 2020
Kind
B2
Abstract

Systems and methods for saving encoded media streamed using adaptive bitrate streaming in accordance with embodiments of the invention are disclosed. In one embodiment of the invention, a playback device configured to perform adaptive bitrate streaming of media includes a video decoder application and a processor, where the video decoder application configures the processor to select a download stream from a set of alternative streams of video data, measure streaming conditions and request a stream of video data from the alternative streams of video data, receive portions of video data from the requested stream of video data, decode the received video data, save the received video data to memory, when the received video data is from the download stream and separately download and save the corresponding portion of video data from the download stream to memory, when the received video data is not from the download stream.

Claims (51)

1. A playback device configured to download media for offline playback, comprising:

a processor; and

a nonvolatile storage medium containing a video decoder application for causing the processor to perform the steps of:

obtaining a top level index file from a server, where the top level index file contains data describing a plurality of streams, and where the plurality of streams comprises:

at least one video stream;

at least one audio stream;

at least one subtitle stream; and

at least one trick play stream;

selecting for download at least one video stream, at least one audio stream, at least one subtitle stream, and at least one trick play stream;

downloading the selected streams to a set of one or more files;

creating a local top level index file, where the local top level index file contains data identifying the set of files for the downloaded streams;

receiving a request for offline playback;

retrieving a downloaded video stream and a downloaded audio stream from the identified set of files using the local top level index file;

decoding the retrieved video and audio streams; and

playing back the decoded video and audio streams.

2. The playback device of claim 1 , wherein the video decoder application further causes the processor to perform the step of requesting digital rights management (DRM) information from a DRM server.

3. The playback device of claim 2 , wherein the DRM information binds the content to the playback device.

4. The playback device of claim 2 , wherein the DRM information binds the content to a user account.

5. The playback device of claim 2 , wherein the DRM information comprises a DRM header.

6. The playback device of claim 2 , wherein the video decoder application further causes the processor to perform the steps of receiving the requested DRM information, wherein decoding the retrieved video and audio streams comprises using the received DRM information during the offline playback.

7. The playback device of claim 1 , wherein the video decoder application further causes the processor to perform the steps of:

retrieving a downloaded subtitle stream using the local top level index file; and

playing back at least a portion of the downloaded subtitle stream.

8. The playback device of claim 1 , wherein the video decoder application further causes the processor to perform the steps of:

retrieving a downloaded trick play stream using the local top level index file; and

decoding and displaying at least a portion of the downloaded trick play stream.

9. The playback device of claim 8 , wherein the playing back of the at least a portion of the downloaded trick play stream is in response to receiving a request to search or seek within the decoded video stream.

10. The playback device of claim 1 , wherein at least a portion of the data from the top level index file is cached to create the local top level index file, wherein the cached portion is selected based upon the capabilities of the playback device.

11. The playback device of claim 1 , wherein the local top level index file is created based upon a set of permissions associated with the playback device and the saving of media content.

12. The playback device of claim 1 , wherein the local top level index file describes only the downloaded streams.

13. The playback device of claim 1 , wherein the selected streams are the highest quality streams playable by the device.

14. The playback device of claim 1 , wherein the at least one video stream is stored in a container file.

15. The playback device of claim 1 , wherein the at least one audio stream is stored in a container file.

16. The playback device of claim 1 , wherein the at least one subtitle stream is stored in a container file.

17. The playback device of claim 1 , wherein the at least one trick play stream is stored in a container file.

18. The playback device of claim 1 , wherein the video decoder application further causes the processor to perform the steps of downloading header information for at least one of the selected streams.

19. The playback device of claim 18 , wherein the header information comprises a DRM header.

20. A method for downloading media for offline playback, comprising:

obtaining a top level index file from a server, where the top level index file contains data describing a plurality of streams, and where the plurality of streams comprises:

at least one video stream;

at least one audio stream;

at least one subtitle stream; and

at least one trick play stream;

selecting for download at least one video stream, at least one audio stream, at least one subtitle stream, and at least one trick play stream;

downloading the selected streams to a set of one or more files;

creating a local top level index file, where the local top level index file contains data identifying the set of files for the downloaded streams;

receiving a request for offline playback;

retrieving a downloaded video stream and a downloaded audio stream from the identified set of files using the local top level index file;

decoding the retrieved video and audio streams; and

playing back the decoded video and audio streams.

21. The method for downloading media for offline playback of claim 20 further comprising, requesting digital rights management (DRM) information from a DRM server.

Assignments (5)
CHANGE OF PRINCIPAL PLACE OF BUSINESS Recorded Mar 5, 2019
From: DIVX, LLC
To: DIVX, LLC
Reel/Frame 050407/0104 →
CHANGE OF NAME Recorded Mar 5, 2018
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 045498/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2018
From: SONIC IP, INC.; DIVX, LLC
To: DIVX CF HOLDINGS LLC
Reel/Frame 045310/0020 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2017
From: ZISKIND, BEN; CEN, SONG; LIN, TUNG; BRANESS, JASON; SOROUSHIAN, KOUROSH
To: DIVX, LLC
Reel/Frame 043667/0540 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2017
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 043667/0564 →