HowTo USING NGINX AS A MEDIA STREAMING EDGE
How media streaming works
You can skip this part of post if you know the streaming architecture and just want to set up origin with edge. Basically default media streaming infrastructure has the next schema.
Origin servers receive streams and convert them to deliver to the global network. Original source, mostly UDP multicast, usually has a 8-10 mbit/s bitrate and it couldn’t be sent directly. Origin makes two basic processes: packetization and transcoding. Packetization means stream conversion to format of special network protocol. It could be HLS, HDS, RTMP, whatever. After packetization stream has much lower bitrate and getting ready to be shipped. Transcoding means packetized stream conversion to many instances with customized bitrate and resolution. When you see a choice of qualities in video hosting like Youtube – that’s a transcoding job.
Edge servers drag processed streams from origin servers, cache them and deliver to end-users. You could ask: why do we need one more layer, when origin can make this task by itself? But this way of streaming is much more decentralized, and that’s a big plus. Transcoding operation brings too much overhead on the servers. It’s better to maintain just one network connection per stream with edge. The edge takes responsibility for network high load. The main idea – take a stream just once and deliver this instance for everybody. It saves a big part of network bandwidth.
Configure Wowza HTTP Origin
1. Create at the Wowza Manager new Live HTTP Streaming application. Note: for this purpose you’ll need extended Wowza license. It doesn’t work with trial license. For example, let’s call our new app “catchup”.
2. Edit to the application config file ([wowza_dir]/conf/[app_name]/Application.xml). Add to the <HTTPStreamer>/<Properties> XML block new properties.
You can skip this part of post if you know the streaming architecture and just want to set up origin with edge. Basically default media streaming infrastructure has the next schema.

Origin servers receive streams and convert them to deliver to the global network. Original source, mostly UDP multicast, usually has a 8-10 mbit/s bitrate and it couldn’t be sent directly. Origin makes two basic processes: packetization and transcoding. Packetization means stream conversion to format of special network protocol. It could be HLS, HDS, RTMP, whatever. After packetization stream has much lower bitrate and getting ready to be shipped. Transcoding means packetized stream conversion to many instances with customized bitrate and resolution. When you see a choice of qualities in video hosting like Youtube – that’s a transcoding job.
Edge servers drag processed streams from origin servers, cache them and deliver to end-users. You could ask: why do we need one more layer, when origin can make this task by itself? But this way of streaming is much more decentralized, and that’s a big plus. Transcoding operation brings too much overhead on the servers. It’s better to maintain just one network connection per stream with edge. The edge takes responsibility for network high load. The main idea – take a stream just once and deliver this instance for everybody. It saves a big part of network bandwidth.
Configure Wowza HTTP Origin
1. Create at the Wowza Manager new Live HTTP Streaming application. Note: for this purpose you’ll need extended Wowza license. It doesn’t work with trial license. For example, let’s call our new app “catchup”.
2. Edit to the application config file ([wowza_dir]/conf/[app_name]/Application.xml). Add to the <HTTPStreamer>/<Properties> XML block new properties.
Relate Threads