title: How does HTTP Adaptive Bitrate Streaming work on the iPhone?
body: <p>Apple has included HTTP Adaptive Bitrate Streaming in the iPhone OS 3.0, in particular Safari handles this automatically.</p>
  
  <p>I'd like to play with this in a low cost manner, but I expect it'll require a custom HTTP server in the worst case, and interesting PHP/etc scripting in the best case.</p>
  
  <p>But first I need to know what the protocol differences or standard is.  HTTP is reasonably simple as a protocol, but adaptive bitrate means the file size is different, the chunk locations are different at different bitrates, etc. For instance, does the client tell the server anything special about the stream as it's downloading, or is it all handled on the server side?</p>
  
  <p>Eliminating buffering pauses for the end user is very attractive for both live and pre-recorded video streams, and doing both over HTTP is even better given many networks and governments are limiting non port 80 traffic.</p>
  
  <ul>
  <li>What are the technical details for HTTP adaptive bitrate streaming, especially Apple's implementation?</li>
  <li><p>Where is this best implemented - part of the HTTP server itself, part of a mod, in a script...?</p></li>
  <li><p>What changes are required for the client side, if one were to implement this in an application?</p></li>
  </ul>