Media streams or files, such as audio and video streams, within a media presentation are synchronized by dynamically adjusting the playback rate of one or more of the streams relative to a reference (clock) stream. In one implementation, a video presentation including a plurality of media streams is received, with each media stream having a respective playback rate. One of the media streams is selected as a clock stream. The media streams are simultaneously played according to their respective playback rates, and a second media stream is synchronized with the clock stream.