Encoder Setup
Configure your encoder for FrameWorks. Covers OBS Studio, FFmpeg, RTMP/E-RTMP, SRT, and WHIP.
OBS Studio
Section titled “OBS Studio”OBS is free and works on Windows, Mac, and Linux. Download it here.
Stream Settings
Section titled “Stream Settings”- In OBS Studio, navigate to Settings, then select the Stream tab.
- Configure the following:
- Service: Custom
- Server:
rtmps://edge-ingest.frameworks.network:1935/live - Stream Key: From your stream’s Stream Key card in the dashboard
FrameWorks accepts Enhanced RTMP (E-RTMP) on the same ingest endpoint. If your encoder exposes Enhanced RTMP options for newer codecs, keep the same server URL and stream key.
Recommended Output Settings
Section titled “Recommended Output Settings”For optimal performance and quality on FrameWorks, we recommend the following output settings. These are general guidelines; feel free to adjust based on your system’s capabilities and internet connection.
Go to Settings → Output and select Advanced mode.
Streaming tab:
| Setting | Value |
|---|---|
| Encoder | NVIDIA NVENC (if available) or x264 |
| Rate Control | CBR |
| Bitrate | 4500 kbps (for 1080p30) |
| Keyframe Interval | 2 seconds |
| Preset | Quality (GPU) or veryfast (CPU) |
| Profile | high |
Video tab: These video settings are crucial for determining the final resolution and frame rate of your stream.
| Setting | Value |
|---|---|
| Base Resolution | Your monitor resolution |
| Output Resolution | 1920x1080 |
| Downscale Filter | Lanczos |
| FPS | 30 or 60 |
Audio Settings
Section titled “Audio Settings”To ensure high-quality audio, adjust these settings:
Settings → Audio:
- Sample Rate:
48 kHz - Channels:
Stereo
Settings → Output → Audio:
- Audio Bitrate:
160 kbps(per track, suitable for most streams) or320 kbps(for high-fidelity audio, especially music)
FFmpeg
Section titled “FFmpeg”FFmpeg is a powerful, open-source command-line tool ideal for automated or headless streaming setups. Here are common RTMP commands for streaming with FrameWorks:
ffmpeg -re -i input.mp4 \ -c:v libx264 -preset veryfast -b:v 4500k -maxrate 4500k -bufsize 9000k \ -g 60 -keyint_min 60 \ -c:a aac -b:a 160k -ar 48000 \ -f flv "rtmps://edge-ingest.frameworks.network:1935/live/{stream-key}"From a webcam:
ffmpeg -f v4l2 -i /dev/video0 -f alsa -i default \ -c:v libx264 -preset ultrafast -b:v 2500k \ -c:a aac -b:a 128k \ -f flv "rtmps://edge-ingest.frameworks.network:1935/live/{stream-key}"SRT (Alternative Protocol)
Section titled “SRT (Alternative Protocol)”SRT (Secure Reliable Transport) offers improved performance over RTMP, especially on unstable or high-latency networks, by ensuring secure and reliable stream delivery. Use this URL format:
srt://edge-ingest.frameworks.network:8889?streamid={stream-key}&latency=200&mode=callerIn OBS: Settings → Stream → Service → Custom, then paste the SRT URL in Server.
If you’re self‑hosting, make sure the SRT port is exposed on your ingest endpoint (default is 8889).
FFmpeg with SRT:
ffmpeg -re -i input.mp4 \ -c:v libx264 -preset veryfast -b:v 4500k \ -c:a aac -b:a 160k \ -f mpegts "srt://edge-ingest.frameworks.network:8889?streamid={stream-key}&latency=200&mode=caller"WHIP (WebRTC)
Section titled “WHIP (WebRTC)”WHIP (WebRTC-HTTP Ingestion Protocol) provides a modern approach for browser-based ingestion, enabling real-time streaming with sub-second latency directly from your web browser or compatible software. The dashboard shows your specific WHIP URL on the stream details page.
https://edge-ingest.frameworks.network/webrtc/{stream-key}If you’re self‑hosting behind a proxy, make sure the WHIP path is reachable on your ingest endpoint.
Choosing the Right Bitrate
Section titled “Choosing the Right Bitrate”Selecting the correct bitrate is key to stream stability. A higher bitrate improves quality but requires a stronger internet connection. Use these ranges as a starting point:
| Resolution | FPS | Bitrate Range |
|---|---|---|
| 720p | 30 | 2,500–4,000 kbps |
| 720p | 60 | 3,500–6,000 kbps |
| 1080p | 30 | 3,500–6,000 kbps |
| 1080p | 60 | 4,500–8,000 kbps |
| 1440p | 30 | 5,000–15,000 kbps |
| 1440p | 60 | 6,000–24,000 kbps |
These ranges are FrameWorks recommendations; adjust based on content complexity and network stability.
Rule of thumb: Your upload speed should be at least 2x your stream bitrate.
Run a speed test to speedtest.net and check your upload.
Selecting an Encoder
Section titled “Selecting an Encoder”Hardware encoders reduce the load on your CPU, leaving more resources for your game or application. We recommend utilizing them whenever possible.
- NVIDIA NVENC: Offers the best quality-to-performance ratio. Highly recommended if you have an NVIDIA GPU.
- AMD AMF: A solid choice for users with AMD graphics cards.
- Intel QuickSync: efficient and widely available on most Intel CPUs with integrated graphics.
- x264: Software-based encoding. It ensures compatibility everywhere but consumes significant CPU resources. Use this only if hardware encoding isn’t an option.
In OBS Studio, you can select your encoder under Settings → Output → Encoder.
Adaptive Bitrate (ABR)
Section titled “Adaptive Bitrate (ABR)”FrameWorks generates lower-quality renditions of your stream so viewers on slower connections can watch without buffering. The default live-stream process configuration uses Livepeer Gateway for video ABR and local AV processes for audio compatibility.
How It Works
Section titled “How It Works”When you go live, the control plane attaches your tier’s live process configuration to the stream. The standard live ladder is:
| Source Video | Added Renditions |
|---|---|
>= 1281×720 | 720p (1024 kbps, 25 fps) + 480p (512 kbps, 15 fps) |
>= 850×480 | 480p (512 kbps, 15 fps) |
Below 850×480 | No video ABR rendition |
Live ABR outputs use H264ConstrainedHigh. VOD processing uses the same 480p/720p gates with
VP9Profile0. Audio compatibility processes generate Opus when the incoming audio is not already
Opus and AAC when it is not already AAC.
Foghorn substitutes the local cluster’s Livepeer Gateway URL into the Livepeer process entry at dispatch time. If no gateway is available, the Livepeer video process is stripped and the remaining audio-processing and thumbnail processes can still run.
What This Means for You
Section titled “What This Means for You”- Stream at the highest quality your upload supports. The default ladder adds lower 480p/720p renditions when the source is large enough.
- Viewers automatically get the best available quality their connection supports via HLS ABR, with DASH and LL-HLS available alongside on every cluster.
Custom Transcoding Profiles
Section titled “Custom Transcoding Profiles”The standard ladder is configured at the billing tier level. Enterprise tiers can use tenant-level
processing overrides when processing_customizable is enabled.
Avoid Common Pitfalls
Section titled “Avoid Common Pitfalls”Ensure Your Bitrate Matches Your Upload Speed If you experience dropped frames or instability, your bitrate might be too high for your internet connection. Try lowering it to stabilize the stream.
Stick to a 2-Second Keyframe Interval
Always set your keyframe interval to 2 seconds. Longer intervals can cause playback buffering or failures for viewers joining mid-stream.
Verify Your Audio Source Silence is a common issue. Double-check that your microphone or desktop audio is selected and unmuted in the OBS audio mixer.
Use Constant Bitrate (CBR) Variable Bitrate (VBR) is excellent for recording but problematic for live streaming due to fluctuating bandwidth usage. Always use CBR for a consistent stream.
Troubleshooting
Section titled “Troubleshooting”See Troubleshooting for common issues like connection failures and encoding overload.