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
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.
Another thing that may be helpful is to factor in variable bitrate encoding, which means that it is difficult to predict exactly what the average and maximum bitrate will be for any given segment.
When encoding, set the target bitrate of your audio-only stream low enough so that no segments go above 64kbit/s (the right number takes a bit of trial and error).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With