IP Library › Granted Patent US 8,510,460
Granted Patent B2
US 8,510,460 · App. 13/098,286 · Granted Aug 13, 2013

Reduced video player start-up latency in HTTP live streaming and similar protocols

Inventor: James Kong Hsu (Redwood City, CA)
Assignee: CBS Interactive Inc.
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 8,510,460
App. No.
13/098,286
Granted
Aug 13, 2013
Kind
B2
Abstract

Technology for processing an ordered sequence of frames of a media program intended for play in an HTTP Live Streaming (HLS) player. Processing a first ordered subset of frames of the sequence. Processing a second ordered subset of frames of the sequence separate from the first subset. The second subset following on the first forms a third ordered subset of frames of the media program. Processing the second subset includes creating a manifest file of the subset. The playing time of processed frames of the first subset is at least equal to the processing time of the second subset. Processing the first subset can include creating a manifest file of the subset. The media program can include ads (at least a pre-roll ad) and content. The first ordered subset can be the pre-roll ad. The second ordered subset can be the content and remaining ads (e.g., mid-roll and post roll).

Claims (66)

1. A computer-implemented method for processing an ordered sequence of frames of a media program, the media program for play in a media playing device operative to play the program from a streaming format, the method comprising:

segmenting a first ordered subset of frames of the ordered sequence into a plurality of segments;

creating a first manifest file based on the first ordered subset of frames, the manifest file comprising pointers to the plurality of segments;

responsive to receiving a request from the media playing device, transmitting the first manifest file to the media playing device;

concurrently to at least one of creating the first manifest file and the media playing device playing the first ordered subset of frames, converting a second ordered subset of frames of the ordered sequence into a streaming format, wherein a playing time of the first ordered subset of frames on the media playing device is at least equal to a converting time to convert the second ordered subset of frames to the streaming format;

creating a second manifest file based on the converted second ordered subset of frames; and

transmitting the second manifest file to the media playing device, wherein the media playing device plays the converted second ordered subset of frames based on the second manifest file after playing the first ordered subset of frames.

2. The method of claim 1 , wherein:

the media program comprises: at least one pre-roll ad and content;

the first ordered subset comprises a subset of the at least one pre-roll ad; and

the second ordered subset comprises a subset of the content.

3. The method of claim 1 , wherein:

the media playing device comprises an HLS player.

4. The method of claim 1 , wherein:

the first ordered subset is in a format other than an HLS format, and

segmenting the first ordered subset further comprises formatting the first ordered subset into the HLS format.

5. A non-transitory computer readable storage medium storing instructions executable by a processor, the instructions for processing an ordered sequence of frames of a media program, the media program formatted at least in part in a streaming format, the instructions when executed by the processor causing the processor to:

segment a first ordered subset of frames of the ordered sequence into a plurality of segments;

create a first manifest file based on the first ordered subset of frames, the manifest file comprising pointers to the plurality of segments;

responsive to receiving a request from the media playing device, transmitting the first manifest file to the media playing device;

concurrently to at least one of creating the first manifest file and the media playing device playing the first ordered subset of frames, converting a second ordered subset of frames of the ordered sequence into the streaming format, wherein a playing time of the first ordered subset of frames on the media playing device is at least equal to a converting time to convert the second ordered subset of frames to the streaming format;

creating a second manifest file based on the converted second ordered subset of frames; and

transmitting the second manifest file to the media playing device, wherein the media playing device plays the converted second ordered subset of frames based on the second manifest file after playing the first ordered subset of frames.

6. The computer program product of claim 5 , wherein:

the media program comprises: at least one pre-roll ad and content;

the first ordered subset comprises a subset of the at least one pre-roll ad; and

the second ordered subset comprises a subset of the content.

7. The computer program product of claim 5 , wherein:

the media playing device comprises an HLS player.

8. The computer program product of claim 5 , wherein:

the first ordered subset is in a format other than an HLS format, and

segmenting the first ordered subset further comprises formatting the first ordered subset into the HLS format.

9. A system for processing an ordered sequence of frames of a media program, the media program formatted at least in part in a streaming format, the system comprising:

a processor, and

a non-transitory computer-readable storage medium storing instructions that when executed by the processor cause the processor to:

segment a first ordered subset of frames of the ordered sequence into a plurality of segments;

creating a first manifest file based on the first ordered subset of frames, the manifest file comprising pointers to the plurality of segments;

responsive to receiving a request from the media playing device, transmitting the first manifest file to the media playing device;

concurrently to at least one of creating the first manifest file and the media playing device playing the first ordered subset of frames, converting a second ordered subset of frames of the ordered sequence into a streaming format, wherein a playing time of the first ordered subset of frames on the media playing device is at least equal to a converting time to convert the second ordered subset of frames to the streaming format;

creating a second manifest file based on the converted second ordered subset of frames; and

transmitting the second manifest file to the media playing device, wherein the media playing device plays the converted second ordered subset of frames based on the second manifest file after playing the first ordered subset of frames.

10. The system of claim 9 , wherein:

the media program comprises: at least one pre-roll ad and content;

the first ordered subset comprises a subset of the at least one pre-roll ad; and

the second ordered subset comprises a subset of the content.

11. The system of claim 9 , wherein:

the media playing device comprises an HLS player.

12. The system of claim 9 , wherein:

the first ordered subset is in a format other than an HLS format, and

segmenting the first ordered subset further comprises formatting the first ordered subset into the HLS format.

13. A computer-implemented method for processing an ordered sequence of frames of a media program, the media program comprising content and at least one pre-roll ad, the media program for play in a media playing device operative to play the program from a streaming format, the method comprising:

determining whether to process the media program using a single manifest approach or a multiple manifest approach, the single manifest approach utilizing a single manifest file for the media program and the multiple manifest approach using two or more manifest files for the media program, the determining based on estimated latencies associated with each of the single manifest approach and the multiple manifest approach;

responsive to the determining to process the media program using the multiple manifest approach:

segmenting a first ordered subset of frames of the ordered sequence into a plurality of segments;

creating a manifest file based on the first ordered subset of frames, the manifest file comprising pointers to the plurality of segments;

responsive to receiving a request from a media playing device, transmitting the first manifest file to the media playing device;

concurrently to creating the first manifest file and the media player playing the first ordered subset of frames, converting a second ordered subset of frames of the ordered sequence into a streaming format, wherein the playing time of the first ordered subset of frames on the media player is at least equal to a converting time to convert the second ordered subset of frames;

creating a second manifest file based on the converted second ordered subset of frames; and

responsive to the request from the media playing device, transmitting the second manifest file to the media playing device that received the first manifest file, wherein the media playing device plays the converted ordered subset of frames on the media player after playing the first ordered subset of frames.

14. The method of claim 13 , wherein determining whether to process the media program using the single manifest approach or the multiple manifest approach comprises:

estimating the startup latency associated with the single manifest approach;

estimating the startup latency associated with the multiple manifest approach;

estimating the total latency associated with the single manifest approach, and

estimating the total latency associated with the multiple manifest approach.

15. The method of claim 14 , wherein determining whether to process the media program using the single manifest approach or the multiple manifest approach further comprises:

processing the media program using the multiple manifest approach responsive to the startup latency for the single manifest approach being less than the startup latency for the multiple manifest approach, and the single manifest total latency being greater than the multiple manifest total latency plus a threshold latency.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2011
From: HSU, JAMES KONG
To: CBS INTERACTIVE, INC.
Reel/Frame 026205/0510 →
Continuity (1)
Related Publication 20120278497A1 · Nov 1, 2012