USRE49290EActiveUtility

Method and apparatus for streaming media content to client devices

68
Assignee: Google Technology Holdings LLCPriority: Nov 20, 2012Filed: Nov 9, 2020Granted: Nov 8, 2022
Est. expiryNov 20, 2032(~6.4 yrs left)· nominal 20-yr term from priority
H04N 21/6581H04L 67/02H04N 21/2402H04L 65/75H04L 65/80H04N 21/2407H04N 21/25808H04N 21/2393H04L 65/60H04N 21/4825H04N 21/23439H04L 65/70
68
PatentIndex Score
0
Cited by
10
References
40
Claims

Abstract

A method includes providing a variant playlist file that identifies a plurality of variant streams each corresponding to a different encoding of a same media presentation; tracking a first set of media segments encoded at a first bitrate that correspond to a first playlist file for a first variant stream associated with the variant playlist file; responsive to a second encoded bitrate associated with a second set of media segments that correspond to a second variant stream being higher than the first encoded bitrate: determining a number of media segments to include in a plurality of media segments from the second set of media segments that correspond to the first set of media segments; and providing, to the client device, a second playlist file that identifies a plurality of media segments from the second set of media segments that correspond to respective ones of the first set of media segments.

Claims

exact text as granted — not AI-modified
What is claimed: 
     
       1. A method, comprising:
 identifying a first switching identifier associated with a first content stream transmitted to a client device; and   transmitting a second content stream to the client device, the second content stream starting with a data packet including a second switching identifier corresponding to the first switching identifier,   wherein the first switching identifier is placed at a predetermined time interval in the first content stream and the second switching identifier is placed at a predetermined time interval in the second content stream.   
     
     
       2. The method of  claim 1 , wherein identifying the first switching identifier associated with the first content stream transmitted to the client device comprises:
 determining, during transmission of the first content stream to the client device, to switch from the first content stream to the second content stream; and   responsive to the determining, searching data packets of the first content stream for the first switching identifier.   
     
     
       3. The method of  claim 2 , wherein determining to switch from the first content stream to the second content stream comprises:
 receiving an indication of available bandwidth for transmitting the first content stream to the client device.   
     
     
       4. The method of  claim 1 , wherein the first content stream is transmitted via a first multicast channel and the second content stream is transmitted via a second multicast channel, the method further comprising:
 transmitting a message to the client device to cause the client device to switch from the first multicast channel to the second multicast channel to receive the second content stream.   
     
     
       5. The method of  claim 4 , wherein the message includes a multicast address associated with the second multicast channel. 
     
     
       6. The method of  claim 4 , wherein transmitting the second content stream to the client device comprises:
 transmitting the second content stream to the client device using the second multicast channel.   
     
     
       7. The method of  claim 1 , wherein a bit rate at which the first content stream is encoded is different from a bit rate at which the second content stream is encoded. 
     
     
       8. The method of  claim 1 , wherein the first content stream and the second content stream represent identical content. 
     
     
       9. An apparatus, comprising:
 a processor configured to execute instructions stored in a non-transitory storage medium to:
 identify a first switching identifier associated with a first content stream transmitted to a client device; and 
 transmit a second content stream to the client device, the second content stream starting with a data packet including a second switching identifier corresponding to the first switching identifier, 
 wherein the first switching identifier is placed at a predetermined time interval in the first content stream and the second switching identifier is placed at a predetermined time interval in the second content stream. 
   
     
     
       10. The apparatus of  claim 9 , wherein the instructions to identify the first switching identifier associated with the first content stream transmitted to the client device include instructions to:
 determine, during transmission of the first content stream to the client device, to switch from the first content stream to the second content stream; and   responsive to the determination, search data packets of the first content stream for the first switching identifier.   
     
     
       11. The apparatus of  claim 10 , wherein the instructions to determine to switch from the first content stream to the second content stream include instructions to:
 receive an indication of available bandwidth for transmitting the first content stream to the client device.   
     
     
       12. The apparatus of  claim 9 , wherein the first content stream is transmitted via a first multicast channel and the second content stream is transmitted via a second multicast channel, wherein the instructions include instructions to:
 transmit a message to the client device to cause the client device to switch from the first multicast channel to the second multicast channel to receive the second content stream.   
     
     
       13. The apparatus of  claim 12 , wherein the message includes a multicast address associated with the second multicast channel, wherein the instructions to transmit the second content stream to the client device include instructions to:
 transmit the second content stream to the client device using the second multicast channel.   
     
     
       14. The apparatus of  claim 9 , wherein a bit rate at which the first content stream is encoded is different from a bit rate at which the second content stream is encoded, wherein the first content stream and the second content stream represent identical content. 
     
     
       15. A non-transitory computer-readable storage medium including executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the operations comprising:
 identifying a first switching identifier associated with a first content stream transmitted to a client device; and   transmitting a second content stream to the client device, the second content stream starting with a data packet including a second switching identifier corresponding to the first switching identifier,   wherein the first switching identifier is placed at a predetermined time interval in the first content stream and the second switching identifier is placed at a predetermined time interval in the second content stream.   
     
     
       16. The non-transitory computer-readable storage medium of  claim 15 , wherein the operations for identifying the first switching identifier associated with the first content stream transmitted to the client device comprise:
 determining, during transmission of the first content stream to the client device, to switch from the first content stream to the second content stream; and   responsive to the determining, searching data packets of the first content stream for the first switching identifier.   
     
     
       17. The non-transitory computer-readable storage medium of  claim 16 , wherein the operations for determining to switch from the first content stream to the second content stream comprise:
 receiving an indication of available bandwidth for transmitting the first content stream to the client device.   
     
     
       18. The non-transitory computer-readable storage medium of  claim 15 , wherein the first content stream is transmitted via a first multicast channel and the second content stream is transmitted via a second multicast channel, the operations further comprising:
 transmitting a message to the client device to cause the client device to switch from the first multicast channel to the second multicast channel to receive the second content stream.   
     
     
       19. The non-transitory computer-readable storage medium of  claim 18 , wherein the message includes a multicast address associated with the second multicast channel, wherein the operations for transmitting the second content stream to the client device comprise:
 transmitting the second content stream to the client device using the second multicast channel.   
     
     
       20. The non-transitory computer-readable storage medium of  claim 15 , wherein a bit rate at which the first content stream is encoded is different from a bit rate at which the second content stream is encoded, wherein the first content stream and the second content stream represent identical content. 
     
     
       21. A method for providing media segments from multiple variant streams, the method comprising:
 providing, to a client device, a variant playlist file that identifies a plurality of variant streams each corresponding to a different encoding of a same media presentation;   tracking a first set of media segments that correspond to a first playlist file for a first variant stream associated with the variant playlist file, the first set of media segments being encoded at a first encoded bitrate; and   responsive to a second encoded bitrate associated with a second set of media segments that correspond to a second variant stream being higher than the first encoded bitrate:
 determining, based on an amount of network bandwidth available for the client device, a number of media segments to include in a plurality of media segments from the second set of media segments that correspond to the first set of media segments; and 
 providing, to the client device, a second playlist file that identifies a plurality of media segments from the second set of media segments that correspond to respective ones of the first set of media segments. 
   
     
     
       22. The method of claim 21, further comprising, responsive to the second encoded bitrate being lower than the first encoded bitrate, providing, to the client device, the second playlist file that identifies the plurality of media segments from the second set of media segments, wherein the second playlist file identifies only media segments having sequence numbers that exceed a highest sequence number of the first set of media segments. 
     
     
       23. The method of claim 21, further comprising dynamically creating the second playlist file for the client device in response to a request for the second playlist file. 
     
     
       24. The method of claim 23, wherein the media presentation is a video on demand presentation, and the first playlist file identifies all media segments for the media presentation. 
     
     
       25. The method of claim 21, wherein the plurality of media segments from the second set of media segments is identified using at least one of a set of uniform resource locators or a set of information tags corresponding to the plurality of media segments from the second set of media segments. 
     
     
       26. The method of claim 21, wherein a number of the plurality of media segments identified in the second playlist file is less than a number of media segments in the first set of media segments. 
     
     
       27. The method of claim 21, wherein determining the number of media segments to include in the plurality of media segments from the second set of media segments is based on an amount of media content stored in a buffer of the client device. 
     
     
       28. The method of claim 21, wherein each media segment comprises a group of pictures that begins with an instantaneous decoder refresh frame. 
     
     
       29. The method of claim 21, wherein each media segment is delivered to the client device using hypertext transfer protocol. 
     
     
       30. The method of claim 21, wherein each media segment has an associated sequence number and wherein a first media segment from the first set of media segments and a second media segment from the second set of media segments have a same sequence number. 
     
     
       31. A system for providing media segments from multiple variant streams, the system comprising:
 a processor; and   a non-transitory computer-readable medium storing instructions executable by the processor to perform steps of:
 providing, to a client device, a variant playlist file that identifies a plurality of variant streams each corresponding to a different encoding of a same media presentation; 
 tracking a first set of media segments that correspond to a first playlist file for a first variant stream associated with the variant playlist file, the first set of media segments being encoded at a first encoded bitrate; and 
 responsive to a second encoded bitrate associated with a second set of media segments that correspond to a second variant stream being higher than the first encoded bitrate:
 determining, based on an amount of network bandwidth available for a client device, a number of media segments to include in a plurality of media segments from the second set of media segments that correspond to the first set of media segments; and 
 providing, to the client device, a second playlist file that identifies a plurality of media segments from the second set of media segments that correspond to respective ones of the first set of media segments. 
 
   
     
     
       32. The system of claim 31, wherein the instructions are executable by the processor to perform the further steps of, responsive to the second encoded bitrate being lower than the first encoded bitrate, providing, to the client device, the second playlist file that identifies the plurality of media segments from the second set of media segments, wherein the second playlist file identifies only media segments having sequence numbers that exceed a highest sequence number of the first set of media segments. 
     
     
       33. The system of claim 31, wherein the instructions are executable by the processor to perform the further steps of dynamically creating the second playlist file for the client device in response to a request for the second playlist file. 
     
     
       34. The system of claim 33, wherein the media presentation is a video on demand presentation, and the first playlist file identifies all media segments for the media presentation. 
     
     
       35. The system of claim 31, wherein the plurality of media segments from the second set of media segments is identified using at least one of a set of uniform resource locators or a set of information tags corresponding to the plurality of media segments from the second set of media segments. 
     
     
       36. The system of claim 31, wherein a number of the plurality of media segments identified in the second playlist file is less than a number of media segments in the first set of media segments. 
     
     
       37. The system of claim 31, wherein determining the number of media segments to include in the plurality of media segments from the second set of media segments is based on an amount of media content stored in a buffer of the client device. 
     
     
       38. The system of claim 31, wherein each media segment comprises a group of pictures that begins with an instantaneous decoder refresh frame. 
     
     
       39. The system of claim 31, wherein each media segment is delivered to the client device using hypertext transfer protocol. 
     
     
       40. The system of claim 31, wherein each media segment has an associated sequence number and wherein a first media segment from the first set of media segments and a second media segment from the second set of media segments have a same sequence number.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.