I’ve configured 3 Wowza Streaming Engine servers following manuals for Load Balancer Plugin 4.0, one balancer and two edge servers. All servers are CentOS 6.5 based and running WowzaStreamingEngine-4.2.0. All of them have public IP addresses and networking is correct. I’m deploying a custom live streaming application involving load balancing for video pushing and high availability. The wowza platform is going to receive several streamings from autonomous video devices and the load balancer should direct these incoming streams to the edge servers. The mechanism for accesing the correct edge server after publishing the video to stream it back to the clients is not a problem thanks to a custom plugin which notifies another application server, so I think this is a bit of inverted use of the Wowza application.
I’ve configured the Live application to allow publishing with no restrictions in all 3 servers, and the edge with 2 connections limit for these tests. The policy is based in connection numbers and I can publish video directly to the edge servers, check the connections in the [load-balancer]:1935/loadbalancerInfo page and get the edge server with less connections when accessing [load-balancer]:1935/redirect/?request=server
I’m trying to publish a video with ffmpeg to the load balancer, which should redirect this incoming stream to one of the edges. The command to publish the video is
ffmpeg -re -i "C:\sample.mp4" -vcodec libx264 -vprofile default -vprofile baseline -r 24 -g 48 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -f rtsp -muxdelay 0.1 rtmp://[load-balancer]:1935/live/myStream
Although this balancer is configured to only act as load balancer server,
<Property> <Name>loadbalanceType</Name> <Value>Server</Value> <Type>String</Type> </Property>
the video publishing is not redirected to one of the edge servers, the load balancer receives it as an incoming stream and I can stream it in
Also, I’ve created a “redirect” application as stated in the manual and added the module com.wowza.wms.plugin.loadbalancer.redirect.ClientConnections after the last one; but if I try to use the /redirect application publishing with
ffmpeg -re -i "C:\sample.mp4" -vcodec libx264 -vprofile default -vprofile baseline -r 24 -g 48 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -f rtsp -muxdelay 0.1 rtmp://[load-balancer]:1935/redirect/myStream
neither redirection is performed and the video is published in the “redirect” application of the load balancer.
I can see it in the Incoming Streams section of the Live/redirect Application in the manager, and only the load balancer traffic increases.
I don’t know if load balancer is intended for redirection of incoming streamings, and I know a better approximation would be to get the edge server with less connections first with a simple http request to the load balancer and then publish the video there, but this is currently not possible and I would like to get the rtmp redirection when publishing. The ffmpeg compilation I’m using includes --enable-librtmp but I’m not getting any information involving redirections when publishing the stream.
Thanks in advance for any help you can provide, and sorry for any mistakes, English is not my first language. I can provide logs, configurations and debug information if needed.