Skip to content

Blueprint: set up a broadcasting node using Livepeer and OBS

Doug Petkanics edited this page Jan 9, 2019 · 13 revisions

Getting Started

Introduction

This document is a recipe for how to get started broadcasting on Livepeer.

The document will explain what basic equipment you will need to start.

It will also provide a very simple step-by-step method to install and configure the required software.

If you have any feedback on this, please send to me at chris at livepeer dot org.

Equipment

In order to create a broadcaster node using Livepeer and Open Broadcast Studio (OBS) you will need:

  • 1 x laptop / desktop / server

    • running Linux or Apple Mac

      • binaries are compiled for x86-64

      • requires MacOS 10.10 or above

    • connected to internet with at least 348kbps upload bandwidth

      • the minimum bitrate possible to stream from OBS is 232kbps
      • We recommend 50% contingency when streaming due to network instabilities.
      • wired Ethernet connection is typically more stable, although Wi-Fi_ / 4G / 3G are also good
    • with power supply (battery or mains power supply)

Method

Create a streaming node using Livepeer.

Download livepeer software

  • Go to go-livepeer software release page

  • Download the .zip file corresponding to your operating system (Linux = linux, Mac = darwin)

  • Extract the content of the .zip file into your favourite folder

Run livepeer

  • open a command-line-interface (such as terminal) in your favourite folder

  • run the following command:

./livepeer -rinkeby -v 6

-rinkeby is to connect to the Rinkeby Ethereum Testnet. If you would like to connect to the mainnet system, remove this section.

-v 6 is to output the highest level of logging

  • create a Passphrase

    • When you type, no characters will appear on the screen.
    • This is used to lock and unlock your account, so keep it safe
    • You will be asked for this every time you start running the node.
    • Enter this Passphrase twice to validate
  • enter the Passphrase again (!)

    • This unlocks the account

When you see the following message, then the streaming node is running:

LPMS Server listening on rtmp://127.0.0.1:1935

Sometimes you will see error messages about transaction gas limit, this is due to an error in the Ethereum node gas estimator on Rinkeby. You can use -gasLimit 4000000 to hard code the gas amount used per transaction.

Configure livepeer

  • open another command-line-interface in your favourite folder

  • run livepeer_cli by executing the following command:

./livepeer_cli
  • This will display the configuration of the node

  • Also, this provides a richer menu-based command-line-interface to help you to get started

  • get test Ethereum (if you are connected to the mainnet, this will be real Ethereum)

    • this method requires access to an account on twitter, facebook or google+. This is to stop automated trolls from attacking parts of the network.

    • If you do not have this, you can ask a friend on Livepeer's Discord channel to send you some test ETH

    • so, you copy the ETH Account from the NODE STATS to your clipboard.

      • This is a hexadecimal string starting with 0x, such as 0x0dDB225031cCB58fF42866f82D907F7766899014
      • Make a note of this, because you will be using it a lot.
    • Go to twitter, facebook or google+

      • Twitter is easiest, if you have an account already.
    • create a new public post containing the ETH Account in the text of the post

    • copy the URL for the post to your clipboard

      • For Twitter, select Copy link to tweet on the right hand side of the tweet
    • open Rinkeby Faucet in a browser

    • paste the URL for the post into the field, and click Give me Ether

      • This will transfer some test Ethereum into your ETH Account
      • This can take up to 10 minutes to arrive, but often happens in seconds, maybe faster
  • validate that you have received the Ethereum

    • open Etherscan's Rinkeby Explorer in a browser

    • paste the ETH Account into the search bar

    • view your balance in the ETH Account.

      • There should now be 1 transaction
      • If you do not have any Ethereum in your account, contact the Livepeer Team and someone there will be happy to help you get some test Ethereum.
  • deposit ETH into your broadcaster account

    • this deposit covers your broadcasting costs

    • enter 12 into livepeer_cli to select 12. Deposit (ETH) (this number might vary)

    • enter an amount you would like to deposit in WEI, and press return

      • Suggestion: 1000000000000000000 WEI or 1 ETH
      • This can take up to 10 minutes to arrive, but often happens in seconds, maybe faster
      • You can use Etherscan's Rinkeby Explorer to view the details of your ETH Account.
      • There should now be 2 transactions
  • If on testnet, enter 15 into livepeer_cli to select 15. Set broadcast config (this number might vary)

    • enter 300 (this will prevent you from being paired with an unmaintained transcoder)
  • Initialize the round through the livepeer_cli by selecting 5. Invoke initialize round

You are now ready to broadcast on Livepeer.

Download and install OBS

Configure OBS to broadcast on Livepeer

Launch OBS software

  • if you are opening for the first time, cancel the configuration wizard

  • Click Settings in the bottom right hand corner of the screen.

  • Select Stream from the menu on the left of the "Settings" window

  • Under Stream Type select Custom Streaming Server

  • for URL, put rtmp://localhost:1935

  • Click Output from the menu on the left of the "Settings" window

  • Under "Output Mode", select "Advanced"

  • Set the "Encoder" to "x264" , "Rate Control" to "CBR" and "Keyframe Interval" to 4

  • Click "OK" to close the "Settings" window

  • Under "Sources" click the + and select Text (Freetype 2) 2

  • Click OK

  • In the Text field type HELLO WORLD

  • Click OK

Note: If you want to broadcast video, you need to select "Video Capture Devices" in "Sources" and select your camera.

Start broadcasting and monitoring

  • Ensure livepeer is running (see instructions above)

  • Click Start Streaming in OBS.

You are now streaming using Livepeer
  • Open your terminal window to view your stream using ffplay: ffplay http://localhost:8935/stream/<your-stream-id>.m3u8

  • Alternatively, you can use any existing video player like Safari browser, or VLC to view the stream, by pasting the above URL into the URL bar or location field.

  • If you would like the outside world to be able to view your stream, open up port 8935 publicly, and share your machine's IP or DNS address to a viewer so they can play your stream at http://<your-ip-or-hostname>/stream/<your-stream-id>.m3u8. Put a CDN in front of your node to reach many users at scale. Instructions coming soon for configuring popular CDNs for this purpose.

You should see HELLO WORLD on a black screen.

If you get an error message This broadcast is currently offline, contact the Livepeer Team who can help you to debug.

After this, you are free to stream whatever content you want to configure in OBS.

Personally, I love to add cameras and microphones to OBS, and broadcast some lovely things at Livepeer TV. For more details, check out this post in Livepeer's forum.

You might also want to talk to the community at OBS Project.