P
US9900362B2ActiveUtilityPatentIndex 83

Methods and apparatus for reducing latency shift in switching between distinct content streams

Assignee: KISWE MOBILE INCPriority: Feb 11, 2014Filed: Nov 18, 2014Granted: Feb 20, 2018
Est. expiryFeb 11, 2034(~7.6 yrs left)· nominal 20-yr term from priority
Inventors:KIM JEONG HZANE FRANCIS XJANISZEWSKI THOMAS JSWELDENS WIMHO YUNG-LUNG
H04N 21/8456H04N 21/845H04N 21/2625H04N 21/4384H04N 21/23439H04L 65/80H04L 65/607H04L 65/605H04L 65/765H04L 65/70
83
PatentIndex Score
6
Cited by
41
References
17
Claims

Abstract

A method comprises receiving content from a source, and generating multiple content streams each comprising the received content. Each content stream includes segments comprising respective portions of the received content. Different segmenting is utilized in generating respective ones of the content streams such that the segments in each of the content streams are offset in time relative to corresponding segments in the other ones of the streams. For example, generating the multiple content streams may comprise segmenting n content streams such that each content stream comprises segments of length Ts with corresponding segments in adjacent ones of the content streams being offset from one another by an offset Tg. Such an arrangement ensures that latency shift upon switching between one of the content streams and another content stream in a different set of multiple content streams at a client device can be limited to a value approximated by Tg.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 receiving content from a first video source providing a first camera view of a live event; 
 generating a first set of multiple content streams each comprising the received content from the first video source and wherein each content stream of the first set comprises segments of length Ts with corresponding segments in adjacent ones of the content streams of the first set being offset in time relative to one another by an offset Tg; 
 receiving content from a second video source providing a second camera view of the live event; and 
 generating a second set of multiple content streams each comprising the received content from the second video source and wherein each content stream of the second set comprises segments of length Ts with corresponding segments in adjacent ones of the content streams of the second set being offset in time relative to one another by the offset Tg; 
 wherein Ts is an integer multiple of Tg and latency shift as seen at a client device when switching between the first and second camera views of the live event at the client device is controlled through selection of particular ones of the content streams of the first and second sets so as to be less than or equal to Tg; 
 wherein controlling latency shift so as to be less than or equal to Tg through selection of particular ones of the content streams of the first and second sets comprises: 
 responsive to receipt of a command directing the client device to switch from the first camera view to the second camera view, computing an offset index of a new content stream of the second set of content streams that will minimize latency shift relative to a current content stream of the first set of content streams; 
 generating an index file for the offset index; and 
 utilizing the index file to request the new content stream; 
 wherein computing the offset index comprises: 
 estimating a shift in offset index as a function of: an elapsed time Te from a beginning of a current segment a new content stream start-up delay Td; and the offset Tg; and 
 determining the offset index as a function of the estimated shift; and 
 wherein the receiving and generating are implemented in at least one processing device comprising a processor coupled to a memory. 
 
     
     
       2. The method of  claim 1  wherein the first and second video sources comprise respective live video sources. 
     
     
       3. The method of  claim 1  wherein generating the multiple content streams of a given one of the first and second sets comprises:
 encoding the received content in respective ones of a plurality of encoders; and 
 segmenting the encoded received content using staggered segmentation locations for respective ones of the content streams so as to implement the offset Tg between adjacent ones of the content streams of the given one of the first and second sets. 
 
     
     
       4. The method of  claim 3  wherein encoding the received content in respective ones of a plurality of encoders comprises encoding the received content utilizing substantially the same compression ratio in each of the plurality of encoders. 
     
     
       5. The method of  claim 1  wherein each of the segments of a given one of the content streams of one of the first and second sets comprises a keyframe as the first frame of the segment. 
     
     
       6. The method of  claim 1  wherein the controlled latency shift upon switching between the first and second camera views of the live event at the client device is achieved without requiring the client device to download more than one content stream at a given time. 
     
     
       7. The method of  claim 1  wherein the controlled latency shift upon switching between the first and second camera views of the live event at the client device is achieved without requiring additional overhead in content stream index files. 
     
     
       8. The method of  claim 1  wherein each of the segments of each of the multiple content streams of a given one of the first and second sets comprises a single keyframe. 
     
     
       9. The method of  claim 1  wherein each of the segments of each of the multiple content streams of a given one of the first and second sets comprises a plurality of keyframes. 
     
     
       10. The method of  claim 1  further comprising distributing the segments of each of the content streams of the first and second sets to multiple web servers such that each of the web servers receives all of the segments from each of the content streams of the first and second sets and maintains a separate index file for each of the content streams of the first and second sets. 
     
     
       11. An article of manufacture comprising a computer-readable storage medium having computer program code embodied therein, wherein the computer program code when executed in at least one processing device causes said at least one processing device:
 to receive content from a first video source providing a first camera view of a live event; 
 to generate a first set of multiple content streams each comprising the received content from the first video source and wherein each content stream of the first set comprises segments of length Ts with corresponding segments in adjacent ones of the content streams of the first set being offset in time relative to one another by an offset Tg; 
 to receive content from a second video source providing a second camera view of the live event; and 
 to generate a second set of multiple content streams each comprising the received content from the second video source and wherein each content stream of the second set comprises segments of length Ts with corresponding segments in adjacent ones of the content streams of the second set being offset in time relative to one another by the offset Tg; 
 wherein Ts is an integer multiple of Tg and latency shift as seen at a client device when switching between the first and second camera views of the live event at the client device is controlled through selection of particular ones of the content streams of the first and second sets so as to be less than or equal to Tg; 
 wherein controlling latency shift so as to be less than or equal to Tg through selection of particular ones of the content streams of the first and second sets comprises: 
 responsive to receipt of a command directing the client device to switch from the first camera view to the second camera view, computing an offset index of a new content stream of the second set of content streams that will minimize latency shift relative to a current content stream of the first set of content streams; 
 generating an index file for the offset index; and 
 utilizing the index file to request the new content stream; 
 wherein computing the offset index comprises: 
 estimating a shift in offset index as a function of: an elapsed time Te from a beginning of a current segment; a new content stream start-up delay Td; and the offset Tg; and 
 determining the offset index as a function of the estimated shift. 
 
     
     
       12. An apparatus comprising:
 at least one processing device comprising a processor coupled to a memory; 
 wherein said at least one processing device is configured: 
 to receive content from a first video source providing a first camera view of a live event; 
 to generate a first set of multiple content streams each comprising the received content from the first video source and wherein each content stream of the first set comprises segments of length Ts with corresponding segments in adjacent ones of the content streams of the first set being offset in time relative to one another by an offset Tg; 
 to receive content from a second video source providing a second camera view of the live event; and 
 to generate a second set of multiple content streams each comprising the received content from the second video source and wherein each content stream of the second set comprises segments of length Ts with corresponding segments in adjacent ones of the content streams of the second set being offset in time relative to one another by the offset Tg; 
 wherein Ts is an integer multiple of Tg and latency shift as seen at a client device when switching between the first and second camera views of the live event at the client device is controlled through selection of particular ones of the content streams of the first and second sets so as to be less than or equal to Tg; 
 wherein controlling latency shift so as to be less than or equal to Tg through selection of particular ones of the content streams of the first and second sets comprises: 
 responsive to receipt of a command directing the client device to switch from the first camera view to the second camera view, computing an offset index of a new content stream of the second set of content streams that will minimize latency shift relative to a current content stream of the first set of content streams; 
 generating an index file for the offset index; and 
 utilizing the index file to request the new content stream; 
 wherein computing the offset index comprises: 
 estimating a shift in offset index as a function of: an elapsed time Te from a beginning of a current segment a new content stream start-up delay Td; and the offset Tg; and 
 determining the offset index as a function of the estimated shift. 
 
     
     
       13. The apparatus of  claim 12  wherein said at least one processing device comprises a video server. 
     
     
       14. The apparatus of  claim 13  wherein the video server comprises:
 a plurality of encoders each having an input coupled to an output of a given one of the first and second video sources and configured to encode the received content; and 
 a plurality of segmenters associated with respective ones of the encoders and configured to segment the encoded received content using staggered segmentation locations for respective ones of the content streams so as to implement the offset Tg between adjacent ones of the content streams of the given one of the first and second sets. 
 
     
     
       15. A content delivery system comprising the apparatus of  claim 12 . 
     
     
       16. The apparatus of  claim 12  wherein each of the segments of a given one of the content streams of one of the first and second sets comprises a keyframe as the first frame of the segment. 
     
     
       17. The apparatus of  claim 12  wherein the controlled latency shift upon switching between the first and second camera views of the live event at the client device is achieved without requiring the client device to download more than one content stream at a given time.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.