MPEG dual-channel decoder data and control protocols for real-time video streaming
First Claim
1. A method of producing a real-time video stream from stored MPEG encoded video clips, the MPEG encoded video clips being contained in data storage of a video server, the method comprising:
- reading segments of the MPEG encoded video clips from the data storage, the segments of the MPEG encoded video clips being decoded by respective first and second decoders in a decoder pair, the first decoder decoding at least a portion of a first MPEG encoded video clip and the second decoder decoding at least a portion of a second MPEG encoded video clip, the real-time video stream being obtained by operating a video switch to switch between a video output of the first decoder and a video output of the second decoder to select a specified In-point frame in the second MPEG encoded video clip that is selectable as any MPEG frame type at any location in an MPEG group of pictures GOP structure;
which includes operating the decoders and the video switch in response to control commands from the video server,which further includes transmitting asynchronous status reports of decoding events from the decoders to the video server when the decoding events occur, andwhich includes the decoders transmitting asynchronous status reports when decoding of a first clip has started and when decoding of a second clip has ended.
9 Assignments
0 Petitions
Accused Products
Abstract
A system for producing multiple concurrent real-time video streams from stored MPEG video clips includes a video server and at least one MPEG decoder array. The decoder array has multiple decoder pairs, each pair having a video switch for switching from one decoder in the pair to the other at a specified time. Switching may occur from a specified Out-point frame to a specified In-point frame, and the specified frames can be any frame type at any location in the group of pictures (GOP) structure. In a preferred construction, the video server has a controller server linked to a series of data mover computers, each controlling one or more respective decoder arrays. The data mover computers use a control protocol to control the decoder arrays, and each decoder uses a data protocol to request data from a respective data mover computer.
57 Citations
5 Claims
-
1. A method of producing a real-time video stream from stored MPEG encoded video clips, the MPEG encoded video clips being contained in data storage of a video server, the method comprising:
-
reading segments of the MPEG encoded video clips from the data storage, the segments of the MPEG encoded video clips being decoded by respective first and second decoders in a decoder pair, the first decoder decoding at least a portion of a first MPEG encoded video clip and the second decoder decoding at least a portion of a second MPEG encoded video clip, the real-time video stream being obtained by operating a video switch to switch between a video output of the first decoder and a video output of the second decoder to select a specified In-point frame in the second MPEG encoded video clip that is selectable as any MPEG frame type at any location in an MPEG group of pictures GOP structure; which includes operating the decoders and the video switch in response to control commands from the video server, which further includes transmitting asynchronous status reports of decoding events from the decoders to the video server when the decoding events occur, and which includes the decoders transmitting asynchronous status reports when decoding of a first clip has started and when decoding of a second clip has ended.
-
-
2. A method of producing a real-time video stream from stored MPEG-2 encoded video clips, the MPEG-2 encoded video clips being contained in data storage of a video server, the method comprising:
-
reading segments of the MPEG-2 encoded video clips from the data storage, the segments of the MPEG-2 encoded video clips being decoding by respective first and second decoders in a decoder pair, the first decoder decoding at least a portion of a first MPEG-2 encoded video clip and the second decoder decoding at least a portion of a second MPEG-2 encoded video clip, the real-time video stream being obtained by operating a video switch to switch between a video output of the first decoder and a video output of the second decoder at an occurrence of a specified time code to select a specified In-point frame in the second MPEG-2 encoded video clip that is selectable as any MPEG-2 frame type at any location in an MPEG-2 group of pictures (GOP) structure, which includes operating the decoders and the video switch in response to control commands from the video server, the control commands include streaming commands used to control the In-point of the second MPEG-2 encoded video clip included in the real-time video stream, which includes the decoders requesting and obtaining MPEG-2 encoded data from the video server, which includes each decoder obtaining MPEG-2 encoded data from the video server by sending a request for data including a decoder data buffer free space value and an offset value indicating MPEG-2 encoded data previously received from the video server, and the video server responds to the request for data by sending MPEG-2 encoded data sufficient to substantially fill the data buffer free space taking into consideration MPEG-2 encoded data previously sent but not yet received by said each decoder when said each decoder sent the request for data, which further includes transmitting asynchronous edit requests between the video server and the decoders, and transmitting asynchronous status reports of decoding events from the decoders to the video server when the decoding events occur, and which includes the decoders transmitting asynchronous status reports when decoding of a first clip has started and when decoding of a second clip has ended.
-
-
3. An apparatus for producing a real-time video stream from stored MPEG encoded video clips, said apparatus comprising:
-
a video server including data storage containing the MPEG encoded video clips; and an MPEG decoder pair having a video switch for switching from a video output of one decoder in said decoder pair to a video output of the other decoder of said decoder pair at an occurrence of a specified time code, the video server and the decoder pair being programmed for switching said video switch for selecting a specified In-point frame that is selectable as any MPEG frame type at any location in an MPEG group of pictures GOP structure, wherein the video server and the decoder pair are programmed for the video server to control the decoder pair by sending control commands from the video server to the decoder pair, and the video server and the decoder pair are programmed for the decoder pair to request and obtain MPEG-encoded data from the video server, wherein each decoder is programmed to obtain MPEG encoded data from the video server by sending a request for data including a decoder data buffer free space value and an offset value indicating any MPEG encoded data previously received from the video server, and the video server is programmed to respond to the request by sending MPEG encoded data sufficient to substantially fill the data buffer free space taking into consideration MPEG encoded data previously sent but not yet received by said each decoder when said each decoder sent the request for data, wherein the video server and the decoder pair are further programmed for the video server to receive asynchronous status reports of significant decoding events from the decoder pair when the significant decoding events occur, and for the video server to send edit commands to the decoder pair for editing content of the real-time video stream, and wherein the video server and the decoder pair are further programmed for the video server to receive asynchronous status reports from the decoder pair when decoding of a first clip has started and when decoding of a second clip has ended.
-
-
4. An apparatus for producing a real-time video stream from MPEG encoded video clips, said apparatus comprising:
-
a video server for storing the MPEG encoded video clips, and an MPEG decoder pair coupled to the video server for producing a real-time video stream from the MPEG encoded video clips stored in the video server; wherein the video server includes cached disk storage for storing the MPEG encoded video clips, a data mover computer coupled to the cached disk storage for streaming segments of the MPEG encoded video clips from the cached disk storage to the MPEG decoder pair, and a controller server computer coupled to the data mover computer for controlling the data mover computer; and further including a video switch coupled to the decoder pair for selecting a video output from either one of the decoders in the decoder pair for production of said real-time video stream by switching from the video output from one of the decoders in the decoder pair to a specified In-point frame in the video output from the other of the decoders in the decoder pair, wherein the In-point frame is selectable as any frame and any frame type in a group of pictures (GOP) structure of the MPEG encoded video, and the decoders in the decoder pair are coupled to the data mover computer for receiving segments of the MPEG encoded video clips for the production of the real-time video stream; which further includes a decoder controller coupled to the decoders and to the video switch for controlling the decoders and the video switch, the decoder controller being coupled to data mover computer for receiving control commands for the production of the real-time video stream; wherein the control commands include configuration commands to allow the video server to configure the decoder pair by the video server obtaining configuration status of the decode pair and by the video server setting operational modes of the decoder pair, streaming commands to control the In-points of the MPEG encoded video clips included in real-time video stream, asynchronous status report commands to enable the video server to receive asynchronous status reports of significant decoding events from the decoder pair when the significant decoding events occur, and edit commands to allow the decoders in the decoder pair to be controlled for editing content of the real-time video stream, and wherein the control commands include asynchronous status report commands to enable the video server to receive asynchronous status reports from the decoder pair when decoding of a first clip by the decoder pair has started and when decoding of a second clip by the decoder pair has ended.
-
-
5. An apparatus for producing a real-time video stream from MPEG-2 encoded video clips, said apparatus comprising:
-
a video server for storing the MPEG-2 encoded video clips, and an MPEG-2 decoder pair coupled to the video server for producing the real-time video stream from segments of the MPEG-2 encoded video clips stored in the video server; an operator control station coupled to the video server for transmitting a play list and edit commands from an operator to the video server for controlling and editing content of the real-time video stream; and wherein the video server includes cached disk storage for storing the MPEG-2 encoded video clips, a data mover computer coupled to the cached disk storage for streaming the segments of the MPEG-2 encoded video clips from the cached disk storage to the MPEG-2 decoder pair, and a controller server computer coupled to the data mover computer for controlling the data mover computer in response to the play list and edit commands from the operator control station; and further including a video switch coupled to the decoders in the decoder pair for selecting a video output from either one of the decoders in the decoder pair for production of the real-time video stream by switching from the video output from one of the decoders in the decoder pair to a specified In-point frame in the video output from the other of the decoders in the decoder pair, wherein the In-point frame is selectable as any frame and any frame type in a group of pictures (GOP) structure of the MPEG-2 encoded video, the decoders in the decoder pair being coupled to the data mover computer for receiving segments of the MPEG-2 encoded video clips for the production of the real-time video stream, and further including a decoder controller coupled to the decoders and the video switch for controlling the decoders and the video switch, the decoder controller being coupled to the data mover computer for receiving control commands for the production of the real-time video stream, wherein the control commands include configuration commands to allow the video server to configure the decoders in the decoder pair by setting operational modes of the decoders in the decoder pair, streaming commands to control the In-points of the MPEG-2 video clips included in the real-time video stream, asynchronous status report commands to enable asynchronous status reports of significant decoding events to be transmitted from the decoder pair to the video server when the decoding events occur, and edit commands to allow the decoders in the decoder pair to be controlled for editing content of the real-time video stream; wherein the data mover computer is programmed to prepare for switching from the video output from one of the decoders in the decoder pair to a specified In-point frame in the video output from the other of the decoders in the decoder pair by initiating a stream of MPEG-2 encoded data from the data mover computer to the other of the decoders in the decoder pair in response to a request from the other of the decoders in the decoder pair; wherein the apparatus further includes a house clock generator coupled to the video server and the MPEG-2 decoder pair for switching to the specified In-point frames when the house clock generator provides respective specified time code values; and wherein the control commands include asynchronous status report commands to enable the video server to receive asynchronous status reports from the decoder pair when decoding of a first clip by the decoder pair has started and when decoding of a second clip by the decoder pair has ended.
-
Specification