Temporary Decoder Apparatus and Method
Abstract
A computer-implemented system and method for streaming video from a server to a client are described. For example, a method according to one embodiment comprises: receiving at the server a request for video content from the client; in response to the request, determining the hardware/software configuration of the client; generating and/or selecting a temporary decoder based on the hardware/software configuration of the client; transmitting the temporary decoder to the client, the client installing the temporary decoder; encoding and streaming the requested video content from the server to the client, the video content being encoded based on the capabilities of the temporary decoder, the video content being decoded by the temporary decoder and rendered on the client; detecting that the client has ended the session with the server; and in response to detecting that the client has ended the session, temporarily disabling and/or removing the temporary decoder from the client.
Claims
exact text as granted — not AI-modifiedWhat is claimed:
1 . A computer-implemented method for processing instructions by an online video game hosting system, comprising:
receiving a control signal for an online video game, the control signal received by a server of the online video game hosting system, the control signal transmitted from a client device over a network to the server of the online video game hosting system; executing the online video game by the server of the online video game hosting system while receiving the control signal, the executing causing generation of a video frame; encoding the video frame to generate a first encoded version of the video frame and a second encoded version of the video frame, the second encoded version of the video frame having a higher quality than the first encoded version of the video frame; directing the second encoded version of the video frame to a storage device; transmitting the first encoded version of the video frame to the client device over the network for decoding by the client device to produce a first decoded video frame for displaying on a display of the client device; and receiving feedback information from the client device regarding the first encoded version of the video frame, the feedback information used in part for modification of the encoding of a future video frame, wherein the second encoded version of the video frame is generated with a quality that is independent of the feedback information received from the client device regarding the first encoded version of the video frame.
2 . The computer-implemented method of claim 1 , further comprising:
changing an encoding format used to generate the first encoded version of the video frame from a first encoding format to a second encoding format; and using the second encoding format to generate the first encoded version of a future video frame.
3 . The computer-implemented method of claim 2 , wherein the second encoding format is not based on the feedback information received from the client device.
4 . The computer-implemented method of claim 2 , wherein the second encoding format is based on the feedback information received from the client device.
5 . The computer-implemented method of claim 1 , wherein modification of the encoding of the future video frame includes changing a resolution of a source image corresponding to the future video frame.
6 . The computer-implemented method of claim 1 , wherein modification of the encoding of the future video frame includes changing a bit rate.
7 . The computer-implemented method of claim 1 , wherein modification of the encoding of the future video frame includes changing a compression rate.
8 . The computer-implemented method of claim 1 , wherein modification of the encoding of the future video frame includes changing an encoder configuration.
9 . The computer-implemented method of claim 1 , further comprising:
performing latency monitoring of video frames on a video frame by video frame basis.
10 . The computer-implemented method of claim 1 , further comprising:
performing latency monitoring of video frames on a periodic basis.
11 . The computer-implemented method of claim 1 , further comprising:
performing latency monitoring of video frames; upon determining that a video frame latency is greater than a maximum allowable latency value, changing an encoding format used to generate the first encoded version of the video frame from a first encoding format to a second encoding format, the second encoding format incurring a lower latency contribution than the first encoding format; and using the second encoding format to generate the first encoded version of a future video frame.
12 . The computer-implemented method of claim 1 , further comprising:
performing latency monitoring of video frames; upon determining that a video frame latency is less than a maximum allowable latency value, changing an encoding format used to generate the first encoded version of the video frame from a first encoding format to a second encoding format, the second encoding format having a higher image quality than the first encoding format; and using the second encoding format to generate the first encoded version of a future video frame.
13 . The computer-implemented method of claim 1 , wherein the client device is configured to transmit the control signal to the server of the online video game hosting system and decode encoded video frames received over the network.
14 . The computer-implemented method of claim 1 , further comprising:
receiving a replay command from the client device at the server of the online video game hosting system, the replay command specifying a sequence of replay video frames; retrieving the sequence of replay video frames from the storage device, each video frame in the sequence of replay video frames generated as the second encoded version; and transmitting the sequence of replay video frames to the client device over the network.
15 . The computer-implemented method of claim 1 , wherein the first encoded version of the video frame is a P-frame.
16 . The computer-implemented method of claim 1 , wherein the second encoded version of the video frame is an I-frame.
17 . The computer-implemented method of claim 1 , further comprising:
having a maximum latency requirement for the online video game, the maximum latency requirement indicating the maximum allowable latency between a given user input at the client device to generate the control signal and a rendering of a video image on the display of the client device corresponding to the given user input, wherein the feedback information indicates whether or not the maximum latency requirement is satisfied.
18 . The computer-implemented method of claim 17 , further comprising:
upon determining that the maximum latency requirement is not satisfied based on the feedback information, modifying the encoding of subsequent video frames to reduce the latency between the given user input at the client device to generate the control signal and the rendering of the video image on the display of the client device corresponding to the given user input.
19 . The computer-implemented method of claim 17 , further comprising:
upon determining that the maximum latency requirement is not satisfied based on the feedback information, reducing an image resolution of subsequent video frames to reduce the latency between the given user input at the client device to generate the control signal and the rendering of the video image on the display of the client device corresponding to the given user input.
20 . The computer-implemented method of claim 17 , further comprising:
upon determining that the maximum latency requirement is not satisfied based on the feedback information, increasing a compression ratio of subsequent video frames to reduce the latency between the given user input at the client device to generate the control signal and the rendering of the video image on the display of the client device corresponding to the given user input.Join the waitlist — get patent alerts
Track US2020206618A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.