• How to find Apple iOS device supported profile and level information

    This article provides encoding guidance for playback to Apple iOS devices, linked in each line below along with a summary of the support H.264 video profiles.

    If you're having trouble playing back to your iOS device, check that your stream is being encoded to H.264 video and AAC/MP3 stereo audio and a profile and level supported by your device. With older devices, 44100 Hz and 128 kbps works well for playing back MP3 files. Check technical specifications for broader range of support for newer devices.

    Profile and level support information can be found in Apple's technical specifications for each device.

    • iPhone 3GS and older devices support Baseline Profile level 3.0 and lower
    • iPhone 4S supports High Profile level 4.1 and lower
    • iPhone 5C supports High Profile level 4.1 and lower
    • iPhone 5S supports High Profile level 4.1 and lower
    • iPad 1 supports Main Profile level 3.1 and lower
    • iPad 2 supports Main Profile level 3.1 and lower
    • iPad with Retina display supports High Profile level 4.1 and lower
    • iPad mini supports High Profile level 4.1 and lower

    For testing purposes, encode to Baseline Profile level 3.0, lowest common denominator, for testing playback of a single stream to all your iOS devices. For step-by-step configuration and sample playback URLs, see the Tutorials section.

    For Adaptive bitrate (ABR) streaming to Apple iOS devices, you can use a Synchronized Multimedia Integration Language (SMIL) file to provide the best possible viewing experience given the user's device and bandwidth. The player selects which is the best stream suited to play based on the stream's metadata.

    For example, let's say you have 3 live streams encoded at different bitrate/profile levels: myStream_baseline.stream (Baseline Profile level 3.0, 200 kbps total bitrate) targeted at iPhone 3GS playback, myStream_main.stream (Main Profile level 3.1, 200 kbps) targeting at iPad 1, original iPad 2, iPhone 4S playback and myStream_high.stream (High Profile level 4.1 at 300 kbps) targeted at The New iPad playback. Using a text editor, create a SMIL file in the [install-dir]/content folder with the name myStream.smil with the following content:

                <video src="myStream_baseline.stream" system-bitrate="200000"/>
                <video src="myStream_main.stream" system-bitrate="200000"/>
                <video src="myStream_high.stream" system-bitrate="300000"/>
    You can see that there is a <video> entry in the <switch> container for each rendition of the stream. The system-bitrate value is set to the total bitrate in bits-per-second for that stream.

    To play using an Apple iOS device (Cupertino/Apple HTTP Live Streaming)
    Enter the following URL into the Safari web browser on the device:
    For ABR workflows, you need to have an encoder that can generate multiple bitrate streams from the same source that are properly keyframe aligned. Wowza Transcoder can ingest a single high bitrate live stream and create multiple lower bitrate renditions on the fly that are properly keyframe aligned.

    Log files will give feedback about the current stream and profile/ level which may cause playback issues. This warning message indicates that there will be a playback problem if attempting to play back on an iPhone 3 or older device because the video is encoded as Main Profile level 3.1 and iPhone 3 and older devices support the lower Baseline Profile level 3.0 and lower.

    (Video may not be playable on older iPhone and iPod touch devices where Main/Level 3.1 or lower is required) Video info: : {MediaCodecInfoVideo: codec:H264, profile:Baseline, level:4.1, frameSize:320x240, displaySize:320x240, frameRate:25.000000}

    Originally Published: 04-10-2012.

    If you're having problems or want to discuss this article, post in our forum.