Wowza Community

How do I configure origin/edge live streaming to provide HLS to iOS devices?


I have a server that acts as origin/balancer and multiple servers that act as edges. I now have a requirement to deliver HLS to iOS clients. I am guessing I have to use the Transcoder AddOn. My questions are:

I know at least for RTMP, the client flash player receives a redirect to the least loaded edge. For HLS, how will this work with the balancer? More specifically, how will the IOS client be notified as to which edge it needs to connect to receive HLS stream?

All I know about HLS protocol is that it breaks apart the video into .ts files and clients loads m3u8 to play the .ts chunks over HTTP. How does Wowza deliver HLS in a origin/balancer, edge setup?

Thanks in advance.

No, Transcoder is not required. Take a look at this guide:

Note that the standard LiveStreamPacketizers that are used on the origin, but there are repeater packetizers that are used on the edge. Also, you can remove packetizers that you are not going to use. In your case you only need cupertinostreamingpacketizer on the origin and cupertinostreamingrepeater on the edge.

Wowza has a load balancer:

You will use the HTTP method of get “least loaded server”. You have to do this either in your application server as you form the html for a client, or you can do it with javascript XMLHTTPRequest in the browser.


Is the name of a stream started on the origin? And are you using the method of specify an origin application with rtmp url in conf/liveedge/Application.xml /originURL ?

If so, I think the .stream file in this context might be a problem. Do this instead, create a .stream file on the edge, name it and make the contents the actual origin stream name, which is full rtmp url to the origin application + stream name

Edge File: /contents/

Contents: rtmp://[wowza-origin-address]:1935/liveorigin/

You can check the chunklist in any browser, this will download a file:



What live encoder are you using? What is the audio and video codec? Are you starting the stream in StreamManager on the origin?

If you still don’t have this working we can take a look. First, stop the origin and edge and rename or delete the current access log in both. Then re-start both the origin and edge. Then start the encoder and start the stream on the origin in StreamManager. Then test playback in iOS on the edge.

Then zip up and send the conf and logs folder for the origin, and separately the conf and logs folders from the edge to The logs folders only needs to contain the current access and error log that show the testing.’

Include a link to this thread for reference


Also, send the .stream files you are using.

Check them to see if there is .txt extension. That is a common cause of problem.


The application named “live” should use StreamType “liverepeater-edge”. For rtmp playback, if the origin stream is working, that should be all you need to play if contains the rtmp url to the origin stream, as you have shown. What happens when you try? Make sure it is not named

This is the basic guide for Live Repeater:


OK, I have have setup all that was suggested:

That means I can get HLS from edge by using



I am trying that on iOS safari but am having no response from that link.

Any ideas?

Thanks again


I have created a stream files as you describe, but still not able to play stream when refer to the liveedge url. Is it even possible, could you please provide som suggestions how to debug the issue. Or how to make stream file refer to other rtmp url?

Richard, thank you for a quick response.

I am trying to achieve the following goals:

  1. Need to stream source as MPEG-TS.

  2. Stream should be distributed via live-edge and lieve-origin instances configuration to provide public link and handle origin internally

Actually I am using one wowza installation for testing.

So to stream a MPEG-TS I have a file which contains


Then I have which contains exact path for the origin rtmp URL


I am using ffmpeg to reproduce the source

ffmpeg -re -i /Library/WowzaMediaServer/content/sample.mp4 -vcodec libx264 -g 60 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts udp://

video is a out of the box wowza default sample example.mp4

it has H264 video and AAC audio streams

What do I have working:

  • I am able to see stream if I go directly rtmp://localhost/liveorigin/

What I need to work

  • See the stream when I use rtmp://localhost/live/


forgot to say, I am using web stremmanager console on 8086 port for management