&buffer
Sets the video buffer
Viewer-Side Option! (&view
, &scene
, &room
)
Options
Example: &buffer=500
Value | Description |
---|---|
(numeric value) | delay in ms |
Details
This feature will increase the size of the audio and video playout delay by means of tweaking the webRTC jitter buffer pipeline (or a related buffer).
This can effectively be used as a way to delay the incoming video and audio by around 4-seconds. It's compatible with modern Chromium-based browsers, likely Firefox, but not Safari.
While in theory this option can also help to improve video and audio quality, as a larger playback buffer should help reduce the effects of network jitter and packet loss, it's not a miracle solution in this regard. Adding 200-ms of buffer delay using this feature is worth trying however, as some users have reported it has helped improve their connections.
The problem is that the browser doesn't fully make use of the available buffer if set high, and so it's largely used as mainly a hint. Network conditions, memory limits and other factors may impact the results as well. Older versions of Chromium allowed upwards of 15-seconds of buffering, with recent versions of Chromium allowing up to just 4-seconds.
Chunked-mode
If using the &chunked
transfer mode, the method and function of the &buffer
option is different than normal. There is not hard coded limit on what delay you can add, as it that uses it a custom buffering solution that isn't controlled by the browser. You can set the delay to be whatever you want; minutes even, assuming you have the memory for it.
Using &buffer
with &chunked
mode can improve quality, however more than a few seconds is probably not advisable.
Example values
&buffer=0
will force the audio to be in sync with the video, with the video playing back with minimal delay.
&buffer=100
will add a 100-ms time delay to the video, on top of any existing delay.
&buffer=200
can help reduce video problems, such as frame jitter, with 200-ms of added delay.
This feature will only work if playing the video in Chrome or Chromium-based browsers of around version 80 and newer.
OBS v27.1.3 or older (on PC) uses v75 though, so you will need to update to OBS 27.2 or newer to use it there.
The Electron Capture app also supports the
&buffer
command, along with vMix using a compatible Chromium version.Using the
&buffer
command may stop Echo Cancellation from working due to the audio delay this feature produces.Beyond 3-seconds of buffering may cause audio/video sync issues.
You can refer to the &sync
command if you wish to delay the audio, relative to the video. &buffer
will try to keep the audio and video in sync, which might always be desired.
Chunked mode
When using &buffer with a stream that is being sent using chunked-mode (&chunked), the method of buffering will be different as it doesn't rely on the built-in system playout webRTC buffer delay function.
The practical benefit of using &chunked mode with &buffer is that you can have buffers that are minutes long, up to whatever your system's resources can handle.
As well, the buffering works to buffer the stream, in a way similar to HLS or RTMP buffering. The default buffer is around 1-second actually when using &chunked mode, as it requires a buffer to avoid playback issues. If the buffer underruns, the stream may fail.
Please refer to &chunked mode for more details, but it could be an option for you if your goal is to improve the quality of streams when facing high-packet loss. It's only compatible with Chromium-based browsers; not Firefox or Safari as of yet.
Update in v23
Related
&buffer2&syncLast updated