Skip to content

mrjxtr/mr-streamer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mr-streamer 📡

Stream once, broadcast everywhere. A tiny Go supervisor around ffmpeg that takes a single RTMP input and fans it out to Facebook, YouTube, and Twitch at the same time, or just the ones you pick.

Requirements 📋

  • Go 1.26+
  • ffmpeg on your $PATH (built with the tee muxer, which is the default)

Setup ⚙️

  1. Copy the example env and fill in your keys:

    cp .example.env .env
  2. Edit .env:

    FB_STREAM_KEY=your-facebook-key
    YT_STREAM_KEY=your-youtube-key
    TW_STREAM_KEY=your-twitch-key
    
    MR_STREAM_KEY=any-secret-of-your-choice
    
    PORT=1935

    MR_STREAM_KEY is any string you make up. It's the local key your streaming software (OBS, etc.) uses to connect to mr-streamer, so treat it like a password. 🔑

Run ▶️

go run .

Or build it:

go build -o mr-streamer
./mr-streamer

Pick platforms 🎛️

By default mr-streamer pushes to all three. Pass flags to stream to only some:

Flag Platform
-fb Facebook
-yt YouTube
-tw Twitch
go run .              # all three (default)
go run . -tw          # Twitch only
go run . -fb -yt      # Facebook + YouTube

You only need the stream keys for the platforms you actually select. MR_STREAM_KEY and PORT are always required.

Stream to it 📺

Point OBS (or any RTMP source) at:

rtmp://localhost:<PORT>/live/<MR_STREAM_KEY>

That single feed gets relayed live to whichever platforms you selected (all three by default). 🎥

Stop it 🛑

Ctrl+C once for a graceful shutdown (10s grace before force-kill). Hit it again if you're impatient.

License 📄

MIT. See LICENSE.

About

A tiny Go supervisor around ffmpeg that takes a single RTMP input and fans it out to Facebook, YouTube, and Twitch at the same time.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages