Optimized client side rate control and indexed file layout for streaming media
First Claim
1. An indexed file layout for segmented streaming of multimedia content, the layout comprising:
- one or more files containing index information for a program, the index information comprising;
program description information describing the program, wherein the program description information comprises a duration of the program and track information for each audio and video track in the program; and
streaming segment index information describing each streaming segment of the program, wherein the streaming segment index information comprises, for each streaming segment;
a start position of the streaming segment; and
an indication of bitrates for each available streaming segment encoding of the streaming segment, wherein a plurality of different bitrates are available for at least one streaming segment; and
one or more other files containing streaming segments of the program, wherein each streaming segment of the program is encoded at one or more bitrates, corresponding to one or more available streaming segment encodings, independently of other streaming segments of the program, wherein the layout supports switching controlled by a client computing device between different bitrates when transitioning between different streaming segments of the program, wherein bitrate selection decisions are exclusively controlled by client-side rate control software and/or hardware of the client computing device, and wherein the client computing device downloads the one or more files containing index information for the program and uses the downloaded index information for the switching and bitrate selection decisions;
wherein the program comprises one or more audio tracks and one or more video tracks, wherein at least one streaming segment of the program is encoded at a plurality of different bitrates, and wherein at least one streaming segment of the program is encoded at a different number of bitrates than at least one other streaming segment of the program; and
wherein the program is segmented into the one or more streaming segments, wherein each of the one or more streaming segments covers a contiguous time range of corresponding tracks of the program, and wherein all of the one or more streaming segments of the program combine to cover the program.
2 Assignments
0 Petitions
Accused Products
Abstract
An indexed file layout, comprising index information, is defined for segmented streaming of multimedia content. The index information can comprise program description information and streaming segment index information. In addition, the layout can comprise files containing streaming segments of the program, where the streaming segments are each encoded at one or more bitrates independently of other streaming segments of the program. The layout supports client switching between different bitrates at segment boundaries. Optimized client-side rate control of streaming content can be provided by defining a plurality of states, selecting available paths based on constraint conditions, and selecting a best path through the states (e.g., based on a distortion measure). In one client-side rate control solution states correspond to a specific bitrate of a specific streaming segment, and in another client-side rate control solution states correspond to a measure of client buffer fullness.
398 Citations
12 Claims
-
1. An indexed file layout for segmented streaming of multimedia content, the layout comprising:
-
one or more files containing index information for a program, the index information comprising; program description information describing the program, wherein the program description information comprises a duration of the program and track information for each audio and video track in the program; and streaming segment index information describing each streaming segment of the program, wherein the streaming segment index information comprises, for each streaming segment; a start position of the streaming segment; and an indication of bitrates for each available streaming segment encoding of the streaming segment, wherein a plurality of different bitrates are available for at least one streaming segment; and one or more other files containing streaming segments of the program, wherein each streaming segment of the program is encoded at one or more bitrates, corresponding to one or more available streaming segment encodings, independently of other streaming segments of the program, wherein the layout supports switching controlled by a client computing device between different bitrates when transitioning between different streaming segments of the program, wherein bitrate selection decisions are exclusively controlled by client-side rate control software and/or hardware of the client computing device, and wherein the client computing device downloads the one or more files containing index information for the program and uses the downloaded index information for the switching and bitrate selection decisions; wherein the program comprises one or more audio tracks and one or more video tracks, wherein at least one streaming segment of the program is encoded at a plurality of different bitrates, and wherein at least one streaming segment of the program is encoded at a different number of bitrates than at least one other streaming segment of the program; and wherein the program is segmented into the one or more streaming segments, wherein each of the one or more streaming segments covers a contiguous time range of corresponding tracks of the program, and wherein all of the one or more streaming segments of the program combine to cover the program. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for providing an indexed file layout for segmented streaming of multimedia content, the method comprising:
-
dividing a program into streaming segments; storing one or more files containing the streaming segments of the program, wherein each streaming segment of the program is encoded at one or more bitrates, corresponding to one or more available streaming segment encodings, independently of other streaming segments of the program, wherein the layout supports switching controlled by a client computing device between different bitrates when transitioning between different streaming segments of the program, wherein bitrate selection decisions are exclusively controlled by client-side rate control software and/or hardware of the client computing device, wherein the program comprises one or more audio tracks and one or more video tracks, wherein at least one streaming segment of the program is encoded at a plurality of different bitrates, and wherein at least one streaming segment of the program is encoded at a different number of bitrates than at least one other streaming segment of the program; and storing one or more files containing index information for the program, the index information comprising; program description information describing the program, wherein the program description information comprises a duration of the program and track information for each audio and video track in the program; and streaming segment index information describing each streaming segment of the program, wherein the streaming segment index information comprises, for each streaming segment; a start position of the streaming segment; and an indication of bitrates for each available streaming segment encoding of the streaming segment, wherein a plurality of different bitrates are available for at least one streaming segment; wherein the client computing device downloads the one or more files containing index information for the program and uses the downloaded index information for the switching and bitrate selection decisions; and wherein the program is divided into the one or more streaming segments, wherein each of the one or more streaming segments covers a contiguous time range of corresponding tracks of the program, and wherein all of the one or more streaming segments of the program combine to cover the program. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification