Trick mode support for VOD with long intra-frame intervals
AssigneeMicrosoft Corporation
InventorsJames Armand Baldwin, Peter T. Barrett
Life of this patent
Estimating the term…
Abstract
A video-on-demand system encodes multiple video streams from media content, such that the video streams have staggered intra-frame intervals. When a client device requests a video stream, the video-on-demand system selects one of the multiple video streams based on the position of the intra-frames, and transmits the selected video stream to the client device.
Claims28
A method for encoding video streams comprising:
- receiving, at a video on-demand server, media content to be encoded;
- determining, at the video on-demand server, a number of video streams to encode for each of a plurality of display speeds based on an intra-frame interval for each of the video streams, the number of video streams that is determined is greater than one;
- determining, at the video on-demand server, a stagger value based on the number of video streams for each of the plurality of display speeds and the intra-frame interval;
- and
- encoding the media content, at the video on-demand server, into each of the number of video streams for each of the plurality of display speeds, wherein a first video stream encoded for a particular display speed includes intra-frames at a particular intra-frame interval, and wherein a second video stream encoded for the particular display speed includes intra-frames at the particular intra-frame interval, the intra-frames of the second video stream being staggered by the stagger value with respect to the intra-frames of the first video stream.
A method for encoding video streams comprising:
- receiving, at the video on-demand server, media content to be encoded;
- determining, at the video on-demand server, a number of video streams to encode based on an intra-frame interval for each of the video streams;
- determining, at the video on-demand server, a stagger value based on the number of video streams and the intra-frame interval;
- encoding the media content, at the video on-demand server, into each of a first set of multiple video streams such that each of the multiple video streams in the first set have a first display speed, wherein a first video stream of the video streams of the first set includes intra-frames at the intra-frame interval, and wherein a second video stream of the video streams of the first set includes intra-frames at the intra-frame interval, the intra-frames of the second video stream of the video streams of the first set being staggered by the stagger value with respect to the intra-frames of the first video stream of the video streams of the first set;
- and
- encoding the media content, at the video on-demand server, into each of a second set of multiple video streams such that each of the multiple video streams in the second set have a second display speed, wherein a first video stream of the video streams of the second set includes intra-frames at the intra-frame interval, and wherein a second video stream of the video streams of the second set includes intra-frames at the intra-frame interval, the intra-frames of the second video stream of the video streams of the second set being staggered by the stagger value with respect to the intra-frames of the first video stream of the video streams of the second set.
A system comprising:
- a processing device;
- an interface configured to receive media content to be encoded;
- and
- a media encoder configured to:
- determine a number of video streams to encode for each of a plurality of display speeds based on an intra-frame interval for each of the video streams;
- determine a stagger value based on the number of video streams for each of the plurality of display speeds and the intra-frame interval;
- and
- encode the media content into each of the number of video streams for each of the plurality of display speeds, wherein a first video stream encoded for a particular display speed includes intra-frames at the intra-frame interval, and wherein a second video stream encoded for the particular display speed includes intra-frames at the intra-frame interval, the intra-frames of the second video stream being staggered by the stagger value with respect to the intra-frames of the first video stream.
A system comprising:
- a processing device;
- a repository configured to store:
- multiple video streams of a first speed, each comprising the same media content, the multiple video streams of the first speed encoded to have staggered intra-frame intervals, relative one video stream to another, whereby each of the video streams of the first speed includes intra-frames at the same intra-frame interval;
- and
- multiple video streams of a second speed, each comprising the same media content, the multiple video streams of the second speed encoded to have staggered intra-frame intervals, relative one video stream to another, whereby each of the video streams of the second speed includes intra-frames at the same intra-frame interval;
- and
- a stream selector configured to:
- receive a request for the media content to be played at the second speed;
- examine the multiple video streams of the second speed to identify a particular video stream of the second speed having an intra-frame nearest to a current position of the media content;
- and
- select the particular video stream for transmission to a client device.
A system comprising:
- a processing device;
- a media encoder configured to:
- determine a number of video streams to encode for each of a plurality of display speeds based on an intra-frame interval for each of the video streams;
- determine a stagger value based on the number of video streams for each of a plurality of display speeds and the intra-frame interval;
- and
- encode particular media content into the number of video streams for each of a plurality of display speeds, each comprising the particular media content, wherein at least two video streams are encoded for a particular display speed such that the intra-frame intervals are staggered, relative one of the two video streams to the other of the two video streams;
- a repository configured to store the video streams;
- a stream selector configured to select one of the video streams;
- and
- a transmitter for transmitting the one of the multiple video streams to a client device.
A video encoding system comprising:
- a processing device;
- means for receiving media content;
- means for determining a number of video streams to encode based on popularity of the media content;
- means for determining a stagger value based on the number of video streams and an intra-frame interval;
- and
- means for encoding the media content into each of the number of media streams, wherein a first of the video streams includes intra-frames at the intra-frame interval, and wherein a second of the video streams includes intra-frames at the intra-frame interval, the intra-frames of the second video stream being staggered by the stagger value with respect to the intra-frames of the first video stream, the first of the video streams and the second of the video streams both encoded for a particular display speed.
One or more computer storage media comprising computer executable instructions that, when executed, direct a computing system to perform a method comprising:
- receiving a particular media content;
- determining a number of video streams to encode for each of a plurality of display speeds based on an intra-frame interval for each of the video streams;
- determining a stagger value based on the number of video streams for each of a plurality of display speeds and the intra-frame interval;
- and
- encoding the particular media content into each of the number of video streams for each of a plurality of display speeds, wherein a first of the video streams, encoded for a particular display speed, includes intra-frames at the intra-frame interval, and wherein a second of the video streams, also encoded for the particular display speed, includes intra-frames at the intra-frame interval, the intra-frames of the second video stream being staggered by the stagger value with respect to the intra-frames of the first video stream.
One or more computer storage media comprising computer executable instructions that, when executed, direct a computing system to perform a method comprising:
- determining a number of video streams to encode based on popularity of particular media content;
- determining a standard intra-frame interval;
- determining a stagger distance;
- and
- encoding the particular media content into each of multiple video streams, each comprising the same media content and having a common display speed, such that an intra-frame interval of each of the multiple video streams is equal to the standard intra-frame interval and a position of an intra-frame in one of the video streams differs by an integer multiple of the stagger distance from a position of an intra-frame in another one of the video streams, wherein each of the positions is measured from a beginning of the media content.
Dependencies are inferred from the claim text.