IPhone – App Rejected again, HTTP Live Streaming 64kbps baseline feed

appstore-approvalbaselineios4iphonestreaming

Thank you for submitting APPNAME_HERE.
We have reviewed your application and
have determined that it cannot be
posted to the App Store at this time
because it is not using a baseline
stream of 64 kbps for the HTTP Live
Streaming protocol to broadcast
streaming video. HTTP Live Streaming
is required when streaming video feeds
over the cellular network, in order to
have an optimal user experience and
utilize cellular best practices. This
protocol automatically determines
bandwidth available to users and
adjusts the bandwidth appropriately,
even as bandwidth streams change.
This allows you the flexibility to
have as many streams as you like, as
long as 64 kbps is set as the baseline
feed.

This is what I have gotten from Apple, eventhough I have a 48kbps, 64kbps, 128kbps AND 384kbps stream available.
How do I set the baseline feed? The way my app works now is it loads the lowest available first and then scales upwards with the bandwidth.
This is my index m3u8

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=48000
stream-soundonly.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000
stream-64k.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=128000
stream-128k.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=384000
stream-384k.m3u8

Apple is really being nitpicky

Best Answer

We ran into the same issue. Apple doesn't only inspect your M3U8 file to ensure it complies. They also monitor your streams to make sure they are what you say they are. Our stream turned out to be higher-than-64K -- because we didn't factor in the audio bandwidth (a careless, but important oversight). Remember that 64K applies to the entire stream: Video + Audio <= 64000.

If you are in doubt, Apple also offers the same stream-monitoring software. If you ask them, they will provide you a link to it. At least they did to my group.

Related Topic