Redirecting to channel...
Go Live
Check the card and press Go live. Everything else is in the rows under it.
Sign in to go live
Go live from this browser with your camera, your screen or both: no OBS, no download, no follower minimum. Sign in and this page opens your studio.
Sign in with OpenVibeNo account yet? One is made when you sign in.
Your first stream
Go live from this browser with your camera, your screen or both: no OBS, no download, no follower minimum.
Each stream you make keeps its own title, link and key. Make more any time.
RTMP Stream Setup
Your stream is created! Paste the info below into your streaming software and hit "Start Streaming".
rtmp://localhost:1935/live
loading...
OBS Studio Setup
- Open OBS → Settings → Stream
- Set Service to Custom
- Paste the Server URL above
- Paste the Stream Key
- Click "Start Streaming" in OBS
IRL Pro / Mobile Apps Mobile
Stream from your phone using IRL Pro, Larix, Prism Live, or any RTMP-capable mobile app.
Option A — Separate URL + Key fields
Use this if your app has separate "Server URL" and "Stream Key" fields (like OBS):
- In the RTMP URL / Server field, paste:
- In the Stream Key field, paste:
Option B — Single combined URL
Some apps only have one URL field. Paste the full URL with the key included:
loading...
Username & Password: Leave blank!
OpenVibe.Live uses your stream key for authentication — no username or password. If your app asks for credentials, leave both fields empty. The stream key in the URL is all you need.
IRL Pro Step-by-Step
- Open IRL Pro → ⚙️ Settings → Streaming
- Select Platform → Custom RTMP
- Paste the Server URL and Stream Key from Option A above
- Leave Username and Password empty
- Set Resolution to 720p, Bitrate to 2500–4000 kbps
- Go back and tap Go Live
Tips:
- Enable SRTLA Bonding in IRL Pro for better mobile reliability — combines WiFi + cellular
- Set the codec to H.264 for best compatibility
- If you see buffering, lower your bitrate to 1500–2000 kbps
- IRL Pro's chat overlay can be pointed at
https://openvibe.live/overlay/chat/your-usernamefor live chat on screen
FFmpeg CLI (No OBS) Advanced
Stream directly from a terminal — great for headless servers, Raspberry Pi, 3D printer cams, and automated pipelines.
loading...
loading...
loading...
24/7 Tips:
- Wrap in
while true; do ffmpeg ...; sleep 5; donefor auto-restart on disconnect - Use a
systemdservice ortmux/screensession for unattended streams - For IP cameras via RTSP, replace
-f v4l2 -i /dev/video0with-rtsp_transport tcp -i rtsp://camera-ip:554/stream -tune zerolatencyminimizes delay; remove it for 24/7 streams where latency doesn't matter
JSMPEG Stream Setup
Your stream is created! Copy one of the FFmpeg commands below and run it in your terminal. Ideal for Raspberry Pi, embedded devices, Linux desktops, and headless servers.
loading...
loading...
loading...
loading...
loading...
loading...
Quick Start
- Install FFmpeg:
sudo apt install ffmpeg(Debian/Ubuntu) orbrew install ffmpeg(macOS) - Copy a command above and paste it in your terminal
- Adjust the device paths if needed (see device discovery below)
- Press Enter — your stream will appear on your channel page
Finding Your Devices
Camera / Video
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --list-formats-ext
ffmpeg -f avfoundation -list_devices true -i ""
ffmpeg -f v4l2 -i /dev/video0 -frames 1 test.jpg && xdg-open test.jpg
Audio / Microphone
arecord -l
pactl list short sources
arecord -d 5 -f cd test.wav && aplay test.wav
Replace: -f alsa -i default → -f pulse -i default
Special Inputs
Start OBS → Tools → Start Virtual Camera → use /dev/video2 (or check v4l2-ctl --list-devices)
libcamera-vid -t 0 --inline --codec mjpeg -o - | ffmpeg -i pipe:0 -f mpegts -codec:v mpeg1video -s 640x480 -b:v 350k -bf 0 http://SERVER:PORT/KEY/640/480/
FFmpeg Tuning Reference
| Flag | What it does | Example |
|---|---|---|
-s | Resolution | -s 1280x720 |
-b:v | Video bitrate | -b:v 800k |
-r | Frame rate | -r 30 |
-b:a | Audio bitrate | -b:a 128k |
-ar | Audio sample rate | -ar 44100 |
-ac | Audio channels (1=mono, 2=stereo) | -ac 1 |
-bf 0 | Disable B-frames (required for JSMPEG) | -bf 0 |
-q:v | Quality (2=best, 31=worst) | -q:v 5 |
-muxdelay | Lower = less latency | -muxdelay 0.001 |
JSMPEG requires mpeg1video codec and mp2 audio. H.264/AAC will not work. -bf 0 is mandatory.
Recommended Presets
| Use Case | Resolution | Video Bitrate | Audio |
|---|---|---|---|
| Raspberry Pi Zero | 320x240 | 200k | 64k mono |
| Raspberry Pi 3/4 | 640x480 | 350–500k | 128k mono |
| Desktop / Laptop | 1280x720 | 800k–1.5M | 128k stereo |
| High Quality | 1920x1080 | 2–4M | 192k stereo |
Troubleshooting
- No video device: Check
ls /dev/video*— if empty, your camera isn't connected or the driver isn't loaded. Trysudo modprobe uvcvideo. - No audio device: Run
arecord -l— if empty, plug in a USB mic or checkpulseaudio --check. Use-f pulse -i defaultif using PipeWire or PulseAudio. - Device busy: Another app is using the camera. Close OBS, Cheese, or any other camera app and retry.
- Connection refused: Make sure the server is running and the port is reachable. Check firewalls:
sudo ufw allow PORT. - High latency: Lower the resolution, reduce bitrate, and ensure
-muxdelay 0.001is set. - Choppy video: Your upload bandwidth may be too low for the bitrate. Reduce
-b:vor resolution. - Permission denied on camera: Add yourself to the video group:
sudo usermod -aG video $USERthen log out and back in. - macOS: Use
-f avfoundation -i "0:0"instead of-f v4l2 -i /dev/video0. Device indices fromffmpeg -f avfoundation -list_devices true -i "".
3D Printer & 24/7 Streams
For unattended, always-on streams (3D printers, security cameras, aquariums, etc.) — optimize for stability over latency.
loading...
loading...
Auto-Restart with systemd
Create a service file so your stream starts on boot and auto-restarts on failure:
[Unit]
Description=OpenVibe.Live JSMPEG Feed
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/ffmpeg -f v4l2 -framerate 10 -video_size 640x480 -i /dev/video0 -f mpegts -codec:v mpeg1video -s 640x480 -b:v 250k -bf 0 -muxdelay 0.001 http://YOUR_SERVER:PORT/KEY/640/480/
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl enable --now openvibe-stream
Tips:
- 10fps is plenty for 3D printers — saves bandwidth and CPU
- Use
-b:v 150kto-b:v 300kdepending on resolution and motion - For Raspberry Pi, prefer 320x240 or 640x480 to reduce CPU load
- Shell loop alternative:
while true; do ffmpeg ...; sleep 5; done
WebRTC via OBS (WHIP)
Your stream is created! Paste the info below into OBS Studio 30+ to start streaming with ultra-low latency via WebRTC. This is newer and faster than RTMP.
Note: on some Linux distributions, the system OBS package may disable WHIP even in OBS 30+. If you do not see the WHIP service in Settings → Stream, install OBS from Flatpak or AppImage instead of the distro package.
loading...
hidden
The bearer token is hidden by default to prevent accidental disclosure. Tap Show only when you need it, and paste only the raw JWT string into OBS — do not include the word Bearer.
OBS 30+ Setup
- Open OBS → Settings → Stream
- Set Service to WHIP
- Paste the WHIP Endpoint URL above
- Paste the Bearer Token as the auth key
- Click "Start Streaming" in OBS
Requires OBS Studio 30.0 or newer. Older versions do not support WHIP. If the WHIP option is missing in OBS, use the Flatpak or AppImage build, or switch to RTMP.
Manage restream destinations in the stream slot workspace.
Create Clip
Mark a start and end time from your stream (max 60 seconds). The clip is extracted from the server-side recording.
Manage restream destinations in the stream slot workspace. Destinations with Auto-Start will begin automatically when you go live.
No rewards configured for this channel
Choose a camera
Pick the exact camera you want to use live.