Skip to content

Add RFC: Make audio monitoring a output plugin - #66

Open
cg2121 wants to merge 1 commit into
obsproject:masterfrom
cg2121:audio-monitoring-rfc
Open

Add RFC: Make audio monitoring a output plugin#66
cg2121 wants to merge 1 commit into
obsproject:masterfrom
cg2121:audio-monitoring-rfc

Conversation

@cg2121

@cg2121 cg2121 commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Move audio monitoring out of libobs and make it an output plugin.

Motivation

Currently, when a source is being monitored, a new audio monitor is created for each source. The goal here is to have
a single mix where all of the sources are output to, thus avoiding sync issues when having multiple sources being
monitored.

Link to RFC

@pkviet

pkviet commented Apr 12, 2026

Copy link
Copy Markdown
Member

Check the ASIO PR where I add monitoring tracks which output mixed monitored audio to the ASIO output plugin.

@pkviet

pkviet commented Aug 10, 2026

Copy link
Copy Markdown
Member

General comment, outputs and monitoring do not follow the same pipeline atm. Outputs have a much higher latency which can amount to up to 45 audio ticks or 960 ms at 48 kHz; this is obviously tailored for stream outputs in order to sync audio and video as much as possible. But for monitoring this is really bad obviously.
It is possible to reduce the latency for outputs with the low latency option; it reduces the latency to 40 ms so about 2 audio ticks. But this libobs setting affects ALL audio sources. So overall I would say that it is a bad idea to use outputs for monitoring.
A direction which would bypass that difficulty would be to create a new raw_audio callback, for instance raw_direct_monitoring which would mix all monitored sources and feed the mix to a dedicated monitoring output. We would keep the buffering for regular outputs but have the much smaller latency expected from monitoring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants