Method and system for providing snapshots from a compressed digital video stream
First Claim
1. A method for delivering video from a server to a client over a communication medium with a limited bandwidth, the method comprising the steps of:
- determining, based on a predetermined frame rate and said limited bandwidth, an initial image quality to display said video at said client;
while transmitting said video having said initial image quality to said client, determining a second image quality to display said video at said client based on a second frame rate and said limited bandwidth, where said second frame rate is different from said initial frame rate; and
transmitting said video with said second image quality to said client.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and system are provided for delivering video from a client to a server over a communication medium with a limited bandwidth. An initial image quality that allows the video to be displayed in real time at the client is determined based on a predetermined frame rate and the limited bandwidth. Video having the initial image quality is transmitted to the client. While transmitting the video to the client, the server receives a message from the client that indicates selection of a second frame rate that is slower than the predetermined frame rate. In response to the message from the client, the server determines a second image quality that allows the video to be displayed in real time at the client based on the second frame rate and the limited bandwidth. The second image quality is higher than the initial image quality. The video with the second image quality is then transmitted to the client. A “snapshot” feature is also provided. A predetermined user input is received at the client. In response to the predetermined user input at the client, a message is transmitted from the client to the server that indicates a particular frame in the video. In response to receiving the message at the server, the server transmits to the client data depicting an image represented in the frame, wherein the data represents the image in greater detail than the image is represented in the frame of the video.
-
Citations
30 Claims
-
1. A method for delivering video from a server to a client over a communication medium with a limited bandwidth, the method comprising the steps of:
-
determining, based on a predetermined frame rate and said limited bandwidth, an initial image quality to display said video at said client;
while transmitting said video having said initial image quality to said client, determining a second image quality to display said video at said client based on a second frame rate and said limited bandwidth, where said second frame rate is different from said initial frame rate; and
transmitting said video with said second image quality to said client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
the step of determining an initial image quality includes the step of determining an image quality that allows said video to be displayed in real time at said predetermined frame rate over said limited bandwidth; and
the step of determining a second image quality includes the step of determining an image quality that allows said video to be displayed in real time at said second frame rate over said limited bandwidth.
-
-
3. The method of claim 1 wherein:
-
the step of determining an initial image quality includes the step of determining based on said predetermined frame rate and said limited bandwidth an initial compression ratio to display said video at said client;
the method includes the step of compressing said video at said server using said initial compression ratio while transmitting said video to said client;
the step of determining a second image quality includes the step of determining based on said second frame rate and said limited bandwidth a second compression ratio to display said video at said client, wherein said second compression ratio is lower than said initial compression ratio; and
the method includes the step of compressing said video at said server using said second compression ratio while transmitting said video to said client.
-
-
4. The method of claim 3 further comprising the steps of:
-
while transmitting said video to said client at said predetermined frame rate, receiving at said server a message from said client that indicates selection of said second frame rate that is decreased relative to said predetermined frame rate;
wherein the step of transmitting said video with said second image quality is performed in response to said message from said client;
receiving at said server a second message from said client;
in response to said second message, transmitting to said client from said server a frame of said video without compressing said video.
-
-
5. The method of claim 4 further comprising the steps of:
-
displaying a pause control at said client while said client is displaying said video; and
causing said client to transmit said second message in response to user selection of said pause control.
-
-
6. The method of claim 1 wherein:
-
the step of determining an initial image quality includes the step of selecting a first pre-compressed video file from a plurality of pre-compressed video files, wherein each of said plurality of pre-compressed video files is compressed using a different compression ratio;
the step of transmitting said video with said initial image quality to said client includes transmitting data from said first pre-compressed video file;
the step of determining a second image quality includes the step of selecting a second pre-compressed video file from said plurality of pre-compressed video files, wherein said second pre-compressed video file is pre-compressed using compression ratio which is lower than the compression ratio used to pre-compress said first pre-compressed video file; and
the step of transmitting said video with said second image quality includes transmitting said data from said second pre-compressed video file.
-
-
7. The method of claim 6 further comprising the steps of:
-
while transmitting said video to said client at said predetermined frame rate, receiving at said server a message from said client that indicates selection of said second frame rate that is decreased relative to said predetermined frame rate;
wherein the step of transmitting said video with said second image quality is performed in response to said message from said client;
receiving at said server a second message from said client;
in response to said second message, transmitting to said client from said server a frame of said video from a less compressed video file of said plurality of pre-compressed video files.
-
-
8. The method of claim 1 further comprising the steps of:
-
while transmitting said video to said client at said predetermined frame rate, receiving at said server a message from said client that indicates selection of said second frame rate that is decreased relative to said predetermined frame rate; and
wherein the step of transmitting said video with said second image quality is performed in response to said message from said client.
-
-
9. The method of claim 8 further comprising the steps of:
-
generating at the client a set of user interface objects while displaying said video to a user; and
in response to user selection of one of said user interface objects, generating said message and transmitting said message to said server.
-
-
10. The method of claim 9 wherein:
-
said set of user interface objects includes a slow motion control; and
said message is generated and transmitted to said server in response to user selection of said slow motion control.
-
-
11. A method for delivering video from a server to a client over a communication medium with a limited bandwidth, the method comprising the steps of:
-
transmitting a stream of video from the server to the client to be displayed on a display device at said client;
receiving a predetermined user input at said client;
in response to said predetermined user input at the client, transmitting a message from the client to the server that indicates a particular frame in said video that was transmitted to said client;
in response to receiving the message at the server, transmitting from the server to the client data depicting an image represented in said frame, wherein said data represents said image in greater detail than said image is represented in said frame of said video transmitted to said client; and
displaying said image on said display device of said client in said greater detail based on said data. - View Dependent Claims (12, 13, 14, 15, 16, 17)
in response to user input at the client, scrolling through the video at the client; and
wherein the step of transmitting a message from the client to the server that indicates a particular frame in said video includes transmitting from the client to the server a message that indicates a frame of said video that is being displayed at said client when said user enters said predetermined user input.
-
-
13. The method of claim 11 further comprising the steps of:
-
displaying user interface controls at said client while said client receives said stream of video from said server;
wherein said step of receiving a predetermined user input at said client includes the step of detecting user selection of a control of said user interface controls.
-
-
14. The method of claim 13 wherein:
-
said user interface controls include a control for scrolling said stream of video forward, a control for scrolling said stream of video backward, and a pause control; and
said step of detecting user selection of a control includes detecting selection of said pause control.
-
-
15. The method of claim 11 wherein:
-
the step of transmitting a stream of video from the server to the client includes transmitting said stream of video while compressing said video at a first compression ratio; and
the step of transmitting from the server to the client data depicting an image represented in said frame comprises the steps of transmitting a portion of said video that corresponds to said frame of video while compressing said video at a second compression ratio that is different than said first compression ratio.
-
-
16. The method of claim 11 wherein:
-
the step of transmitting a stream of video from the server to the client includes transmitting said stream of video from a video file that has been pre-compressed using a first compression ratio; and
the step of transmitting from the server to the client data depicting an image represented in said frame comprises the steps of transmitting a portion of said video that corresponds to said frame of video from a second video file that has been pre-compressed using a second compression ratio that is different than said first compression ratio.
-
-
17. The method of claim 11 wherein:
-
the step of transmitting a stream of video from the server to the client includes transmitting said stream of video from a video file that represents said video at a first resolution; and
the step of transmitting from the server to the client data depicting an image represented in said frame comprises the steps of transmitting a portion of said video that corresponds to said frame of video from a second video file that represents said video at a second resolution that is different than said first resolution.
-
-
18. A computer readable medium having stored thereon sequences of instructions for delivering video from a server to a client over a communication medium with a limited bandwidth, the sequences of instructions including sequences of instructions which, when executed by a processor, cause said processor to perform the steps of:
-
transmitting a stream of video from the server to the client to be displayed on a display device at said client;
receiving a predetermined user input at said client;
in response to said predetermined user input at the client, transmitting a message from the client to the server that indicates a particular frame in said video that was transmitted to said client;
in response to receiving the message at the server, transmitting from the server to the client data depicting an image represented in said frame, wherein said data represents said image in a different level of detail than said image is represented in said frame of said video transmitted to said client, and displaying said image on said display device of said client in said greater detail based on said data. - View Dependent Claims (19, 20, 21, 22, 23, 24)
in response to user input at the client, scolling through the video at the client; and
wherein the step of transmitting a message from the client to the server that indicates a particular frame in said video includes transmitting from the client to the server a message that indicates a frame of said video that is being displayed at said client when said user enters said predetermined user input.
-
-
20. The computer readable medium of claim 18 further comprising sequences of instructions for performing the steps of:
-
displaying user interface controls at said client while said client receives said stream of video from said server;
wherein said step of receiving a predetermined user input at said client includes the step of detecting user selection of a control of said user interface controls.
-
-
21. The computer readable medium of claim 20 wherein:
-
said user interface controls include a control for scrolling said stream of video forward, a control for scrolling said stream of video backward, and a pause control; and
said step of detecting user selection of a control includes detecting selection of said pause control.
-
-
22. The computer readable medium of claim 20 wherein:
-
the step of transmitting a stream of video from the server to the client includes transmitting said stream of video while compressing said video at a first compression ratio; and
the step of transmitting from the server to the client data depicting an image represented in said frame comprises the steps of transmitting a portion of said video that corresponds to said frame of video while compressing said video at a second compression ratio that is different than said first compression ratio.
-
-
23. The computer readable medium of claim 18 wherein:
-
the step of transmitting a stream of video from the server to the client includes transmitting said stream of video from a video file that has been pre-compressed using a first compression ratio; and
the step of transmitting from the server to the client data depicting an image represented in said frame comprises the steps of transmitting a portion of said video that corresponds to said frame of video from a second video file that has been pre-compressed using a second compression ratio that is different than said first compression ratio.
-
-
24. The computer readable medium of claim 18 wherein:
-
the step of transmitting a stream of video from the server to the client includes transmitting said stream of video from a video file that represents said video at a first resolution; and
the step of transmitting from the server to the client data depicting an image represented in said frame comprises the steps of transmitting a portion of said video that corresponds to said frame of video from a second video file that represents said video at a second resolution that is different than said first resolution.
-
-
25. A method for presenting visual information at a client connected to a communication line, the method comprising the steps of:
-
sending to said client over said communication line a stream of video in a signal that reflects an initial quality;
playing said stream of video on a display device at said client;
transmitting to said client over said communication line an image associated with a transmitted portion of said stream of video; and
displaying said image on said display device of said client, wherein said image has a higher quality than said transmitted portion of said stream of video with which said image is associated, and wherein said image has substantially the same visual content as the transmitted portion of said stream of video with which said image is associated. - View Dependent Claims (26, 27, 28)
the step of sending to said client a stream of video is performed by sending to said client a stream of video from a first set of one or more sources; and
the step of transmitting to said client an image is performed by transmitting to said client an image constructed from a second set of one or more sources, wherein said second set of one or more sources includes at least one source that does not belong to said first set of one or more sources.
-
-
29. A method for delivering video from a server to a client over a communication medium with a limited bandwidth, the method comprising the steps of:
-
transmitting a stream of video from the server to the client to be displayed on a display device at said client;
receiving at said server a message from the client that indicates a particular frame in said video that was transmitted to said client;
in response to receiving the message at the server, transmitting from the server to the client data depicting an image represented in said frame, wherein said data represents said image in greater detail than said image is represented in said frame of said video transmitted to said client; and
displaying said image based on said data on said display device of said client. - View Dependent Claims (30)
-
Specification