Streaming
Last updated
Last updated
Streamwell is highly compatible with a number of different types of incoming live streams. It accepts H.264 over RTMP, RTMPS, SRT, and WebRTC (WHIP) protocols, with support for H.265 streaming over SRT (including 10-bit colour and HDR).
The most popular way to stream in is to use OBS, a free open-source video mixer application. If you are new to OBS, here are some quick steps to get you moving.
Once installed, open OBS and bypass any setup wizards.
Add a source like a Webcam (Video Capture Device) or drag a video file in.
Click Settings => Output, and change the Output Mode to Advanced.
Set the Output options as shown below.
Click Settings => Stream, and set the Service to ‘Custom…’
Enter your Server URL under Server, and copy/paste a Stream Key of your choosing for the channel you’d like to stream to. For SRT URLs just copy/paste the full URL in the 'Server' field and leave the 'Stream Key' field blank. For RTMP URLs the server URL is everything up to and including 'live', and the Stream Key is everything after the slash (do not include the "/" in the stream key). Within each channel there is a 'show' button next to the stream key which reveals these components already separated for an easy click-to-copy:
Click ‘Start Streaming’ and you should now be live - hello world!
Whether you are using OBS or another software or hardware encoder, always keep these requirements in mind for the sub-second latency streaming to function correctly:
H264 Encoder (x264, Apple VT H264 Encoder, NVIDIA NVENC H264)
Resolutions up to 4K, frame rates up to 60FPS
AAC or OPUS audio
Keyframe interval of 1 or 2 seconds (above 4 seconds will cause playback issues)
No B-Frames (use of B-Frames will cause playback issues)
Use 'zerolatency' x264 tuning option when available
Set up your Stream encoding settings under Settings -> Output (Advanced Mode)
If you have an NVIDIA GPU, you might see an option for the NVIDIA NVENC encoder which is great for handling the streaming workload without taking as much of your CPU.
On macOS, you might see an option for the Apple VT H264 Software / Hardware encoder, another good option for offloading some of the encoding workload from the main CPU:
You can change your Output Resolution and Frame Rate under Settings -> Video.
Streamwell can handle incoming stream bitrates of 100Mbps or more. However in real-world scenarios you need to consider your network capacity, number of viewers and what their internet connectivity will be like.
Here are some recommended bitrates depending on resolution and frame rate. Start with these and move up or down to suit your use case. Each 8000 Kbps / 8Mbps represents a real-world speed of one megabyte per second of video per viewer.
1080p
24/30 fps : 4000 Kbps (recommended for best results) 60 fps: 6000 Kbps
720p
24/30fps: 2500 Kbps 60fps: 4000 Kbps
4K / 2160p
24/30 fps: 12000-16000 Kbps 60fps: 20000-24000 Kbps
Streams with high bitrates (over 4000Kbps) require a very high-quality network connection, especially when streaming to a cloud-based server. Depending on your or your viewers' network connection, you may need to drop the bitrate to sustain playback over the internet.
When streaming with HEVC, keep these points in mind:
Latency will be around 3 seconds since playback occurs over HLS instead of WebRTC.
Google Chrome is recommended for all participants. Safari works but the latency may be higher, up to 6 seconds. FireFox does not support HEVC streaming.
Playback of HEVC, especially 10-bit HDR, requires a robust computer and network connection. It is not recommended to stream over WiFi or to mobile devices in this regard.
macOS generally handles HEVC formats better than Windows in general. Some Windows-based computers may not be able to playback 10-bit 4:2:2 ("main 4:2:2 10" profile), in which case use of 10-bit 4:2:0 ("main10" profile) is recommended.
For editors and creative professionals using software like Adobe Premiere or Final Cut Pro, see Streaming with NDI for a step by step tutorial on enabling NDI streams to Streamwell.