# US 9,247,311 B2 · Systems and methods for playing back alternative streams of protected content protected using common cryptographic information

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,247,311 B2
- Document ID: US9247311B2
- Status: Granted
- Kind: B2
- Application number: 14/564,003
- Filed: 2014-12-08
- Published: 2015-05-21
- Granted: 2016-01-26
- Earliest claimed: 2011-09-01
- Assignees: Sonic IP, Inc.
- Applicants: Sonic IP, Inc.
- Inventors: Michael George Kiefer; Eric William Grab; Jason Braness
- Web page: https://patentgrep.com/patent/US9247311B2

## CPC

- H04N 21/2347: involving video stream encryption
- H04L 9/0819: {Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) (network architectures or network communication protocols for key distribution in a packet data network H04L63/062)}
- H04L 9/0822: {using key encryption key}
- H04L 9/0861: {Generation of secret information including derivation or calculation of cryptographic keys or passwords}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/32: including means for verifying the identity or authority of a user of the system {or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04N 21/2541: {Rights Management (protecting software against unauthorised usage in a vending or licensing environment G06F21/10; security in data switching network management H04L41/28; security management or policies for network security H04L63/20; access security in wireless networks H04W12/08)}
- H04N 21/4408: involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
- H04N 21/4627: Rights management {associated to the content (security in data switching network management H04L41/28; security management or policies for network security H04L63/20; access security in wireless networks H04W12/08)}
- H04N 21/6334: for authorisation, e.g. by transmitting a key {(wireless communications network key management H04W12/04; wireless communications network access security H04W12/08)}
- H04N 21/64715: {Protecting content from unauthorized alteration within the network (verifying the information received for network security in communication control or processing H04L63/12; integrity in wireless network security H04W12/10)}
- H04L 2209/603: Digital right managament [DRM]
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 1

A source encoder, comprising:
a processor;
a non-volatile storage containing an encoding application;
wherein the encoding application directs the processor to:
receive a stream of video;
encode the stream of video as a plurality of alternative streams according to encoding parameters associated with each of the alternative streams, where each of the alternative streams comprises a plurality of encoded video frames;
obtain a common set of frame keys;
encrypt portions of several encoded video frames from each alternative stream using keys from the same common set of frame keys;
after encrypting the portions of encoded video frames, (1) write the encoded video frames of each alternative stream to a separate container file from a plurality of container files and (2) write DRM information to each separate container file that identifies the encrypted portions of several encoded video frames written to the separate container file;
store a copy of the common set of frame keys in each container file; and
upload the container files to a content distribution server for distribution to playback devices using adaptive bitrate streaming.

### Claim 2 (depends on 1)

The source encoder of claim 1, wherein
the alternative streams are alternative streams of protected video.

### Claim 3 (depends on 1)

The source encoder of claim 1, wherein the encoding application further directs the processor to:
provide a top level index file that identifies a container file containing each of the alternative streams.

### Claim 4 (depends on 3)

The source encoder of claim 3, wherein:
the container files containing each of the alternative streams comprise at least one header including the common set of frame keys and information that describes the encoding of the stream; and
the top level index file identifies the location of the at least one header within each container file.

### Claim 5 (depends on 4)

The source encoder of claim 4, wherein the set of frame keys comprises a plurality of frame keys.

### Claim 6 (depends on 1)

The source encoder of claim 1, wherein the encoding application further directs the processor to:
encrypt the common set of frame keys prior to storing the copy of the common set of frame keys in each container file.

### Claim 7 (depends on 1)

The source encoder of claim 1, wherein:
each container file containing one of the alternative streams further comprises an index.

### Claim 8 (depends on 1)

The source encoder of claim 1, wherein the container files are Matroska container files.

### Claim 9 (depends on 8)

The source encoder of claim 8, wherein the common set of frame keys is stored in a common DRM Header element contained within a Tracks element within each of the Matroska container files containing the alternative streams.

### Claim 10 (depends on 9)

The source encoder of claim 9, wherein:
the common set of frame keys is a set of encryption keys; and
the set of encryption keys is encrypted and stored within the DRM Header element.

### Claim 11 (depends on 10)

The source encoder of claim 10, wherein the encoding application configures the processor to:
provide, to a playback device, cryptographic information that can be used to unencrypt the set of encryption keys stored within the DRM Header element.

### Claim 12 (depends on 9)

The source encoder of claim 9, wherein the encoding application configures the processor to provide the DRM Header element to a playback device in response to a request for a Tracks element from one of the Matroska container files.

### Claim 13 (depends on 1)

The source encoder of claim 1, wherein:
each container file containing an alternative stream further comprises an index contained within a Cues element.

### Claim 14 (depends on 13)

The source encoder of claim 13, wherein the index comprises a plurality of CueTrackPosition elements that identify the location of a plurality of Cluster elements within the container file.

### Claim 15 (depends on 14)

The source encoder of claim 14, wherein:
each Cluster element contains a plurality of BlockGroup elements including encoded portions of content;
a CueTrack Position element indexes each Cluster element; and
each CueTrackPosition element includes the size of the Cluster element that it indexes.

### Claim 16 (depends on 1)

The source encoder of claim 1, wherein:
the alternative streams are alternative streams of protected video;
each of the container files containing an alternative stream of protected video includes a DRMInfo element in a BlockGroup element containing a protected frame of video, where the DRMInfo element indicates at least a portion of the protected frames of video that is encrypted and identifies at least a portion of the common set of frame keys used to access the at least one encrypted portion of the protected frame of video.

### Claim 17

A method of encoding streams of video for performing adaptive bitrate streaming using a source encoder, the method comprising:
receiving a stream of video using a source encoder;
encoding the stream of video as plurality of alternative streams according to encoding parameters associated with each of the alternative streams using the source encoder, where each of the alternative streams comprises a plurality of encoded video frames;
obtaining a common set of frame keys cryptographic information using the source encoder;
encrypting portions of several encoded video frames from each alternative stream using keys from the same common set of frame keys using the source encoder;
after encrypting the portions of encoded video frames, (1) writing the encoded video frames of each alternative stream to a separate container file from a plurality of container files and (2) writing DRM information to each separate container file that identifies the encrypted portions of several encoded video frames written to the separate container file using the source encoder;
storing a copy of using the common set of frame keys in each container file and using the source encoder cryptographic information; and
uploading the container files to a content distribution server for distribution to devices using the source encoder.

### Claim 18 (depends on 17)

The method of claim 17, wherein
the alternative streams are alternative streams of protected video.

### Claim 19 (depends on 17)

The method of claim 17 further comprising providing a top level index file that identifies a container file containing each of the alternative streams using the source encoder.
