Skip to content

Encoder Setup

Configure your encoder for FrameWorks. Covers OBS Studio, FFmpeg, RTMP/E-RTMP, SRT, and WHIP.

OBS is free and works on Windows, Mac, and Linux. Download it here.

  1. In OBS Studio, navigate to Settings, then select the Stream tab.
  2. 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.

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:

SettingValue
EncoderNVIDIA NVENC (if available) or x264
Rate ControlCBR
Bitrate4500 kbps (for 1080p30)
Keyframe Interval2 seconds
PresetQuality (GPU) or veryfast (CPU)
Profilehigh

Video tab: These video settings are crucial for determining the final resolution and frame rate of your stream.

SettingValue
Base ResolutionYour monitor resolution
Output Resolution1920x1080
Downscale FilterLanczos
FPS30 or 60

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) or 320 kbps (for high-fidelity audio, especially music)

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:

Terminal window
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:

Terminal window
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 (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=caller

In 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:

Terminal window
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-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.

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:

ResolutionFPSBitrate Range
720p302,500–4,000 kbps
720p603,500–6,000 kbps
1080p303,500–6,000 kbps
1080p604,500–8,000 kbps
1440p305,000–15,000 kbps
1440p606,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.

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.

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.

When you go live, the control plane attaches your tier’s live process configuration to the stream. The standard live ladder is:

Source VideoAdded Renditions
>= 1281×720720p (1024 kbps, 25 fps) + 480p (512 kbps, 15 fps)
>= 850×480480p (512 kbps, 15 fps)
Below 850×480No 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.

  • 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.

The standard ladder is configured at the billing tier level. Enterprise tiers can use tenant-level processing overrides when processing_customizable is enabled.

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.

See Troubleshooting for common issues like connection failures and encoding overload.