Quick steps for starting your own streamplace development environment.

I followed steps from https://stream.place/docs/guides/start-contributing/streamplace-dev-setup/ and noted down my stumbling blocks. Overall the docs are pretty comprehensive, just darwin focused and missing some context. This should help anyone start a streamplace node + UI and connect them for testing without a “production” bluesky account

  1. Clone repo

    git clone [[email protected]](<mailto:[email protected]>):muxionlabs/streamplace.git 
    
  2. Ensure you have at least go 1.25

  3. Build and run streamplace node (go backend)

    cd streamplace
    go mod download
    ./build-linux-amd64/streamplace
    
  4. Run the Streamplace node using the .vscode/launch.json config. Recommended to use the following debug config with added flags to allow for developing without an account - see https://stream.place/docs/guides/start-contributing/streaming-in-development/#streaming-without-the-relay.

    Here is a mod that worked for me:

    https://github.com/muxionlabs/streamplace/blob/79ba1ea97f422d4e1b8db88f5200efcb3ebaa211/.vscode/launch.json

    <aside> 💡

    Might need to run sudo apt install xvfb for this

    </aside>

    <aside> 💡

    You may also need to run this command if you encounter issues:

      sudo chown root:root node_modules/electron/dist/chrome-sandbox
      sudo chmod 4755 node_modules/electron/dist/chrome-sandbox
    

    </aside>

  5. Start the UI

    source ~/.nvm/nvm.sh && nvm use 22.15.0
    pnpm install
    
  6. Access the application at http://127.0.0.1:38080/

  7. Once the front-end is running:

    1. Click Settings
    2. Advanced
    3. Turn on Custom Node
      1. Set the url to the host and port of your StreamPlace node (example: http://127.0.0.1:38080)

        image.png

        1. Click Save.
  8. Click Home

    Success!

    image.png

    <aside> 💡

    You should see a message “No one is streaming right now” instead of an error / “retry” button. If connectivity issues persist, check port forwardings in vscode

    image.png

    </aside>

To send a test stream:

  1. Download the test video

    wget <https://storage.googleapis.com/streamplace-crap/BigBuckBunny_1sGOP_4kp60_NoBframes.mp4>
    
  2. Convert the video to the correct audio format (opus) before proceeding:

    ffmpeg -i ~/Big_Buck_Bunny_360p_1sGOP_NoBFrames.mp4   -c:v copy   -c:a libopus -b:a 128k   ~/Big_Buck_Bunny_360p_1sGOP_NoBFrames_opus.mp4
    
  3. Start Streamplace UI and Server, then run the following command:

    ./build-linux-amd64/streamplace whip --file=$HOME/Big_Buck_Bunny_360p_1sGOP_NoBFrames_opus.mp4 --count=1 --viewers=0
    

    <aside> 💡

    The file path must be absolute.

    </aside>

  4. Once the stream starts, copy the did identifier from the logs and paste it into the URL path for Streamplace UI. (example: http://localhost:38080/did:key:zQ3shcByw3CwdeLRoxPhznFzpHyDgAnqCTEVnXviRUi1WJtqp

    image.png

Websocket interface