A method for adaptive video streaming of video source content over video delivery networks from a video hosting site to a receiver client site, comprising: (a) Creating multiple video streams of different bitrates and resolutions from the video source content, and dividing each of the video streams into time segments; (b) Performing quality-of-experience predictions of each of the time segments of each of the video streams during video preparation stage having the video source content as one of inputs, at the video hosting site and/or inside the video delivery network, to obtain an array of video quality-of-experience prediction parameters of the segmented video streams; (c) Transmitting the array of video quality-of-experience prediction parameters prior to or together with the video streams to the receiver client site; (d) Using the received array of video quality-of-experience prediction parameters and client side parameters of network, receiver device and viewing environment information to estimate end user quality-of-experience at the receiver client site to obtain a dynamically estimated matrix of viewer quality-of-experience ("QoE") estimate using a receiver device; (e) Determining, using the estimated matrix of viewer quality-of-experience, an optimized path that maximizes average quality and/or smoothness of quality-of-experience by performing a dynamic programming optimization for joint selections of a sequence of the next multiple time segments of the video streams at the client site; and (f) At the receiver client site, using the sequence of the next multiple time segments of the video streams to select a time segment from the time segments of the multiple video streams and to request the next time segments of the video streams. (a) Creating multiple video streams of different bitrates and resolutions from the video source content, and dividing each of the video streams into time segments; (b) Performing quality-of-experience predictions of each of the time segments of each of the video streams during video preparation stage having the video source content as one of inputs, at the video hosting site and/or inside the video delivery network, to obtain an array of video quality-of-experience prediction parameters of the segmented video streams; (c) Transmitting the array of video quality-of-experience prediction parameters prior to or together with the video streams to the receiver client site; (d) Using the received array of video quality-of-experience prediction parameters and client side parameters of network, receiver device and viewing environment information to estimate end user quality-of-experience at the receiver client site to obtain a dynamically estimated matrix of viewer quality-of-experience ("QoE") estimate using a receiver device; (e) Determining, using the estimated matrix of viewer quality-of-experience, an optimized path that maximizes average quality and/or smoothness of quality-of-experience by performing a dynamic programming optimization for joint selections of a sequence of the next multiple time segments of the video streams at the client site; and (f) At the receiver client site, using the sequence of the next multiple time segments of the video streams to select a time segment from the time segments of the multiple video streams and to request the next time segments of the video streams.