System and method for modifying a video stream based on a client or network environment
First Claim
Patent Images
1. A method for modifying a video stream being encoded according to the values of one or more parameters and being delivered through a network, the method comprising:
- obtaining data related at least to the ability of the network to transport the video stream to a client device and related to the ability of the client to decode the video stream during the delivery of the encoded video stream, wherein the obtaining comprises obtaining a measurement representing resources available at the client device for decoding the video stream being delivered to the client device including at least one of;
available processor power able to be used by the client device in decoding the video stream, associated packet loss, and associated bytes transmitted and received; and
modifying the values of the one or more parameters according to which the video stream is being encoded based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges, wherein the one or more parameters according to which the video stream is being encoded includes a frame rate and wherein the modifying comprises modifying the frame rate value based on the obtained data; and
adjusting encoding of the video stream in response to modifying the values of the one or more parameters.
3 Assignments
0 Petitions
Accused Products
Abstract
A Video Server (VS 100) encodes a video stream according to the values of parameters and transmits the video stream over a Network to a Video Client (VC 200) that decodes the received video stream for presentation to a user. As the video stream is being received, (VC 200 continually gathers data regarding at least the condition of Network sends this data to (VS 100). (VS 100) modifies the values of the parameters based on the data received from (VC 200), which in turn modifies the encoding of the video stream.
-
Citations
33 Claims
-
1. A method for modifying a video stream being encoded according to the values of one or more parameters and being delivered through a network, the method comprising:
-
obtaining data related at least to the ability of the network to transport the video stream to a client device and related to the ability of the client to decode the video stream during the delivery of the encoded video stream, wherein the obtaining comprises obtaining a measurement representing resources available at the client device for decoding the video stream being delivered to the client device including at least one of;
available processor power able to be used by the client device in decoding the video stream, associated packet loss, and associated bytes transmitted and received; andmodifying the values of the one or more parameters according to which the video stream is being encoded based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges, wherein the one or more parameters according to which the video stream is being encoded includes a frame rate and wherein the modifying comprises modifying the frame rate value based on the obtained data; and adjusting encoding of the video stream in response to modifying the values of the one or more parameters. - View Dependent Claims (2, 3, 4)
-
-
5. A method for modifying a video stream being encoded according to the values of one or more parameters and being delivered to a computer through a network, the method comprising:
-
obtaining data related to the ability of the network to transport the video stream to the computer and related to the ability of the computer to decode the video stream during the delivery of the encoded video stream, wherein the obtaining comprises obtaining a measurement representing resources available at the computer for decoding the video stream being delivered to the computer including at least one of;
available processor power able to be used in decoding the video stream, associated packet loss, and associated bytes transmitted and received; andmodifying the values of the one or more parameters according to which the video stream is being encoded based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges, wherein the one or more parameters according to which the video stream is being encoded includes a frame rate and wherein the modifying comprises modifying the frame rate value based on the obtained data; and adjusting encoding of the video stream in response to modifying the values of the one or more parameters. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A method for facilitating the modification of a video stream being encoded by a first computer according to the values of one or more parameters and being transmitted by the first computer through a network to a second computer, the method comprising:
-
gathering data at the second computer during the transmission of the encoded video stream by the first computer related to the ability of the network to transport the video stream to the second computer and related to the ability of the second computer to decode the video stream, wherein the gathering data comprises obtaining a measurement representing resources available at the second computer for decoding the video stream being delivered to the second computer including at least one of;
available processor power able to be used by the second computer in decoding the video stream, associated packet loss, and associated bytes transmitted and received; andtransmitting the gathered data to the first computer during the transmission of the encoded video stream by the first computer to enable the modification of the values of the one or more parameters according to which the first computer is encoding the video stream based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges and enable the adjustment of the encoding of the video stream in response to the modification of the values of the one or more parameters, wherein the transmitting comprises transmitting the gathered data in the application specific portion of RTCP packets being sent to the first computer. - View Dependent Claims (12)
-
-
13. A system for modifying a video stream being encoded according to the values of one or more parameters and being delivered through a network, the system comprising:
-
means for obtaining data related at least to the ability of the network to transport the video stream during the delivery of the encoded video stream, wherein the obtained data relates to the ability of the network to transport the video stream to a client device and relates to the ability of the client device to decode the video stream, and wherein the means for obtaining comprises means for obtaining a measurement representing resources available at the client device for decoding the video stream being delivered to the client device including at least one of;
available processor power able to be used by the client device in decoding the video stream, associated packet loss, and bytes transmitted and received; andmeans for modifying the values of the one or more parameters according to which the video stream is being encoded based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges, wherein the one or more parameters according to which the video stream is being encoded includes a frame rate, and wherein the means for modifying comprises modifying the frame rate value based on the obtained data; and means for adjusting encoding of the video stream in response to modifying the values of the one or more parameters. - View Dependent Claims (14, 15, 16)
-
-
17. A system for modifying a video stream being encoded according to the values of one or more parameters and being delivered to a computer through a network, the system comprising:
-
means for obtaining data related to the ability of the network to transport the video stream to the computer and related to the ability of the computer to decode the video stream during the delivery of the encoded video stream, wherein the means for obtaining comprises means for obtaining a measurement representing resources available at the computer for decoding the video stream being delivered to the computer including at least one of;
available processor power able to be used by the computer in decoding the video stream, associated packet loss, and bytes transmitted and received; andmeans for modifying the values of the one or more parameters according to which the video stream is being encoded based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges, wherein the one or more parameters according to which the video stream is being encoded includes a frame rate, and wherein the means for modifying comprises modifying the frame rate value based on the obtained data; and means for adjusting encoding of the video stream in response to modifying the values of the one or more parameters. - View Dependent Claims (18, 19, 20)
-
-
21. A system for facilitating the modification of a video stream being encoded by a first computer according to the values of one or more parameters and being transmitted by the first computer through a network to a second computer, the system comprising:
-
means for gathering data at the second computer during the transmission of the encoded video stream by the first computer related to the ability of the network to transport the video stream to the second computer and related to the ability of the second computer to decode the video stream, wherein the means for gathering data comprises means for obtaining a measurement representing resources available at the second computer for decoding the video stream being delivered to the second computer including at least one of;
available processor power able to be used by the second computer in decoding the video stream, associated packet loss, and bytes transmitted and received;means for transmitting the gathered data to the first computer during the transmission of the encoded video stream by the first computer to enable the modification of the values of the one or more parameters according to which the first computer is encoding the video stream based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges and enable the adjustment of the encoding of the video stream in response to the modification of the values of the one or more parameters, wherein the means for transmitting comprises means for transmitting the gathered data in the application specific portion of RTCP packets being sent to the first computer. - View Dependent Claims (22)
-
-
23. A computer program product comprising a computer usable medium having computer readable code embodied therein, the computer readable code, when executed, causing a computer to implement a method for modifying a video stream being encoded according to the values of one or more parameters and being delivered through a network, the method comprising:
-
obtaining data related at least to the ability of the network to transport the video stream to a client device and related to the ability of the client device to decode the video during the delivery of the encoded video stream, wherein the obtaining comprises obtaining a measurement representing resources available at the client device for decoding the video stream being delivered to the client device including at least one of;
available processor power able to be used by the client device in decoding the video stream, associated packet loss, and bytes transmitted and received; andmodifying the values of the one or more parameters according to which the video stream is being encoded based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges, wherein the one or more parameters according to which the video stream is being encoded includes a frame rate, and wherein the modifying comprises modifying the frame rate value based on the obtained data; and adjusting encoding of the video stream in response to modifying the values of the one or more parameters.
-
-
24. A computer program product comprising a computer usable medium having computer readable code embodied therein, the computer readable code, when executed, causing a computing device to implement a method for modifying a video stream being encoded according to the values of one or more parameters and being delivered to a computer through a network, the method comprising:
-
obtaining data related to the ability of the network to transport the video stream to the computer and related to the ability of the computer to decode the video stream during the delivery of the encoded video stream, wherein the obtaining comprises obtaining a measurement representing resources-available at the computer for decoding the video stream being delivered to the computer including at least one of;
available processor power able to be used by the computer in decoding the video stream, associated packet loss, and bytes transmitted and received; andmodifying the values of the one or more parameters according to which the video stream is being encoded based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges, wherein the one or more parameters according to which the video stream is being encoded includes a frame rate, and wherein the modifying comprises modifying the frame rate value based on the obtained data; and adjusting encoding of the video stream in response to modifying the values of the one or more parameters. - View Dependent Claims (25, 26, 27)
-
-
28. A computer program product comprising a computer usable medium having computer readable code embodied therein, the computer readable code, when executed, causing a computer to implement a method for facilitating the modification of a video stream being encoded by a first computer according to the values of one or more parameters and being transmitted by the first computer through a network to a second computer, the method comprising:
-
gathering data at the second computer related to the ability of the network to transport the video stream to the second computer and related to the ability of the second computer to decode the video stream during the transmission of the encoded video stream by the first computer, wherein the gathering comprises obtaining a measurement representing resources available at the second computer for decoding the video stream being delivered to the second computer including at least one of;
available processor power able to be used by the second computer in decoding the video stream, associated packet loss, and bytes transmitted and received; andtransmitting the gathered data during the transmission of the encoded video stream by the first computer to the first computer to enable the modification of the values of the one or more parameters according to which the first computer is encoding the video stream based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges and enable the adjustment of the encoding of the video stream in response to the modification of the values of the one or more parameters, wherein the transmitting comprises transmitting the gathered data in the application specific portion of RTCP packets being sent to the first computer. - View Dependent Claims (29)
-
-
30. A method for facilitating the modification of a video stream being encoded by a computer according to the values of one or more parameters and being transmitted by the computer through a network to a client device, the method comprising:
-
gathering data at the client device related to the ability of the network to transport the video stream to the client device and related to the ability of the client device to decode the video stream during the transmission of the encoded video stream, wherein the gathering comprises obtaining a measurement representing resources available at the client device for decoding the video stream being delivered to the client device including at least one of;
available processor power able to be used by the client device in decoding the video stream, associated packet loss, and bytes transmitted and received; andtransmitting the gathered data to the computer to enable the modification of the values of the one or more parameters according to which the computer is encoding the video stream based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges and enable the adjustment of the encoding of the video stream in response to the modification of the values of the one or more parameters, wherein the transmitting comprises transmitting the gathered data in the application specific portion of RTCP packets being sent to the computer. - View Dependent Claims (31)
-
-
32. A system for facilitating the modification of a video stream being encoded by a computer according to the values of one or more parameters and being transmitted by the computer though a network to a client device, the system comprising:
-
means for gathering data at the client device related to the ability of the network to transport the video stream to the client device and related to the ability of the client device to decode the video stream during the transmission of the encoded video stream, wherein the means for gathering comprises means for obtaining a measurement representing resources available at the client device for decoding the video stream being delivered to the client device including at least one of;
available processor power able to be used by the client device in decoding the video stream, associated packet loss, and bytes transmitted and received; andmeans for transmitting the gathered data to the computer to enable the modification of the values of the one or more parameters according to which the computer is encoding the video stream based on tables of predefined ranges for the obtained data and predefined values corresponding to the predefined ranges and enable the adjustment of the encoding of the video stream in response to the modification of the values of the one or more parameters, wherein the means for transmitting comprises means for transmitting the gathered data in the application specific portion of RTCP packets being sent to the computer. - View Dependent Claims (33)
-
Specification