A method for providing video content from a server to a plurality of media devices via adaptive bitrate streaming, wherein the video content is transmitted in a plurality of segments from the server, using a bitrate that may vary from segment to segment, wherein each segment is transmitted upon request by a media device, the method comprising: determining, by the server, bandwidth to allocate to each of a plurality of media devices for a period of time defined by a schedule window (T SW), using a HyperText Transfer Protocol-based live streaming client model ("HCM") and need parameter vector ("NPV") values, the HCM being constructed for each of the plurality of media devices, the HCM providing information on whether the media device is in a playback stage or a pre-buffering stage, the HCM further providing an estimate of fullness of a media-device buffer, each one of the NPV values (NPV(i,j)) being calculated, for each one of the plurality of media devices (i) and each one of the plurality of segments (j), based on the complexity of the content; and providing the determined bandwidth to allocate to each of the plurality of media devices; wherein said determining the bandwidth includes selecting a bitrate for each segment to be received by each of the plurality of media devices, the bitrate to be selected for each segment being closest to a scalar value (α) that represents an overall quality level of encoded video multiplied by the NPV value corresponding to the segment and the media device; wherein the scalar value (α) representing the overall quality level for all media devices is calculated by the server using the total available network bandwidth, the duration of the schedule window (T SW), the segment duration (T chunk), the NPV values for a scheduled number of segments to be downloaded by each of the plurality of media devices during the schedule window; wherein the scheduled number of segments to be downloaded by each of the plurality of media devices is determined by the server using: when the media device is in the playback stage, the duration of the schedule window (T SW) and the segment duration (T chunk); when the media device is in the pre-buffering stage, the estimate of fullness of the media-device buffer, the duration of the schedule window (T SW) and the segment duration (T chunk); and wherein said providing the determined bandwidth is performed by publishing, by the server, the selected bitrate as the respective single available bitrate for each of the plurality of media devices to receive a particular segment. determining, by the server, bandwidth to allocate to each of a plurality of media devices for a period of time defined by a schedule window (T SW), using a HyperText Transfer Protocol-based live streaming client model ("HCM") and need parameter vector ("NPV") values, the HCM being constructed for each of the plurality of media devices, the HCM providing information on whether the media device is in a playback stage or a pre-buffering stage, the HCM further providing an estimate of fullness of a media-device buffer, each one of the NPV values (NPV(i,j)) being calculated, for each one of the plurality of media devices (i) and each one of the plurality of segments (j), based on the complexity of the content; and providing the determined bandwidth to allocate to each of the plurality of media devices; wherein said determining the bandwidth includes selecting a bitrate for each segment to be received by each of the plurality of media devices, the bitrate to be selected for each segment being closest to a scalar value (α) that represents an overall quality level of encoded video multiplied by the NPV value corresponding to the segment and the media device; wherein the scalar value (α) representing the overall quality level for all media devices is calculated by the server using the total available network bandwidth, the duration of the schedule window (T SW), the segment duration (T chunk), the NPV values for a scheduled number of segments to be downloaded by each of the plurality of media devices during the schedule window; wherein the scheduled number of segments to be downloaded by each of the plurality of media devices is determined by the server using: when the media device is in the playback stage, the duration of the schedule window (T SW) and the segment duration (T chunk); when the media device is in the pre-buffering stage, the estimate of fullness of the media-device buffer, the duration of the schedule window (T SW) and the segment duration (T chunk); and when the media device is in the playback stage, the duration of the schedule window (T SW) and the segment duration (T chunk); when the media device is in the pre-buffering stage, the estimate of fullness of the media-device buffer, the duration of the schedule window (T SW) and the segment duration (T chunk); and wherein said providing the determined bandwidth is performed by publishing, by the server, the selected bitrate as the respective single available bitrate for each of the plurality of media devices to receive a particular segment.