A method for streaming a media asset, the method comprising: dividing the media asset into a plurality of portions; receiving, from a client device, a first request for a first portion of the plurality of portions to be transcoded at a first bitrate; in response to receiving the first request: transcoding the plurality of portions at the requested first bitrate to generate a plurality of corresponding transcoded portions; updating a header of a transcoded portion of the plurality of transcoded portions corresponding to the first portion to comprise: 1) a transcode latency value; and 2) a count value indicating a number of available pre-transcoded portions of the media asset at the time the first request was received; and transmitting the transcoded portion corresponding to the first portion of the plurality of portions to the client device; and receiving, from the client device, a second request for a second portion of the plurality of portions to be transcoded at a second bitrate, wherein the second bitrate is determined based on the transcode latency value included in the header of the transcoded portion corresponding to the first portion; wherein the second request was transmitted at a time determined based on the count value included in the header of the transcoded portion corresponding to the first portion; and wherein the transcode latency value is calculated by determining an amount of time between a time at which the first request was received and a time at which transcoding at the first bitrate was started. dividing the media asset into a plurality of portions; receiving, from a client device, a first request for a first portion of the plurality of portions to be transcoded at a first bitrate; in response to receiving the first request: transcoding the plurality of portions at the requested first bitrate to generate a plurality of corresponding transcoded portions; updating a header of a transcoded portion of the plurality of transcoded portions corresponding to the first portion to comprise: 1) a transcode latency value; and 2) a count value indicating a number of available pre-transcoded portions of the media asset at the time the first request was received; and transmitting the transcoded portion corresponding to the first portion of the plurality of portions to the client device; and transcoding the plurality of portions at the requested first bitrate to generate a plurality of corresponding transcoded portions; updating a header of a transcoded portion of the plurality of transcoded portions corresponding to the first portion to comprise: 1) a transcode latency value; and 2) a count value indicating a number of available pre-transcoded portions of the media asset at the time the first request was received; and transmitting the transcoded portion corresponding to the first portion of the plurality of portions to the client device; and receiving, from the client device, a second request for a second portion of the plurality of portions to be transcoded at a second bitrate, wherein the second bitrate is determined based on the transcode latency value included in the header of the transcoded portion corresponding to the first portion; wherein the second request was transmitted at a time determined based on the count value included in the header of the transcoded portion corresponding to the first portion; and wherein the transcode latency value is calculated by determining an amount of time between a time at which the first request was received and a time at which transcoding at the first bitrate was started.