Wowza Community

Including 64 kbps audio-only HTTP Live stream in the playlist using cupertino

Hello everyone,

We are currently using Wowza Server 3 to deliver video to our iPhone APP using cupertino (HLS) protocol and it was just rejected with the following reason:

Video streaming content over a cellular network longer than 10 minutes must use HTTP Live and include a baseline 64 kbps audio-only HTTP Live stream:confused:

All of our video in Amazon S3 are in H.264 encoding and they are all 500Kbps. In our iPhone app, all of our video links are set to deliver m3u8 playlists.

For example:

http://our_aws_s3_domain/vods3/_definst_/mp4:amazons3/ourbucket/flavor2/2012-05-03-bp-13_500k.mp4/playlist.m3u8

I am guessing the reason they rejected our app is because they are looking for 64 kbps audio-only HTTP Live stream.

Can someone shed some light on how ya’ll solved this problem or include this in our playlist.m3u8 through Wowza 3?

Thanks for your help!

Take a look at this article:

https://www.wowza.com/docs/how-to-create-apple-app-store-compliant-streams

Richard

For vod app, of course do not follow any of the live guides, and you don’t need the property in the LiveStreamPacketizer /Properties. It it were live app, it would be 2nd one. The first is the Streams Properies container.

Richard

If you see two streams now, that is good so far. The audio stream will be the audio track that is in the other stream – whatever that is. If it is 128kbs MP3 audio track, then that’s what the audio stream will be, in which case the Apple Store requirement is not met. It has to be a 64kbs audio track.

It is best if the audio track is AAC. MP3 audio track that is under 128kbs won’t work in all iOS devices, so the technique works, but it won’t satisfy Apple Store req.

Richard

The method you are using extracts the audio track, it doesn’t transrate. The bitrate of the audio track you extract is the bitrate of the audioonly stream. So encode the video or live stream to have a 64kbs AAC stream for best results with this method. 64kbs MP3 will work in recent iOS devices running iOS 5.0.1, but not older devices which only support 128kbs MP3. So AAC is recommended.

Richard

The Wowza Transcoder works with live streams. We recommend Expression 4 Encoder for multi-bitrate vod encoding, because it creates key frame aligned sets that are necessary for multi-bitrate streaming to work.

https://www.wowza.com/docs/how-to-encode-video-on-demand-content

Richard

Please detail the steps you took.

Richard

Thanks Richard for that article,

I appreciate your patience as you deal with me. I was reading through it and I was wondering if I can clarify few things with you.

First of all, since I am not Live Streaming do I still need to setup my app following these tutorials?

RTMP, RTSP/RTP:

https://www.wowza.com/docs/how-to-set-up-live-streaming-using-an-rtmp-based-encoder

MPEG-TS:

https://www.wowza.com/docs/how-to-publish-and-play-a-live-stream-mpeg-ts-based-encoder

Native RTP (SDP file):

http://www.wowza.com/community/t/-/65

IP Camera (RTSP/RTP re-streaming):

https://www.wowza.com/docs/how-to-re-stream-video-from-an-ip-camera-rtsp-rtp-re-streaming

In my case, I am using amazon Wowza 3 EC2 to deliver S3 contents so that it can be segmented. That being said, I opened and edited the file /home/wowza/conf/live/Application.xml

<Streams>
                        <StreamType>live</StreamType>
                        <StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
                        <KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
                        <!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater -->
                        <LiveStreamPacketizers>smoothstreamingpacketizer,cupertinostreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>
                        <Properties>
                                <Property>
                                    <Name>cupertinoCreateAudioOnlyRendition</Name>
                                    <Value>true</Value>
                                    <Type>Boolean</Type>
                                </Property>
                        </Properties>
                </Streams>

But then further down I found another section with similar tag

<LiveStreamPacketizer>
                        <Properties>
                        </Properties>
</LiveStreamPacketizer>

Which one does it apply to us?

I hope I am making sense

Thanks

Thanks Richard,

Since I have an application named vods3, I added the HTTPStreamer/Properties described in the article to the conf/vods3/Application.xml. Now I see two streams in our playlist.m3u8.

I hope I understood correctly.

I don’t know if you came across people with this issue, but based on what I did so far, do you reckon this meets the “baseline 64 kbps audio-only HTTP Live stream”? Does it have to serve exactly 64kbps?

Much obliged

Thanks Richard, I am learning alot.

Our playlist looks like this:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=685859,CODECS="avc1.66.30, mp4a.40.2",RESOLUTION=640x360
playlist.m3u8?wowzasessionid=552843915
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=140794,CODECS="mp4a.40.2"
playlist.m3u8?wowzaaudioonly&wowzasessionid=552843915

It looks like mp4a.402.2 is ACC encoded file yea? I am wondering about the BANDWIDTH for it. It doesn’t look like the BANDWIDTH for mp4a.40.2 is 64kbps.

Does this value change depending on the available bandwidth for client?

Wow, I see, any examples out there on how to transcode the audioonly stream to 64kbs? Trying to figure out the what to do…We have thousands of video files already, I don’t know if it is feasible to re encode these videos. Are there any way wowza can transcode the original video on the fly from S3 it and spit out 64kbps of audio stream in m3u8 playlist?

I am reading something here about transcoders…https://www.wowza.com/docs/how-to-set-up-and-run-wowza-transcoder-for-live-streaming#hwDriverReq

I hope I am on the right track here, but how would this work with S3? I am assuming we need a link like this to output a m3u8 playlist…

http://our_aws_s3_domain/vods3/_definst_/mp4:amazons3/ourbucket/flavor2/2012-05-03-bp-13_500k.mp4/playlist.m3u8

Any insights?

THanks

Hum, if I am understanding correctly with Expression 4 Encoder, I’d have to re-encode my videos that is stored in S3. That will take weeks for us…

Since we are using Cloudfront to stream out using rtmp (and from my understanding rtmp stream is considered live stream in wowza yea?) is it possible to use Wowza Trascoder and generate a adaptive bitrate HTTP Stream that will meet AppStore requirement?’

I don’t think I can use Wowza unless there is a way I can translate the audio stream to 64kbps on our thousands of mp4 on the fly with Wowza. I don’t think we are going to re encode our video library.

Thanks anways.

dear Richard , i did what all the steps you had told me and even did the same settings in the smil file and even changed the adobe flash media live encoder settings with only two streams , still my app got rejected. please help me . is there any way i can contact you ? if yes please pm me the details and i will contact you

Take a look at this article:

https://www.wowza.com/docs/how-to-create-apple-app-store-compliant-streams

Richard

can u help me