A computer-implemented method for streaming video comprising: receiving at a server a request from a client remote to the server for executing a video game or application over one or more network interfaces, the request being transmitted over a network, at least a portion of which comprises a public network; generating control signals by the client in response to an input device of the client being actuated by the user as the user is playing the low latency video game or using the application; transmitting the control signals over a network including public network components, the control signals indicating user input to the client as the user is playing the video game or using the application; receiving the control signals at the server and responsively executing the video game or application on a server, the execution of the video game or application producing an uncompressed video output; determining an initial maximum data rate by gradually sending an increasingly higher data rate test stream from the server to the client and having the client provide feedback to the server as to the level of packet loss and latency, wherein it is detected that the maximum data rate is being reached as the packet loss and/or latency begins to show a sharp increase, to determine an appropriate initial data rate for the video stream; dynamically encoding at the server the uncompressed video output using low latency compression to generate a compressed video stream; transmitting the compressed video stream to the client over the network, the compressed video stream being decoded by a decoder on the client and rendered on a display of the client; and receiving feedback signals from the client, the feedback signals indicating successful or unsuccessful tile and/or frame delivery; wherein the uncompressed video output is dynamically encoded using low latency compression to generate the compressed video stream at a bitrate or compression ratio based on the feedback signals indicating successful or unsuccessful tile and/or frame delivery. receiving at a server a request from a client remote to the server for executing a video game or application over one or more network interfaces, the request being transmitted over a network, at least a portion of which comprises a public network; generating control signals by the client in response to an input device of the client being actuated by the user as the user is playing the low latency video game or using the application; transmitting the control signals over a network including public network components, the control signals indicating user input to the client as the user is playing the video game or using the application; receiving the control signals at the server and responsively executing the video game or application on a server, the execution of the video game or application producing an uncompressed video output; determining an initial maximum data rate by gradually sending an increasingly higher data rate test stream from the server to the client and having the client provide feedback to the server as to the level of packet loss and latency, wherein it is detected that the maximum data rate is being reached as the packet loss and/or latency begins to show a sharp increase, to determine an appropriate initial data rate for the video stream; dynamically encoding at the server the uncompressed video output using low latency compression to generate a compressed video stream; transmitting the compressed video stream to the client over the network, the compressed video stream being decoded by a decoder on the client and rendered on a display of the client; and receiving feedback signals from the client, the feedback signals indicating successful or unsuccessful tile and/or frame delivery; wherein the uncompressed video output is dynamically encoded using low latency compression to generate the compressed video stream at a bitrate or compression ratio based on the feedback signals indicating successful or unsuccessful tile and/or frame delivery.