A tool to smooth out a livestream.
As a streamer, I have a mostly reliable fast internet connection. There are occasional drops that last 500-2000 milliseconds. OBS will drop network packets during the drops and it causes a bad viewing experience.
waitforit will accept a TCP stream from OBS and relay it to another TCP endpoint.
waitforit --connect 127.0.0.1:23456 --listen 127.0.0.1:54321 --delay 10
Set up OBS to send to a URL in the Record tab:
Set up ffmpeg to listen for a connection and forward to Twitch:
ffmpeg -re -listen 1 -i 'tcp://127.0.0.1:23456' -copyts -codec copy -f flv 'rtmp://sea.contribute.live-video.net/app/<your_stream_key>
waitforit would be running on a machine closer to Twitch that isn't having network issues. You can tunnel TCP packets to a cloud machine via:
ssh <yourbox> -L54321:127.0.0.1:54321
The result would be: OBS => SSH (tunnel) => waitforit => ffmpeg => Twitch