Lower-bitrate WebRTC option
720p or modest 1080p at 30 fps keeps frames smaller, making packet loss and keyframe recovery less painful than 1080p at 7 Mbps.
Push:
https://vdo.ninja/?push=REMOTE_ID&q=1&codec=h264&h264profile&outboundvideobitrate=3000&maxframerate=30
OBS:
https://vdo.ninja/?view=REMOTE_ID&buffer=3000&bitrate=3000
1080p WebRTC option
&q=0 is 1080p. Use this only when packet loss is low enough that larger H.264 frames and recovery keyframes are not constantly being damaged.
Push test:
https://vdo.ninja/?push=REMOTE_ID&q=0&codec=h264&h264profile&outboundvideobitrate=4500&maxframerate=30&nomobilebitratecap
OBS test:
https://vdo.ninja/?view=REMOTE_ID&buffer=3000&bitrate=4500
Chunked/WebCodecs option
Chunked mode can add FEC/NACK-style recovery and explicit playout buffering in JavaScript. It can tolerate larger buffers than plain WebRTC media, but it is still experimental.
Push:
https://vdo.ninja/?push=REMOTE_ID&q=1&chunked=1800&chunkprofile=balanced&outboundvideobitrate=1800
OBS:
https://vdo.ninja/?view=REMOTE_ID&chunkbuffer=3000
SRT or RTMP relay option
If OBS is only forwarding to multistream and a few seconds of latency is acceptable, app.meshcast.io with SRT or RTMP is the buffered contribution-path option.
SRT target:
720p30 to 1080p30, H.264, 2500-4500 Kbps, 2s keyframes, latency 2000-6000 ms
RTMP target:
H.264 + AAC, CBR-like, 2s keyframes, 3000-5000 Kbps, expect more delay
Keyframe interval option (targeted fix)
WebRTC already requests a keyframe automatically when it detects loss, so do not set this by default. Use it only if damage lingers for seconds after a dropout. &keyframe is a viewer-side option: the OBS/view link asks the remote phone to send keyframes at that interval. A keyframe is the largest frame type, so forcing them often spends bandwidth and can make a weak uplink worse. Start at 2000; drop to 1000 only if 2000 is too slow and the bond has headroom. Under ~1000 ms quality drops steeply.
OBS (keyframe request goes here):
https://vdo.ninja/?view=REMOTE_ID&bitrate=3000&buffer=1000&keyframe=2000