IP Library Granted Patent US 9,094,737
Granted Patent B2
US 9,094,737 · App. 13/905,852 · Granted Jul 28, 2015

Network video streaming with trick play based on separate trick play files

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,094,737
App. No.
13/905,852
Granted
Jul 28, 2015
Kind
B2
Abstract

Network services encode multimedia content, such as video, into multiple adaptive bitrate streams of encoded video and a separate trick play stream of encoded video to support trick play features. The trick play stream is encoded at a lower encoding bitrate and frame rate than each of the adaptive bitrate streams. The adaptive bitrate streams and the trick play stream are stored in the network services. During normal content streaming and playback, a client device downloads a selected one of the adaptive bitrate streams from network serviced for playback at the client device. To implement a trick play feature, the client device downloads the trick play stream from the network services for trick play playback.

Claims (76)

1. A method of supporting video streaming with trick play, comprising:

encoding a video into multiple adaptive bitrate streams and a corresponding trick play stream, wherein each of the adaptive bitrate streams and the trick play stream comprises files of encoded video;

storing the files of encoded video for each of the adaptive bitrate streams and the trick play stream in sequences of successive container files, wherein each container file comprises a segment of encoded video;

receiving a playlist request for a selected one of the adaptive bitrate streams, wherein the playlist request includes a first time;

in response to the received playlist request, generating a playlist identifying a set of successive container files storing segments of encoded video from the selected adaptive bitrate stream, wherein the set of successive container files starts at the first time;

receiving a trick play playlist request for the trick play stream, wherein the trick play playlist request includes a second time and a trick play direction; and

in response to the received trick play playlist request, generating a trick play playlist identifying a different set of container files storing segments of encoded video from the trick play stream, wherein the different set of container files starts at the second time in an order based on the received trick play direction.

2. The method of claim 1 , wherein:

the encoded video in the files corresponding to the adaptive bitrate streams comprises encoded video frames, including non-key frames each encoded based on video from one or more previous video frames, and

key frames interspersed among the non-key frames, each of the key frames encoded independent of previous video frames; and

the encoded video in the files for the trick play stream comprises key frames without non-key frames.

3. The method of claim 1 , wherein:

the successive container files for each of the adaptive bitrate streams and the trick play stream are associated with successive time codes; and

the play list generated for the selected adaptive bitrate stream identifies the set of successive container files in the selected adaptive bitrate according using successive time codes greater than the first time code.

4. The method of claim 1 , wherein:

the encoding includes encoding the video based on a distinct combination of an encoding bitrate and a video frame rate for each stream; and

the encoding bit rate and video frame rate for the trick play stream are less than the encoding bitrates and video frame rates, respectively, for the adaptive bitrate streams.

5. The method of claim 1 , wherein:

the storing includes storing the sequences of successive container files at corresponding network addresses;

the play list identifying the set of successive container files of the selected stream includes a list of the network addresses of the set of successive container files; and

the playlist identifying the different set of successive container files of the trick play stream includes a list of the network addresses of the different set of successive container files.

6. The method of claim 3 , wherein:

the trick play direction is a rewind direction;

the second time is greater than the first time; and

the trick play playlist identifies the different set of container files in the trick play stream using successively decreasing time codes that are each less than the second time.

7. A system for supporting video streaming with trick play, comprising:

an encoder to encode video into multiple adaptive bitrate streams and a corresponding trick play stream, wherein each of the adaptive bitrate streams comprises files of encoded video;

a download server to store the files of encoded video for each of the adaptive bitrate streams and the trick play stream in sequences of successive container files, wherein each container file comprises a segment of encoded video; and

a management server to:

receive a playlist request for a selected one of the adaptive bitrate streams, wherein the playlist request includes a first time;

in response to the received playlist request, generate a playlist identifying a set of successive container files storing segments of encoded video from the selected adaptive bitrate stream, wherein the set of successive container files starts at the first time;

receive a trick play playlist request for the trick play stream, wherein the trick play playlist request includes a second time and a trick play direction; and

in response to the received trick play playlist request, generate a trick play playlist identifying a different set of container files storing segments of encoded video from the trick play stream, wherein the different set of container files starts at the second time in an order based on the received trick play direction.

8. The system of claim 7 , wherein:

