Streaming Satisfactory

We’ve been kind of neglecting this blog, haven’t we? Oh well. Best way to change that is to start posting again. In any case, hi! I’m Querral and this is my first solo post on here, though I may have… heavily influenced the reverse engineering series.

Yesterday, after weeks of talking about it, I finally attempted a game stream. I took a poll on my mastodon last week and Satisfactory won, so I started a new game of that. I basically had no idea going in how things were going to go.

I might have hedged a little in my announcement post and said “It’ll be a disaster but hopefully an entertaining one.”

And you know what? For a first attempt, it went really well. Completely unexpectedly, Archadia joined me and provided some commentary, which I think made things a lot more entertaining. Siburis broke in a few times to cackle gleefully at outmaneuvering the local wildlife. And best of all, a nonzero number of people showed up to watch, which was never a given.

I think we had an audience of three at one point, which was really nice.

But it was a first attempt, and so there were problems. Aside from the game crashing a couple of times (early access, woo!), the big issue was video buffering. See, me being me, I didn’t use one of the big streaming services like Twitch, because, well, fuck Twitch. No, I decided to try and use Owncast.

First of all, let me say that Owncast is actually really well put together. It works better as an alpha than a lot of supposedly release-quality software does. But like a lot of self-hosted gubbins, it requires you to know what you’re doing, and I kind of don’t yet.

The greatest strength of running your own self-hosted services is that you can set them up exactly how you want them, generally with very few restrictions. But the corollary of that flexibility is that you’re perfectly free to shoot yourself in the foot if you don’t know exactly what you’re doing, and that’s their greatest weakness.

(Well, that and hosting itself can be a little inaccessible. I’ve got an old desktop that lives under my desk to act as a server, and that’s not a luxury many folks have.)

You’d think that I’d know all about streaming junk considering I used to work on WebRTC, but that was almost a decade ago now, and it was all using different technologies to modern video streaming. So I’m more or less an RTMP novice, and it shows.

In truth, I’m not really sure what the big problem was. Owncast uses ffmpeg to transcode video streams behind the scenes, so my server was doing some pretty heavy lifting, but the reported CPU use never went above 80% or so. My upstream bandwidth should have been good to handle twice the bitrate I’d specified. But the folks watching kept getting buffering issues, and the latency kept getting worse and worse as it happened.

I’m not sure what to do with it yet. I think I’m going to have to run some test streams with dummy video just to try out various different Owncast configurations and see if I can find something that’ll behave itself. It might be CPU issues despite the apparent idle cores; it might be that I wasn’t offering low enough bitrate options to allow for bad connections on my viewers’ part; it might be any number of things I haven’t thought of.

This is why most people just use Twitch, honestly. But I’m not giving up yet. I do not want ads on my stream if I can possibly avoid it.

All told, I’m feeling good about doing this again. And I probably will at the same time next week. Just with a bit of troubleshooting between now and then.