Apparatus, system, and method for multi-bitrate content streaming
First Claim
1. An apparatus for multi-bitrate video and/or audio content streaming, the apparatus comprising an end user station, comprising:
- a content player, to be executed on the end user station, to playback videos, wherein each of the videos are encoded as a plurality of streamlets, wherein each of the plurality of streamlets is an encoded representation of a portion of one of the videos, and each streamlets representing each portion of one of the videos is encoded at a plurality of bitrates supported by the multi-bitrate content streaming;
a client module, to be executed on the end user station, coupled to the content player and to be coupled to a set of one or more servers over a network, wherein the client module is configured to request the streamlets for playback of the videos on the content player;
a timeline module to be executed on the end user station and configured to maintain a programming lineup of one or more of the videos, wherein the client module is configured to request the streamlets for playback of the one or more videos on the content player according to the programming lineup, wherein the timeline module is configured to maintain the programming lineup using information from a virtual timeline (VT) file anchored to a real-world time, wherein the VT file defines an order of playback of the one or more videos identified by one or more media extension (MX) files, wherein each of the one or more MX files describes a physical clip of video using multi-bitrate streamlet information, including location information of the streamlets of the respective physical clip of video and bitrate values of the streamlets of the respective physical clip of video, and wherein the client module is configured to use the location information of the one or more MX files when requesting the streamlets associated with the respective physical clip of video for playback on the content player,wherein the client module requests the streamlets for playback of one of the plurality of bitrates supported by the multi-bitrate content streaming based upon a current read ahead margin and a minimum safety margin.
8 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, system, and method for maintaining a programming lineup of adaptive-bitrate content streaming is provided. The apparatus includes a timeline module configured to maintain a programming lineup of media content available over a network. The media content may comprise a plurality of streamlets. The apparatus also includes at least one data module configured to maintain multi-bitrate streamlet information. The system includes the apparatus and a client module configured to acquire content based upon the programming lineup provided by the timeline module. The method includes maintaining a programming lineup of media content available over a network, and maintaining multi-bitrate streamlet information.
-
Citations
27 Claims
-
1. An apparatus for multi-bitrate video and/or audio content streaming, the apparatus comprising an end user station, comprising:
-
a content player, to be executed on the end user station, to playback videos, wherein each of the videos are encoded as a plurality of streamlets, wherein each of the plurality of streamlets is an encoded representation of a portion of one of the videos, and each streamlets representing each portion of one of the videos is encoded at a plurality of bitrates supported by the multi-bitrate content streaming; a client module, to be executed on the end user station, coupled to the content player and to be coupled to a set of one or more servers over a network, wherein the client module is configured to request the streamlets for playback of the videos on the content player; a timeline module to be executed on the end user station and configured to maintain a programming lineup of one or more of the videos, wherein the client module is configured to request the streamlets for playback of the one or more videos on the content player according to the programming lineup, wherein the timeline module is configured to maintain the programming lineup using information from a virtual timeline (VT) file anchored to a real-world time, wherein the VT file defines an order of playback of the one or more videos identified by one or more media extension (MX) files, wherein each of the one or more MX files describes a physical clip of video using multi-bitrate streamlet information, including location information of the streamlets of the respective physical clip of video and bitrate values of the streamlets of the respective physical clip of video, and wherein the client module is configured to use the location information of the one or more MX files when requesting the streamlets associated with the respective physical clip of video for playback on the content player, wherein the client module requests the streamlets for playback of one of the plurality of bitrates supported by the multi-bitrate content streaming based upon a current read ahead margin and a minimum safety margin. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 27)
-
-
9. A system for multi-bitrate video and/or audio content streaming, the system comprising:
-
a set of one or more servers configured to store videos, wherein each of the videos are encoded as a plurality of streamlets, wherein each of the streamlets is an encoded representation of a portion of one of the videos, and each streamlets representing each portion of one of the videos is encoded at a plurality of bitrates supported by the multi-bitrate content streaming; and an end user station to be coupled to the set of one or more servers over a network to stream one or more of the videos, wherein the end user stations comprises; a content player, to be executed on the end user station, to playback the streamed videos; a timeline module to be executed on the end user station and configured to maintain a programming lineup of one or more of the videos, wherein the timeline module is configured to maintain the programming lineup using information from a virtual timeline (VT) file anchored to a real-world time, wherein the VT file defines an order of playback of the one or more videos identified by one or more media extension (MX) files, wherein each of the one or more MX files describes a physical clip of video using multi-bitrate streamlet information, including location information of the streamlets of the respective physical clip of video and bitrate values of the streamlets of the respective physical clip of video, and wherein the client module is configured to use the location information of the one or more MX files when requesting the streamlets associated with the respective physical clip of video; and a client module, to be executed on the end user station, coupled to the content player and to be coupled to the set of one or more servers over the network, wherein the client module is configured to acquire the streamlets for playback of the one or more videos on the content player based upon the programming lineup provided by the timeline module, and wherein the client module is configured to use the location information of the one or more MX files when requesting the streamlets associated with the respective video for playback on the content player, wherein the client module requests the streamlets for playback of one of the plurality of bitrates supported by the multi-bitrate content streaming based upon a current read ahead margin and a minimum safety margin. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method for multi-bitrate video and/or audio content streaming, the method comprising:
-
maintaining, by an end user station, a programming lineup of one or more of videos, wherein said maintaining comprises maintaining the programming lineup using information from a virtual timeline (VT) file that is anchored to a real-world time and that defines an order of playback of the one or more videos, wherein the VT file identifies the one or more videos using one or more media extension (MX) files; maintaining, by the end user station, multi-bitrate streamlet information for each of the one or more videos in the one or more MX files, wherein the multi-bitrate streamlet information of each of the one or more MX files describes a physical clip of video, including location information of the streamlets of the respective physical clip of video and bitrate values of the streamlets of the respective physical clip of video; requesting, by the end user station, one or more of the streamlets for playback of the one or more videos according to the programming lineup, a current read ahead margin, and a minimum safety margin, and wherein said requesting comprises requesting the one or more streamlets of one of the videos using the location information of the respective one of the MX files; and presenting, by the end user station, the one or more videos according to the programming lineup by playing back on a content player the requested ones of the streamlets. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A computer program product comprising a computer useable non-transitory medium having a computer readable program, wherein the computer readable program when executed on a computer causes the computer to carry out operations for multi-bitrate content streaming, the operations comprising:
-
maintaining, by an end user station, a programming lineup of one or more of videos, wherein said maintaining comprises maintaining the programming lineup using information from a virtual timeline (VT) file that is anchored to a real-world time and that defines an order of playback of the one or more videos, wherein the VT file identifies the one or more videos using one or more media extension (MX) files; maintaining, by the end user station, multi-bitrate streamlet information for each of the one or more videos in the one or more MX files, wherein the multi-bitrate streamlet information of each of the one or more MX files describes a physical clip of video, including location information of the streamlets of the respective physical clip of video and bitrate values of the streamlets of the respective physical clip of video; requesting by the end user station, one or more of the streamlets for playback of the one or more videos according to the programming lineup, a current read ahead margin, and a minimum safety margin, and wherein said requesting comprises requesting the one or more streamlets of one of the videos using the location information of the respective one of the MX files; and presenting by the end user station, the one or more videos according to the programming lineup by playing back on a content player the requested ones of the streamlets in order of ascending playback time. - View Dependent Claims (22, 23, 24, 25)
-
-
26. An apparatus for multi-bitrate content streaming, the apparatus comprising:
-
maintaining, at an end user station, a programming lineup of one or more of videos, wherein said maintaining comprises maintaining the programming lineup using information from a virtual timeline (VT) file that is anchored to a real-world time and that defines an order of playback of the one or more videos, wherein the VT file identifies the one or more videos using one or more media extension (MX) files; means for maintaining, at the end user station, multi-bitrate streamlet information for each of the one or more videos in the one or more MX files, wherein the multi-bitrate streamlet information of each of the one or more MX files describes a physical clip of video, including location information of the streamlets of the respective physical clip of video and bitrate values of the streamlets of the respective physical clip of video; means for requesting, at the end user station, one or more of the streamlets for playback of the one or more videos according to the programming lineup, a current read ahead margin, and a minimum safety margin, and wherein said requesting means requests the one or more streamlets of one of the videos using the location information of the respective one of the MX files; and means for presenting, at the end user station, the one or more videos according to the programming lineup by playing back the requested ones of the streamlets in order of ascending playback time.
-
Specification