At least, not for the time being. If you’ve read some of my previous entries, you’ll know that I’ve figured out a way to stream to both Twitch and to YouTube, simultaneously. The summary is that I send a 50Mbit/sec 1440p/60FPS stream from my gaming PC to my dual Xeon server over the network at home. The server turns around and re-streams that feed, completely untouched, straight to YouTube. It also scales and compresses the hell out of the stream to a 3.5Mbit/sec, 720p/60FPS output, and sends that to Twitch.
All was working fine until just recently. YouTube’s ingest servers started barfing on my 50Mbit/sec stream. It was too much for them to handle, apparently. I guess more and more folks are using YouTube Live, or YouTube has just put limits on the servers. Either way, I was getting massive stuttering, all sorts of nasty frame drops, and other badness. Further, while watching the stream health window on YouTube, I received regular errors from them saying something along the lines of my bitrate of 50Mbit/sec was too high, and that I needed to adjust it downward to 10Mbit/sec.
Well. This was a bit of a surprise. I didn’t think I could handle this change because my server is already working its tail off trying to compress the 50Mbit/sec stream from my PC to send it to twitch. I didn’t think it could also compress that same stream to 10Mbit/sec to send to YouTube. I did give it a try though, by adding a second exec line in the nginx.conf file. This one called ffmpeg to compress the stream down to 10Mbit/sec and feed it to a new output. The RTMP module took that output and sent it to YouTube.
It didn’t work well, at all. Again, the server is receiving a 1440p/60FPS 50Mbit/sec stream directly from my PC over the network. I asked it to scale and compress one copy of that stream down to a 720p/60FPS 3.5Mbit/sec stream and send it to Twitch. I also asked it to compress a second copy of that stream to a 1440p/60FPS 10Mbit/sec stream, and send that to YouTube. The resulting load average on my server rapidly approached 30.
In other words: it was working its ass off. And it couldn’t keep up.
That’s unfortunate. YouTube’s image and video quality is still vastly superior to Twitch’s. But the audience is on Twitch. In the short time I’ve been streaming to Twitch, I already have a (very small) regular following. Not so much on YouTube. So for the time being, I’m just going to comment out the section on the nginx.conf file that compresses and sends the stream to YouTube.
Twitch it is. For now.