How to encode and deliver a live stream

Your encoder:

Use a GTX 1060+ card in a Windows machine, with a PCI-e or thunderbolt or even a good USB capture card that can take at least 1920×1080@60fps. Framerate is really important. Often it is more important than resolution? Depends on what you like.

Use OBS as your encoder unless you want to get very fancy with gstreamer or ffmpeg. I think vmix is also wonderful and much better for producing large productions – but the nvidia tuning available in OBS makes things look better if you are taking a ‘final feed’ for encoding.

Use this guide:

Use the sharpening filter in OBS at around 0.10 – 0.15 depending on what you’re doing

Resolution and framerate are both important (as are your audio encoding settings), but I think it is really important to do qualitative checks. You need to be doing good encoding, and actually watching/comparing what different settings look and sound like is an important thing to do.

Then send your output to somewhere – like twitch or youtube or facebook, or build your own streaming server..

Make your own streaming server in the cloud somewhere:

install nginx-rtmp on ubuntu (I use AWS)

install ffmpeg with x264 (compile your own)

set up ffmpeg to -c copy the top level encode (so it will just be repackaged in nginx-rtmp and not transcoded).

set up some lower bitrate/resolution transcodes

Set up 2 second chunks with a playlist duration of 8-10 seconds (4-5 chunks)…or use other values… 10second chunks are ‘old faithful’.

Set up a DVR if you want… I usually prefer a few different applications in the nginx-rtmp module – one full DVR for recordings / backup and one limited short playlist for always live.

Hardware Encoders:

You can get some pretty good and cost effective hardware encoders. I’ve bought some of the ‘URAY’ encoders from amazon that work ok. Elemental Link from AWS is terrific, but only if you know what you’re doing. LiveU is great if you have budget for it.

You can also do cool stuff via webRTC and phones if you need to. Don’t underestimate the power of video conference tech running out to a stream (Zoom/Teams—>YouTube).