Keyframe 0.1

Self-hosted community video streaming

Hi everyone!

My name is Shell, and I'd like to announce the first pre-release of my free software project, Keyframe - a self-hosted live video streaming server with integrated chat.

Today, the world of video streaming is dominated by the big names - Amazon's Twitch, Facebook Live, Google's Youtube. Streamers are restricted by their platforms in what content they can broadcast, in constant risk of being banned by automatic processes without adequate human recourse, and give a significant cut to their platforms in order to monetise, while being unable to leave - that's where their viewers are.

Keyframe is a project to allow streaming communities to break free of these platforms, by providing digital infrastructure integrating a live streaming server and community features, installable on your own server. I have a test stream available if you want to see what it looks like in its current state.

Keyframe could also become important for webcam models, who currently depend on streaming platforms which take approximately a 50% cut. By setting up cooperative structures to host their own streaming servers, they could cut out the middleman and take more of the income that their audiences want to give them.

The history

I started working on self-hosted video streaming for alterednarrative.net as I wanted to stream myself playing video games, but didn't want to sign up for yet another large company's service and embed my online life further into their grasp. The first version was some ad-hoc configuration around nginx-rtmp-module, the Prosody XMPP server and Converse.JS.

Shortly after showing it off to some friends, they asked me whether they could use it for a variety of things - from video game streaming like myself, to streaming themselves coding or creating art, to webcam modeling.

I talked about it a little as part of a presentation on hosting your own internet services at NorthernRST, and set myself to work on releasing a version that could be installed by other people, fixing up the set of ad-hoc hacks I'd built for myself.

The plan

The immediate future plan is to build ActivityPub support into Keyframe, allowing viewers to follow streamers wherever they are and from whatever Fediverse platform they use; and streamers to interact with their viewers, sharing updates and video clips, and responding to their viewers' comments even when offline.

I'd also like to implement re-encoding and automatic quality switches based on bandwidth available, reduce latency as much as possible, integrate a variety of monetisation options (and the flexibility for streamers to build their own), work on the chat system, and make the system installable on a wider range of servers - i.e. drop the dependency on NixOS by using nix-bundle to create a cross-platform build.

I need your help

To do all this though, I need your help. I'm currently living in a squat in the Netherlands, having recently been made homeless. I'm looking to build some recurring income so I don't have to worry about access to food and healthcare while working on this. To that end, I've set up a Liberapay profile. By donating to me on Liberapay, I can be more assured of a continuing income every week and focus my efforts on making Keyframe the best technology it can be, for streamers and viewers everywhere.

If you're interested in keeping up with this project, you can follow me (and therefore this blog) on Plume, Mastodon, Pleroma, or your Fediverse system of choice - @shell@alterednarrative.net.

If you want to talk to me, please comment on this post with your Fediverse account, send me an email, or get in touch with me on XMPP - both addresses are shell@alterednarrative.net.