IP Library Granted Patent US 10,225,588
Granted Patent B2
US 10,225,588 · App. 16/136,183 · Granted Mar 5, 2019

Playback devices and methods for playing back alternative streams of content protected using a common set of cryptographic keys

Inventors: Michael George Kiefer (Lake Havasu City, AZ); Eric William Grab (San Diego, CA); Jason Braness (San Diego, CA)
Assignee: DIVX, LLC
H04N21/2347H04L9/0819H04L9/0822H04L9/0861H04L9/14H04L9/32H04L63/0428H04N21/2541H04N21/4408H04N21/4627H04N21/6334H04N21/64715H04L2209/603
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,225,588
App. No.
16/136,183
Granted
Mar 5, 2019
Kind
B2
Abstract

Systems and methods for performing adaptive bitrate streaming using alternative streams of protected content in accordance with embodiments of the invention are described. One embodiment of the invention includes a processor, and memory containing a client application. In addition, the client application configures the processor to: request a top level index file identifying a plurality of alternative streams of protected content, where each of the alternative streams of protected content are encrypted using common cryptographic information; obtain the common cryptographic information; request portions of content from at least the plurality of alternative streams of protected content; access the protected content using the common cryptographic information; and playback the content.

Claims (71)

1. A playback device for playing protected content from a plurality of alternative streams, comprising:

a set of one or more processors; and

a non-volatile storage containing an application for causing the set of one or more processors to perform the steps of:

obtaining a top level index file identifying a plurality of alternative streams of protected video, wherein each of the alternative streams of protected video includes partially encrypted video frames that are encrypted using a set of common keys comprising at least one key, and wherein the partially encrypted video frames contain encrypted portions and unencrypted portions of data;

obtaining a copy of the set of common keys;

detecting streaming conditions for the playback device;

selecting a stream from the plurality of alternative streams of protected video based on the detected streaming conditions;

receiving a container index that provides byte ranges for portions of the selected stream of protected video within an associated container file;

requesting portions of the selected stream of protected video based on the provided byte ranges;

locating encryption information that identifies encrypted portions of frames of video within the requested portions of the selected stream of protected video;

decrypting each encrypted portion of the frames of video identified within the located encryption information using the set of common keys; and

playing back the decrypted frames of video obtained from the requested portions of the selected stream of protected video.

2. The playback device of claim 1 , wherein the step of requesting portions of the selected stream further comprises the step of obtaining a container file containing protected video from at least one of the plurality of alternative streams, where the container file also includes encryption information that identifies portions of frames of video that are encrypted and a reference to at least one key from the set of common keys to utilize in accessing the encrypted portions of the frames of video.

3. The playback device of claim 1 , wherein the located encryption information comprises a reference to the start of an encrypted block of data.

4. The playback device of claim 3 , wherein the located encryption information further comprises the size of the encrypted block of data.

5. The playback device of claim 3 , wherein the located encryption information further comprises cryptographic information that can be utilized to access the encrypted portion of the frame.

6. The playback device of claim 5 , wherein the cryptographic information is a reference to at least one key from the set of common keys.

7. The playback device of claim 1 , wherein the application is further for causing the set of processors to perform the steps of:

detecting a change in the streaming conditions;

identifying a second alternative stream of protected video based on the detected change;

receiving a container index that provides byte ranges for portions of the second alternative stream of protected video within a second associated container file;

requesting portions of the second alternative stream of protected video based on the provided byte ranges;

decrypting each encrypted portion of the frames of video from the requested portions of the second alternative stream of protected video using the set of common keys; and

playing back the decrypted frames of video from the requested portions of the second alternative stream of protected video.

8. The playback device of claim 1 , wherein the application is further for causing the set of processors to perform the steps of:

transmitting a request for content to a set of one or more content distribution servers; and

receiving the content from the set of one or more content distribution servers.

9. The playback device of claim 8 , wherein the application is further for causing the set of processors to perform the steps of:

transmitting a request for cryptographic information including the set of common keys to a set of one or more DRM servers; and

receiving the cryptographic information from the set of one or more DRM servers.

10. The playback device of claim 1 , wherein the application is further for causing the set of processors to perform the step of obtaining the container index from at least one file selected from the group consisting of: the associated container file containing the selected stream of protected content; and a separate file to the associated container file containing the selected stream of protected content.

11. The playback device of claim 1 , wherein the common set of keys comprises a plurality of keys.