the encoded video in the files corresponding to the adaptive bitrate streams comprises encoded video frames, including non-key frames each encoded based on video from one or more previous video frames, and

key frames interspersed among the non-key frames, each of the key frames encoded independent of previous video frames; and

the encoded video in the files for the trick play stream comprises key frames without non-key frames.

9. The system of claim 7 , wherein:

the successive container files for each of the adaptive bitrate streams and the trick play stream are associated with successive time codes; and

the play list generated for the selected adaptive bitrate stream identifies the set of successive container files in the selected adaptive bitrate stream using successive time codes greater than the first time code.

10. The system of claim 7 , wherein:

the encoder is further configured to encode the video based on a distinct combination of an encoding bitrate and a video frame rate for each stream; and

the encoding bit rate and video frame rate for the trick play stream are less than the encoding bitrates and video frame rates, respectively, for the adaptive bitrate streams.

11. The system of claim 7 , wherein:

the download server is configured to store the sequences of successive container files at corresponding network addresses;

the playlist identifying the set of successive container files of the selected stream includes a list of the network addresses of the set of successive container files; and

the playlist identifying the different set of successive container files of the trick play stream includes a list of the network addresses of the different set of successive container files.

12. The system of claim 9 , wherein:

the trick play direction is a rewind direction;

the second time is greater than the first time; and

the trick play playlist identifies the different set of container files in the trick play stream using successively decreasing time codes that are each less than the second time.

13. A non-transitory computer readable medium encoded with a computer program including instructions to cause a processor to:

encode video into multiple adaptive bitrate streams and a corresponding trick play stream, wherein each of the adaptive bitrate streams comprises files of encoded video;

store the files of encoded video for each of the adaptive bitrate streams and the trick play stream in sequences of successive container files, wherein each container file comprises a segment of encoded video;

receive a playlist request for a selected one of the adaptive bitrate streams, wherein the playlist request includes a first time;

in response to the received playlist request, generate a playlist identifying a set of successive container files storing segments of encoded video from the selected adaptive bitrate stream, wherein the set of successive container files starts at the first time;

receive a trick play playlist request for the trick play stream, wherein the trick play playlist request includes a second time and a trick play direction; and

in response to the received trick play playlist request, generate a trick play playlist identifying a different set of container files storing segments of encoded video from the trick play stream, wherein the different set of container files starts at the second time in an order based on the received trick play direction.

14. The computer readable medium of claim 13 , wherein:

the encoded video in the files corresponding to the adaptive bitrate streams comprises encoded video frames, including non-key frames each encoded based on video from one or more previous video frames, and

key frames interspersed among the non-key frames, each of the key frames encoded independent of previous video frames; and

the encoded video in the files for the trick play stream comprises key frames without non-key frames.

15. The computer readable medium of claim 13 , wherein:

the successive container files for each of the adaptive bitrate streams and the trick play stream are associated with successive time codes; and

the playlist generated for the selected adaptive bitrate stream identifies the set of successive container files in the selected adaptive bitrate stream using successive time codes greater than the first time code.

16. The computer readable medium of claim 13 , wherein:

the instruction to cause the processor to encode include instructions to cause the processor to encode the video based on a distinct combination of an encoding bitrate and a video frame rate for each stream; and

the encoding bit rate and video frame rate for the trick play stream are less than the encoding bitrates and video frame rates, respectively, for the adaptive bitrate streams.

17. The computer readable medium of claim 13 , wherein:

the instruction to cause the processor to store include instructions to cause the processor to store the sequences of successive container files at corresponding network addresses;

the playlist identifying the set of successive container files of the selected stream includes a list of the network addresses of the set of successive container files; and

the playlist identifying the different set of successive container files of the trick play stream includes a list of the network addresses of the different set of successive container files.

18. The computer readable medium of claim 15 , wherein:

the trick play direction is a rewind direction;

the second time is greater than the first time; and

the trick play playlist identifies the different set of container files in the trick play stream using successively decreasing time codes that are each less than the second time.

Assignments (6)
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 →
RELEASE OF SECURITY INTEREST Recorded Apr 9, 2014
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DIVX, LLC
Reel/Frame 032645/0559 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2014
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 032575/0144 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2014
From: SHIVADAS, ABHISHEK; BRAMWELL, STEPHEN R.
To: DIVX, LLC
Reel/Frame 032340/0494 →