# Streaming

{% embed url="<https://www.youtube.com/watch?v=KL8wWkdY4Sc>" %}

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](http://obsproject.com), 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.

![](https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/CnIRq9XerAGSbBiXQoAm/Screenshot%202024-08-09%20at%206.48.47%E2%80%AFPM.jpg)

* Click Settings => Stream, and set the Service to ‘Custom…’
* You can click 'RTMP', 'RTMPS', or 'SRT' to copy the full inbound stream URL and paste it into the 'Server' box in OBS. Or click the 'show' button next to the stream key which reveals the URL components already separated for an easy click-to-copy:

<figure><img src="https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/hno6sbL3P5gZkPXyRPFd/streamkeys.jpg" alt="" width="375"><figcaption></figcaption></figure>

![Paste your Stream Source URL into the 'Server' box in OBS (you don't have to separate the Stream Key)](https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/C7VYxeM1UurstG6EuD4U/obsstreamkey.jpg)

* Click ‘Start Streaming’ and you should now be live - hello world!

![I think we found Nemo! Or is that... Streamo?](https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/gbumJ5JM2Jes08h5eCu0/startstreaming.jpg)

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:

* AAC or OPUS audio
* Keyframe interval of 1 or 2 seconds (higher intervals will cause playback issues and delays in starting playback)
* No B-Frames (use of B-Frames will cause playback issues)
* Use 'zerolatency' tuning option when available

Set up your Stream encoding settings under Settings -> Output (Advanced Mode)

<figure><img src="https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/CnIRq9XerAGSbBiXQoAm/Screenshot%202024-08-09%20at%206.48.47%E2%80%AFPM.jpg" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/iOVTrvvneoRfe14lctPR/Screenshot%202023-03-21%20at%2010.54.25%20AM.jpg" alt=""><figcaption></figcaption></figure>

On macOS, you might see an option for the Apple VT H264 Hardware encoder (a.k.a the "Media Engine"), another good option for offloading some of the encoding workload from the main CPU:

<figure><img src="https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/VXiEJRlN0qhUVawGRnQR/H264HardwareSettingsMac.jpg" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Note: If you are using the Apple Hardware encoder, certain system-level activities like transcoding / screen recording / sharing can interfere because they will always get priority over a live stream. If you need to use the "Media Engines" in your Mac for anything besides the stream, we suggest using the *x264* software encoder for better stability.
{% endhint %}

You can change your Output Resolution and Frame Rate under Settings -> Video.

<figure><img src="https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/YVp8cKodKH76yyymNvrU/Screen%20Shot%202022-01-25%20at%2011.45.07%20AM.jpg" alt=""><figcaption></figcaption></figure>

### Choosing the Right Bitrate

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**&#x20;

24/30 fps : *4000 Kbps* <mark style="color:yellow;">(recommended for best results)</mark>\
60 fps: *6000 Kbps*

**720p**

24/30fps: *2500 Kbps*\
60fps: *4000 Kbps*

**4K / 2160p**

24/30 fps: *12000-16000 Kbps*\
60fps: *20000-24000 Kbps*

Note: By default, the Streamwell Engine is configured to block streams over 25Mbps. This is to prevent a "runaway encoder" causing problems for other streamers/viewers on the network. However this value can be edited or removed in the engine configuration:

<figure><img src="https://content.gitbook.com/content/vlXt8MPa8o1RxsSPQDpX/blobs/tYvyP3UevpgcPEyc04Pq/bitratelimit.jpg" alt="" width="375"><figcaption></figcaption></figure>

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 and geographical location, you may need to drop the bitrate or switch to HLS mode to sustain playback over the internet. Consider use of[ Proxy Streaming](https://docs.streamwell.net/streamwell-v1.8.0/more-information/advanced-configuration#proxy-streaming-abr) to help in difficult network conditions as well.

### Notes on HEVC (H265), 10-bit and HDR Streaming 🌈

* Ultra-Low Latency HEVC is supported by **Google Chrome** v136 (May 2025) or **Safari** v18 (2025).&#x20;
* Older versions of these browsers will experience latency of **2-3 seconds** since playback occurs over HLS instead of WebRTC.&#x20;
* **FireFox** v136+ works but only with HLS playback for HEVC. Previous versions of FireFox do not support HEVC.
* 10-bit video is supported for Ultra-Low Latency playback, however streams containing HDR metadata still require use of the HLS (DVR) fallback player with 2-3 seconds latency. You will see these as tone-mapped to SDR if using the Ultra-Low Latency player.
* Playback of HEVC, especially 10-bit or HDR, requires a robust computer and network connection.
* macOS / Apple operating systems generally handle HEVC formats the best. For best color accuracy it is recommended to use an iPad Pro with OLED or any device with an Apple-made screen, and the true-tone functionality deactivated.
* 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.

### **NDI**

For editors and creative professionals using software like Adobe Premiere or Final Cut Pro, see [Streaming with NDI](https://docs.streamwell.net/streamwell-v1.8.0/using-streamwell/streaming/streaming-with-ndi) for a step by step tutorial on enabling NDI streams to Streamwell.

<br>
