We are performing live streaming from public lectures and used Windows Media Services successfully for many years.
Now we changed to Wowza for evaluation purpose and experienced a lot of problems on the client side with buffering.
We applied all the tuning tips, server hardware is Xeon 2x Dual Core AMD Opteron 2.6 GHz CPU, 16GB RAM running Windows Server 2008 R2 with 1Gbit/s uplink at Level(3) facility Munich where also the old Windows Media Server is located. So server connectivity is not an issue. Clients mainly come from DSL providers in Germany but also worldwide.
We used Adobe Strobe player with sanjose HTTP stream URL and stream groups created from the transcoder plugin. Clients experienced a lot of buffering and even complete breaks. We tried with JW Player and the multiple bitrate RTMP streams produced by jwplayer.rss Provider with the same result. It was really bad and nobody had a smooth streaming experience. About the cupertino streams I cannot remember any more.
In the logs we could see a lot of stream connects and disconnects happening every second. Client number was at about 300. Source stream bitrate was at 850kbit/s using FMLE which degraded the bitrate automatically some times down to 400kbit/s and then back again to 850
Then we undid the server tuning actions, first I turned on the Windows TCP Autotuning again with no improvement.
Then I undid all the Java memory and CPU tunings and switched back from JDK Java VM 1.7.1 to JRE 1.6.2 shipped with Windows. Both were the x64 server variants. Don't nail me down on the exact version numbers, but this improved the situation and the clients had a much better streaming experience although still not free of buffering but now much longer periods of uninterrupted viewing. cupertino streams worked flawlessly.
We also did some network optimizations on the sender side. We had a ADSL line with 1Mbit/s up and 16 down, speed was quite OK, but ping times to the Wowza server varied from 23 to 80ms and worse quite often. We tweaked some router settings and set the stream bitrate to 600kbit/s, FMLE never decreased bitrate. This gave us constant ping times from 23-27ms and uninterrupted viewing on the client side for over 3 hours of stream!!!
But now at another event we had an SDSL line with 2Mbit/s up and down and ping times at 12-20ms when no stream is running. I was sending with 1.2Mbit/s and had ping times from 32 to 50ms, FMLE did not decrease bitrate. Clients using sanjose HTTP stream experienced significantly more buffering than those with RTMP in JWPlayer which almost played flawlessly expect some glitches from time to time. cupertino streams worked flawlessly. All stream types use adaptive bitrate streaming from the transcoder plugin. Now we had almost 500 viewers which gave the server CPU almost 75% constant load.
Before deciding to buy Wowza I would like to ask for some feedback on my resulting questions:
- what was behind the massive problems after applying the tuning actions and how to really tune it without these negative effects?
- how does CPU consumption correlate with source stream bitrate, transcoded streams and number of viewers?
- why does varying network latency from sender to server affect viewer experience quite strongly while Windows Media was totally stable from the same locations earlier?
- why is RTMP in JW Player working better than sanjose in Strobe Player? Also viewers from countries with bad Internet quality had a significantly better experience with RTMP in JW. Is there a way to make sanjose as stable as RTMP?
Thanks very much in advance,