Claims
- 1. A system for collaboratively delivering a video stream over a heterogeneous network, the video stream including a plurality of frames, the system comprising:
a session controller for synchronizing with client devices, receiving messages, and outputting encoder control commands based on the messages; and a plurality of encoders, each of the plurality of encoders being dedicated to a corresponding one of the client devices for receiving user control commands from the corresponding one of the client devices that correspond to a playback of the video stream, outputting the messages based on the user control commands, and respectively controlling a transmission of the video stream to the corresponding one of the client devices using a timeline shared between the client devices, including respectively and dynamically transmitting or discarding each of the plurality of frames so as to cooperatively maintain a minimum quality of service for all of the client devices.
- 2. The system of claim 1, wherein each of said plurality of encoders dynamically controls the transmission of the video stream further based on a requirement that at least a pre-designated minimum number of frames must be received by all of the client devices, the pre-designated minimum number of frames being comprised in the plurality of frames and corresponding to a basic content of the plurality of frames.
- 3. The system of claim 1, wherein each of said plurality of encoders dynamically controls the transmission of the video stream further based on a requirement that at least a pre-designated subset of the plurality of frames must be received by all of the client devices, the pre-designated subset of the plurality of frames corresponding to a basic content of the plurality of frames.
- 4. The system of claim 1, wherein each of said plurality of encoders dynamically optimizes the transmission of the video stream to the corresponding one of the client devices based on at least a prediction of available bandwidth for the corresponding one of the client devices and the priority of each of the plurality of frames.
- 5. The system of claim 1, wherein each of said plurality of encoders dynamically optimizes the transmission of the video stream to the corresponding one of the client devices based on at least parameters of a respective connection of the corresponding one of the client devices to said system.
- 6. A system for collaboratively delivering a video stream over a heterogeneous network, the video stream including a plurality of frames, the system comprising:
a session controller for synchronizing with client devices, receiving messages, and outputting encoder control commands based on the messages; and a plurality of encoders, each of the plurality of encoders being dedicated to a corresponding one of the client devices for receiving user control commands from the corresponding one of the client devices that correspond to a playback of the video stream, outputting the messages based on the user control commands, and dynamically and respectively controlling a transmission of the video stream to the corresponding one of the client devices, including respectively transmitting or discarding each of the plurality of frames so as to cooperatively maintain a minimum quality of service for all of the client devices, based upon at least a prediction of available bandwidth for the corresponding one of the client devices, any pending encoder control commands, a priority of each of the plurality of frames, and a shared timeline between the client devices, whereby the user control command allows a user of one of the client devices to control the playback of the video stream on all of the client devices.
- 7. The system of claim 6, wherein the user control commands correspond to virtual VCR control commands.
- 8. The system of claim 6, wherein each of said plurality of encoders transmits a client device command to the corresponding one of the client devices based on the encoder control commands, the client device command respectively corresponding to the playback of the video stream on the corresponding one of the client devices.
- 9. The system of claim 6, wherein each of said plurality of encoders dynamically optimizes the transmission of the video stream to the corresponding one of the client devices based on at least the prediction of available bandwidth for the corresponding one of the client devices and the priority of each of the plurality of frames.
- 10. The system of claim 6, wherein each of said plurality of encoders dynamically optimizes the transmission of the video stream to the corresponding one of the client devices based on at least parameters of a respective connection of the corresponding one of the client devices to said system.
- 11. The system of claim 6, wherein said session controller generates each of said plurality of encoders upon respectively receiving a connect request from each of the client devices.
- 12. The system of claim 6, wherein each of said plurality of encoders dynamically controls the transmission of the video stream further based on a requirement that at least a pre-designated minimum number of frames must be received by all of the client devices, the pre-designated minimum number of frames being comprised in the plurality of frames and corresponding to a basic content of the plurality of frames.
- 13. The system of claim 6, wherein each of said plurality of encoders dynamically controls the transmission of the video stream further based on a requirement that at least a pre-designated subset of the plurality of frames must be received by all of the client devices, the pre-designated subset of the plurality of frames corresponding to a basic content of the plurality of frames.
- 14. A method for collaboratively delivering a video stream over a heterogeneous network, the video stream including a plurality of frames, the method comprising the steps of:
generating a plurality of encoders, each of the plurality of encoders being dedicated to a corresponding one of the client devices; respectively providing to each of the plurality of encoders a measurement of available bandwidth for the corresponding one of the client devices and a priority of each of the plurality of frames; respectively generating a prediction of available bandwidth for each of the client devices based upon the measurement of available bandwidth; receiving user control commands, if any, from the client devices, the user control commands corresponding to a playback of the video stream on the client devices; and respectively and dynamically controlling a transmission of the video stream from the plurality of encoders to the client devices, including respectively transmitting or discarding each of the plurality of frames so as to cooperatively maintain a minimum quality of service for all of the client devices, based upon at least the prediction of available bandwidth for each of the client devices, the priority of each of the plurality of frames, any pending user control commands, and a shared timeline between the client devices, whereby the user control command allows a user of one of the client devices to control the playback of the video stream on all of the clients.
- 15. The method of claim 14, further comprising the steps of:
respectively generating a data socket connection for each of the client devices; and respectively providing parameters of the data socket connection for each of the client devices to the plurality of encoders, wherein said parameters include information other than the measurement of available bandwidth, and said controlling step is further based upon the parameters.
- 16. The method of claim 14, wherein the user control commands correspond to virtual VCR control commands.
- 17. The method of claim 14, wherein said controlling step comprises the step of respectively and dynamically optimizing the transmission of the video stream to each of the client devices based on at least the prediction of available bandwidth and the priority of each of the plurality of frames.
- 18. The method of claim 14, wherein said controlling step comprises the step of respectively and dynamically optimizing the transmission of the video stream to each of the client devices based on at least parameters of a respective connection of the client devices to said system.
- 19. The method of claim 14, wherein said controlling step respectively and dynamically controls the transmission of the video stream to each of the client devices so as to transmit at least a pre-designated minimum number of frames, the pre-designated minimum number of frames being comprised in the plurality of frames and corresponding to a basic content of the video stream.
- 20. The method of claim 14, wherein said controlling step respectively and dynamically controls the transmission of the video stream to each of the client devices so as to transmit at least a pre-designated subset of the plurality of frames that represent a basic content of the video stream.
- 21. The method of claim 14, wherein said method is implemented by a program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform said method steps.
RELATED APPLICATION DATA
[0001] This is a non-provisional application claiming the benefit of provisional application Ser. No. 60/256,650, entitled “Collaborative Video Delivery Over Mobile Networks”, filed on Dec. 19, 2000, which is incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60256650 |
Dec 2000 |
US |