Whitepaper on iPhone Encoding Best Practices (by Akamai)

Streaming video to the iPhone became "standardized" with the release of iOS 3 (ie. iPhone 3) in the summer of 2009. There're a few key aspects of streaming video to the iPhone ...

  • video must be encoded with H.264 Baseline profile without frame-reordering
  • audio must be encoded with AAC (optionally HE-AAC)
  • the video+audio streams must be packed into an MPEG-2 transport stream
  • the transport stream must be split into small chunks (the app doing this is usually called a "stream segmenter"), these chunks are then saved (or uploaded) to a web server and served as usually (plain static files, nothing special about it, any webserver will do)
  • a unicode encoded M3U file (aka. M3U8) is created on the webserver with a list of these chunks/segments
  • the client downloads the M3U file and starts playing/downloading the individual pieces
In case of a live stream the M3U file is updated regularily and the client refreshes (redownloads) it regularily too.

A nice whitepaper on the subject is available from Akamai's iPhone site (you'll have to register though to download).

It has a nice table for suggested video bitrates for various resolutions and network bandwidths.
I've saved it in case they take down the wp:



AttachmentSize
video_bitrates_for_iphone_streaming.jpg34.78 KB
Syndicate content