METHOD AND APPARATUS FOR STREAMING MEDIA TO A PLURALITY OF ADAPTIVE CLIENT DEVICES
First Claim
1. A method of providing a media stream over data channel of a best effort transmission network that includes a wireless path to a plurality of client devices, each of the plurality of the client devices including a transceiver, a processor, a memory that includes a content buffer having a predetermined size, and an application that monitors the content buffer, the media stream obtained from a plurality of tracks each formed of sequentially encoded chunks that are encoded at one of a plurality of combinations of different bit rates and compression schemes, the method comprising the steps of:
- initiating at one of the plurality of client devices a request for the media stream;
responsive to the request, obtaining information on a set of the plurality of combinations for that one client device in the memory of the one client device and a first portion of the streaming media in the content buffer of the one client device, the first portion corresponding to one of the plurality of combinations of sequentially encoded chunks;
beginning to render, at the one client device, the streaming media using the plurality of sequentially encoded chunks corresponding to the one combination, the step of rendering causing a reduction in available sequentially encoded chunks within the content buffer; and
determining, at the one client device using the application, whether a current combination is appropriate to continue rendering the streaming media using information obtained from a fullness of the content buffer, said information not including information obtained from parsing a bitstream of data within the sequentially encoded chunks;
if the current combination is appropriate, continuing to receive a further portion of the streaming media at the current combination in the content buffer, and continuing to render the first portion of the streaming media and the further portion of the streaming media using the sequentially encoded chunks corresponding to the current combination; and
if the current combination is not appropriate, initiating at the one client devices another request for the streaming media at another of the combinations that is different than the current combination,responsive to the another request, obtaining another portion of the streaming media in the content buffer of the one client device, the another portion including another plurality of sequentially encoded chunks corresponding to the another combination; and
beginning to render, at the one client device, the streaming media using the another portion of the streaming media after rendering the first portion of the streaming media; and
repeating the step of determining throughout providing remaining portions of the media stream.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention relates to a method and apparatus for streaming media to a plurality of adaptive client devices. In one aspect there is provided a method of providing a media stream over data channel of a best effort transmission network that includes a wireless path to a plurality of client devices. In another aspect there is provided a method of encoding a stream of data into chunks, whereby the chunks are obtained by determining a break point between them that corresponds to a silence point. In another aspect, there is provided a method for creating a library of encoded media for a media stream and linking the library to a plurality of cell phone devices.
115 Citations
20 Claims
-
1. A method of providing a media stream over data channel of a best effort transmission network that includes a wireless path to a plurality of client devices, each of the plurality of the client devices including a transceiver, a processor, a memory that includes a content buffer having a predetermined size, and an application that monitors the content buffer, the media stream obtained from a plurality of tracks each formed of sequentially encoded chunks that are encoded at one of a plurality of combinations of different bit rates and compression schemes, the method comprising the steps of:
-
initiating at one of the plurality of client devices a request for the media stream; responsive to the request, obtaining information on a set of the plurality of combinations for that one client device in the memory of the one client device and a first portion of the streaming media in the content buffer of the one client device, the first portion corresponding to one of the plurality of combinations of sequentially encoded chunks; beginning to render, at the one client device, the streaming media using the plurality of sequentially encoded chunks corresponding to the one combination, the step of rendering causing a reduction in available sequentially encoded chunks within the content buffer; and determining, at the one client device using the application, whether a current combination is appropriate to continue rendering the streaming media using information obtained from a fullness of the content buffer, said information not including information obtained from parsing a bitstream of data within the sequentially encoded chunks; if the current combination is appropriate, continuing to receive a further portion of the streaming media at the current combination in the content buffer, and continuing to render the first portion of the streaming media and the further portion of the streaming media using the sequentially encoded chunks corresponding to the current combination; and if the current combination is not appropriate, initiating at the one client devices another request for the streaming media at another of the combinations that is different than the current combination, responsive to the another request, obtaining another portion of the streaming media in the content buffer of the one client device, the another portion including another plurality of sequentially encoded chunks corresponding to the another combination; and beginning to render, at the one client device, the streaming media using the another portion of the streaming media after rendering the first portion of the streaming media; and repeating the step of determining throughout providing remaining portions of the media stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of encoding a stream of data into a plurality of a plurality of tracks encoded with a plurality of combinations of different bit rates and compression schemes, each of the plurality of tracks including a plurality of encoded chunks that can be used by a plurality of client devices at a plurality of the media stream obtained from different bit rates comprising the steps of:
-
inputting the stream of data; operating upon the stream to create a plurality of sequential chunks corresponding to the stream, the step of operating including the steps of; determining, for each chunk, a window of time to cause an end to the chunk; and within the window of time, determining a break point that corresponds to a silence point. encoding each of the plurality of sequential chunks to create the plurality of encoded chunks that support the plurality of client devices at a plurality of different bit rates and compression schemes.
-
-
20. A method for creating a library of encoded media for a media stream and linking the library to a plurality of cell phone devices including the steps of:
-
receiving a plurality of sequential chunks corresponding to the media stream; inputting a plurality of variables for each of the different plurality of cell phone devices; determining a set of tracks corresponding to each of the plurality of cell phone devices based upon the plurality of variables; and encoding tracks that correspond to each of the tracks in each of the set of tracks, the step of encoding each set so that each track therein has a combination of different bit rates and compression schemes.
-
Specification