Adaptive streaming systems and methods for performing trick play
First Claim
1. A playback device, comprising:
- a set of one or more processors; and
a non-volatile storage containing an application for causing the set of one or more processors to perform the steps of;
obtaining top level index information identifying a plurality of alternative streams of video, an audio stream, and at least one trick play stream that are each stored in a separate container file, where;
each video container file containing a given stream from the plurality of alternative streams of video comprises;
portions of the given video stream within the video container file, where the portions of the given video stream comprise an encoded group of pictures that commences with a picture encoded without reference to another picture in the given video stream; and
a video container index, where entries in the video container index indicate sizes of portions of the given video stream within the video container file;
each trick play container file containing a given trick play stream from the at least one trick play stream comprises;
frames of the given trick play stream, where each frame of the given trick play stream is a picture encoded without reference to another picture in the trick play stream; and
a trick play container index, where entries in the trick play container index comprise a timecode and a location of a frame in the given track play stream;
requesting a video container index from a video container file containing a video stream from the plurality of alternative streams of video;
requesting at least one portion of the video stream from the plurality of alternative streams of video using at least one entry from the video container index;
decoding the at least one portion of the video stream from the plurality of alternative streams of video;
receiving at least one user instruction to perform a visual search of the media;
requesting a trick play container index from a trick play container file containing a trick play stream from the at least one trick play stream;
requesting at least one frame of video from the at least one trick play stream using at least one entry from the trick play container index; and
decoding and displaying the at least one frame of video from the at least one trick play stream.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for performing trick play functionality using trick play streams during adaptive bitrate streaming in accordance with embodiments of the invention are disclosed. One embodiment includes requesting a video container index from a video container file containing a video stream from a plurality of alternative streams of video; requesting at least one portion of the video stream using at least one entry from the video container index; decoding the at least one portion of the video stream; receiving at least one user instruction to perform a visual search of the media; requesting a trick play container index from a trick play container file containing a trick play stream; requesting at least one frame of video from the at least one trick play stream; and decoding and displaying the at least one frame of video from the trick play stream.
748 Citations
23 Claims
-
1. A playback device, comprising:
-
a set of one or more processors; and a non-volatile storage containing an application for causing the set of one or more processors to perform the steps of; obtaining top level index information identifying a plurality of alternative streams of video, an audio stream, and at least one trick play stream that are each stored in a separate container file, where; each video container file containing a given stream from the plurality of alternative streams of video comprises; portions of the given video stream within the video container file, where the portions of the given video stream comprise an encoded group of pictures that commences with a picture encoded without reference to another picture in the given video stream; and a video container index, where entries in the video container index indicate sizes of portions of the given video stream within the video container file; each trick play container file containing a given trick play stream from the at least one trick play stream comprises; frames of the given trick play stream, where each frame of the given trick play stream is a picture encoded without reference to another picture in the trick play stream; and a trick play container index, where entries in the trick play container index comprise a timecode and a location of a frame in the given track play stream; requesting a video container index from a video container file containing a video stream from the plurality of alternative streams of video; requesting at least one portion of the video stream from the plurality of alternative streams of video using at least one entry from the video container index; decoding the at least one portion of the video stream from the plurality of alternative streams of video; receiving at least one user instruction to perform a visual search of the media; requesting a trick play container index from a trick play container file containing a trick play stream from the at least one trick play stream; requesting at least one frame of video from the at least one trick play stream using at least one entry from the trick play container index; and decoding and displaying the at least one frame of video from the at least one trick play stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of playing back content on a playback device, comprising:
-
obtaining top level index information identifying a plurality of alternative streams of video, an audio stream, and at least one trick play stream that are each stored in a separate container file, where; each video container file containing a given stream from the plurality of alternative streams of video comprises; portions of the given video stream within the video container file, where the portions of the given video stream comprise an encoded group of pictures that commences with a picture encoded without reference to another picture in the given video stream; and a video container index, where entries in the video container index indicate sizes of portions of the given video stream within the video container file; each trick play container file containing a given trick play stream from the at least one trick play stream comprises; frames of the given trick play stream, where each frame of the given trick play stream is a picture encoded without reference to another picture in the trick play stream; and a trick play container index, where entries in the trick play container index comprise a timecode and a location of a frame in the given track play stream; requesting a video container index from a video container file containing a video stream from the plurality of alternative streams of video; requesting at least one portion of the video stream from the plurality of alternative streams of video using at least one entry from the video container index; decoding the at least one portion of the video stream from the plurality of alternative streams of video; receiving at least one user instruction to perform a visual search of the media; requesting a trick play container index from a trick play container file containing a trick play stream from the at least one trick play stream; requesting at least one frame of video from the at least one trick play stream using at least one entry from the trick play container index; and decoding and displaying the at least one frame of video from the at least one trick play stream. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A playback device, comprising:
-
a set of one or more processors; and a non-volatile storage containing an application for causing the set of one or more processors to perform the steps of; obtaining top level index information identifying a plurality of alternative streams of video, an audio stream, and at least one trick play stream that are each stored in a separate container file, where; each video container file containing a given stream from the plurality of alternative streams of video comprises; portions of the given video stream within the video container file, where the portions of the given video stream comprise an encoded group of pictures that commences with a picture encoded without reference to another picture in the given video stream; and a video container index, where entries in the video container index indicate sizes of portions of the given video stream within the video container file; each trick play container file containing a given trick play stream from the at least one trick play stream comprises; frames of the given trick play stream, where each frame of the given trick play stream is a picture encoded without reference to another picture in the trick play stream; and a trick play container index, where entries in the trick play container index comprise a timecode and a location of a frame in the given track play stream; requesting a video container index from a video container file containing a video stream from the plurality of alternative streams of video; requesting at least one portion of the video stream from the plurality of alternative streams of video using at least on entry from the video container index; decoding the at least one portion of the video stream from the plurality of alternative streams of video; receiving at least one user instruction to perform a visual search of the media indicating a time code; requesting a trick play container index from a trick play container file containing a trick play stream from the at least one trick play stream; requesting at least one frame of video from the at least one trick play stream using at least one entry from the trick play container index based upon the indicated time code; manipulating at least one timecode assigned to the at least one frame of video from the at least one trick play stream, where the at least one timecode is manipulated in order to achieve a rate of playback based on a desired rate for the visual search; and decoding and displaying the at least one frame of video from the at least one trick play stream in accordance with the at least one manipulated timecode.
-
Specification