Adaptive video streaming is becoming increasingly necessary as quality expectations rise, while congestion persists and the extension of the Internet to mobile access creates new sources of packet loss. This chapter considers several techniques for adaptive video streaming including live HTTP streaming, bitrate transcoding, scalable video coding, and rate controllers. It also includes additional case studies of congestion control over the wired Internet using fuzzy logic, statistical multiplexing to adapt constant bitrate streams to the bandwidth capacity, and adaptive error correction for the mobile Internet. To guide the reader, the chapter makes a number of comparisons between the main techniques, for example explaining why currently per-encoded video may be better-streamed using adaptive simulcast than by transcoding or scalable video coding.