Show HN: Lightspeed – subsecond, open source, self hosted stream from OBS

Last modified on January 04, 2021


Logo

Stars Badge
Forks Badge
Pull Requests Badge
Issues Badge
GitHub contributors
License Badge

A self contained OBS -> FTL -> WebRTC reside streaming server. Made out of three sides as quickly as configured any particular person can produce sub-2nd OBS to the browser livestreaming

Learn about Demo
·
Document Bug
·
Inquire of Just

Desk of Contents

  1. About The Mission
    • Built With
    • Parts
  2. Getting Started
    • Need to haves
    • Installation
      • Lightspeed Ingest
      • Lightspeed WebRTC
      • Lightspeed React
  3. Usage
  4. Streaming From OBS
    • Stream Key
  5. Roadmap
  6. Bugs
  7. Contributing
  8. License
  9. Contact
  10. Acknowledgements

About The Mission

Mission Lightspeed is a really self contained reside streaming server. With Lightspeed it's doable so that you can to deploy your maintain sub-2nd latency reside streaming platform. The Lightspeed repository includes the instructions for putting in and deploying your full utility.

Built With

  • Rust
  • Golang
  • React

Parts

  • Lightspeed Ingest
  • Lightspeed WebRTC
  • Lightspeed React

Getting Started

In disclose to earn Lightspeed working you're going to should arrange all three repositories. There are set up instructions in each repository nonetheless I'll encompass them proper right here for the sake of simplicity.

Need to haves

In disclose to bustle Lightspeed, Golang, Rust, and npm are required. Additionally the Rust repo requires a C compiler. Whilst you earn a linker cc now not found error you then definately want to arrange a C compiler.

Installation

Lightspeed Ingest

git clone https://github.com/GRVYDEV/Lightspeed-ingest.git
cd Lightspeed-ingest
cargo personal

Lightspeed WebRTC

The notify of stroll earn

export GO111MODULE=on
stroll earn github.com/GRVYDEV/lightspeed-webrtc

The notify of git

git clone https://github.com/GRVYDEV/Lightspeed-webrtc.git
cd Lightspeed-webrtc
export GO111MODULE=on
stroll personal

Lightspeed React

git clone https://github.com/GRVYDEV/Lightspeed-react.git
cd Lightspeed-react
npm arrange

Usage

Lightspeed Ingest

cd Lightspeed-ingest
cargo bustle --release

Lightspeed WebRTC

The notify of stroll earn

lightspeed-webrtc --addr=XXX.XXX.XXX.XXX

The notify of git

cd Lightspeed-webrtc
stroll personal
./lightspeed-webrtc --addr=XXX.XXX.XXX.XXX
Arguments
ArgumentSupported ValuesNotes
--addrA legit IP handleHere's the native Ip handle of your machine. It defaults to localhost however have to be ship to your native IP. As an illustration 10.17.0.5 Here's the place the server will hear for UDP packets and the place this may host the websocket endpoint for SDP negotiation

Lightspeed React

First that you simply simply should configure the websocket url in src/wsUrl.js. Whilst it's seemingly you may per likelihood effectively correctly be using an IP then this may nearly undoubtedly be the general public IP of your machine if in case you may have DNS then this may nearly undoubtedly be your hostname.

You are going to be in a quandary to host the static area throughout the neighborhood using befriend that could possibly be found proper right here

cd Lightspeed-react
npm bustle personal
befriend -s personal -l 80

The above will befriend the personal folder on port 80.

Learn about Lightspeed in your web browser by visiting http://hostname or http://your.ip.handle.proper right here

Streaming From OBS

By default since we're using the FTL protocol you possibly can't attractive notify a customized server. You are going to should edit your corporations.json file. It will even be found at:

Windows: %AppDatapercentobs-studioplugin_configrtmp-companiescompanies.json

Mac: /Users/YOURUSERNAME/Library/Utility Give a improve to/obs-studio/plugin_config/rtmp-companies/corporations.json

Paste the beneath into the businesses array and alternate the url to both the IP or the hostname of your Mission Lightspeed server

{
    "title": "Mission Lightspeed",
    "conventional": unfounded,
    "servers": [
        {
            "name": "SERVER NAME HERE",
            "url": "your.lightspeed.hostname"
        }
    ],
    "prompt": {
        "keyint": 2,
        "output": "ftl_output",
        "max audio bitrate": 160,
        "max video bitrate": 8000,
        "profile": "main",
        "bframes": 0
    }
},

After restarting OBS that you simply simply have to be in a quandary to ogle your service throughout the OBS settings pane
(Special On fable of Glimesh for these instructions)

Stream Key

By default the scoot secret is 123456789-aBcDeFgHiJkLmNoPqRsTuVwXyZ123456 This is ready to per likelihood per likelihood even be modified by enhancing line 248 in src/connection.rs throughout the Lighspeed Ingest mission. In due route I'll create a system that makes it easier to reset and put together your scoot key

Roadmap

I'll seemingly be fleshing out the roadmap throughout the coming days. As of very best now I want to earn Lightspeed to a level the place it's as shut to a spread of reside streaming corporations as that it's seemingly you may per likelihood effectively focus on of. If there are any sides that you simply simply actually want to ogle then actually be happy to indicate them!

Watch the open factors for an inventory of proposed sides (and recognized factors).

Bugs

I'm very eliminated from unbelievable and there are certain to be bugs and points I've neglected throughout the set up route of. Please add factors and actually be happy to achieve out if the remaining is unclear. If Lightspeed will get sufficient consideration I shall be succesful to personal a Discord server the place I shall be succesful to extra with out problems work at the side of people.

Contributing

Contributions are what personal the open present neighborhood such an unbelievable enviornment to be be taught, encourage, and personal. Any contributions you personal are drastically appreciated.

  1. Fork the Mission
  2. Salvage your Just Branch: git checkout -b attribute/AmazingFeature
  3. Commit your Changes: git commit -m 'Add some AmazingFeature'
  4. Push to the Branch: git push basis attribute/AmazingFeature
  5. Originate a Pull Inquire of

License

Distributed beneath the MIT License. Watch LICENSE for extra recordsdata.

Contact

Garrett Graves - @grvydev

Mission Hyperlink: https://github.com/GRVYDEV/Mission-Lightspeed

Acknowledgements

  • Sean Dubois
  • Hayden McAfee

Read More

Similar Products:

    None Found

Recent Content