1. A method of rendering a media stream on a playback device, comprising: dynamically analyzing playback criteria while rendering the media stream using a network heuristics module that monitors network bandwidth and a resource heuristics module that monitors the playback device; based on the analysis, determining, in the playback device, which of multiple available media streams to retrieve from a network in order to minimize glitches during the playback, the multiple available media streams being the same content encoded at different bit rates, the analysis including agreeing on a encoded bit rate through intersection of acceptable encoded bit rates for both the network heuristics module and the resource heuristics module; retrieving the determined media stream from the network; and rendering the media stream with minimized glitching.