12. A method for playing protected content from a plurality of alternative streams on a playback device, the method comprising:

obtaining a top level index file identifying a plurality of alternative streams of protected video, wherein each of the alternative streams of protected video includes partially encrypted video frames that are encrypted using a set of common keys comprising at least one key, and wherein the partially encrypted video frames contain encrypted portions and unencrypted portions of data;

obtaining a copy of the set of common keys;

detecting streaming conditions for the playback device;

selecting a stream from the plurality of alternative streams of protected video based on the detected streaming conditions;

receiving a container index that provides byte ranges for portions of the selected stream of protected video within an associated container file;

requesting portions of the selected stream of protected video based on the provided byte ranges;

locating encryption information that identifies encrypted portions of frames of video within the requested portions of the selected stream of protected video;

decrypting each encrypted portion of the frames of video identified within the located encryption information using the set of common keys; and

playing back the decrypted frames of video obtained from the requested portions of the selected stream of protected video using a decoder.

13. The method of claim 12 , wherein requesting portions of the selected stream further comprises obtaining a container file containing protected video from at least one of the plurality of alternative streams, where the container file also includes encryption information that identifies portions of frames of video that are encrypted and a reference to at least one key from the set of common keys to utilize in accessing the encrypted portions of the frames of video.

14. The method of claim 12 , wherein the located encryption information comprises a reference to the start of an encrypted block of data.

15. The method of claim 14 , wherein the located encryption information further comprises the size of the encrypted block of data.

16. The method of claim 14 , wherein the located encryption information further comprises cryptographic information that can be utilized to access the encrypted portion of the frame.

17. The method of claim 16 , wherein the cryptographic information is a reference to at least one key from the set of common keys.

18. The method of claim 12 further comprising:

detecting a change in the streaming conditions;

identifying a second alternative stream of protected video based on the detected change;

receiving a container index that provides byte ranges for portions of the second alternative stream of protected video within a second associated container file;

requesting portions of the second alternative stream of protected video based on the provided byte ranges;

decrypting each encrypted portion of the frames of video from the requested portions of the second alternative stream of protected video using the set of common keys; and

playing back the decrypted frames of video from the requested portions of the second alternative stream of protected video.

19. The method of claim 12 further comprising:

transmitting a request for content to a set of one or more content distribution servers; and

receiving the content from the set of one or more content distribution servers.

20. The method of claim 19 further comprising:

transmitting a request for cryptographic information including the set of common keys to a set of one or more DRM servers; and

receiving the cryptographic information from the set of one or more DRM servers.

21. The method of claim 12 further comprising obtaining the container index from at least one file selected from the group consisting of: the associated container file containing the selected stream of protected content; and a separate file to the associated container file containing the selected stream of protected content.

22. The method of claim 12 , wherein the common set of keys comprises a plurality of keys.

23. The playback device of claim 1 , wherein:

the container index is part of a hierarchical index; and

the application is further for causing the set of processors to perform the step of:

obtaining a lower layer index that identifies the location of frames within a specific requested portion of the selected stream of protected video; and

identify partially encrypted video frames from within the specific requested portion of the selected stream using the lower layer index.

24. The method of claim 12 , wherein:

the container index is part of a hierarchical index; and

the method further comprises:

obtaining a lower layer index that identifies the location of frames within a specific requested portion of the selected stream of protected video; and identify partially encrypted video frames from within the specific requested portion of the selected stream using the lower layer index.

Assignments (5)
CHANGE OF NAME Recorded Mar 6, 2020
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 052034/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2018
From: KIEFER, MICHAEL GEORGE; GRAB, ERIC WILLIAM; BRANESS, JASON
To: DIVX, LLC
Reel/Frame 047831/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2018
From: DIVX, LLC
To: SONIC IP, INC
Reel/Frame 047831/0769 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2018
From: SONIC IP, INC
To: DIVX CF HOLDINGS LLC
Reel/Frame 047831/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2018
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 047831/0929 →
Continuity (6)
Continuation 15481340 · Apr 6, 2017
Continuation 14970412 · Dec 15, 2015
Continuation 14564003 · Dec 8, 2014
Continuation 13340623 · Dec 29, 2011
Provisional Application 61530305 · Sep 1, 2011
Related Publication 20190020907A1 · Jan 17, 2019
Cited By (7)
US 12,244,878 US 12,250,404 US 12,262,051 US 12,407,906 US 12,470,771 US 12,470,781 US 12,647,561