-
-
Notifications
You must be signed in to change notification settings - Fork 8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
obs-ffmpeg: Add a stats dock for SRT with graphs #9027
base: master
Are you sure you want to change the base?
Conversation
2f3fc5f
to
1235cf7
Compare
Is this something that should live in OBS at all? Can this information not be tracked/monitored with external applications or utilities? |
|
How difficult do you think it would be to provide API's for plugins to implement such windows? Looking at the code it seems that’s basically what it does already, albeit internally via proc handlers. |
it's probably not too difficult to make an API for that. I could certainly split the code into its own plugin indeed; i hadn't thought about it. |
I wonder if it would be reasonable to have some sort of generic metrics API in |
The questions from @Warchamp7, @gxalpha, and @derrod are exactly in line with concerns I had previously raised. Personally, I am not fond of the idea of adding more Qt components for the core distribution. I do see how this could help with debugging SRT streams, but I do not presently see the benefits for the larger subsets of our users. I think that it would be better to have the stream session data/metrics able to be extracted via appropriate APIs for any given stream session and read/parsed/interpreted/graphed/charted by external tools rather than us implementing charts in the OBS interface itself. |
For SRT maybe not, but for general performance? Absolutely.
I'm definitely in favour of adding Qt Charts based stats displays to the stats dock, as it's currently not really possible to determine OBS performance/network stability over time. Relegating that to third-party tools would be pretty silly. |
plugins/obs-ffmpeg/obs-ffmpeg.c
Outdated
@@ -474,7 +478,6 @@ void obs_module_unload(void) | |||
#if ENABLE_FFMPEG_LOGGING | |||
obs_ffmpeg_unload_logging(); | |||
#endif | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is an unnecessary and unrelated modification.
It seems a bit silly to abbreviate "RTT", when "Retransmitted (pkts/sec)" is more characters than "Round Trip Time" would be. |
934c46a
to
2053a0a
Compare
It seems this PR is not progressing because of the added qt component. Is there any chance to get this PR through without the chart? I am referring to this part from @pkviet 's screenshot: This already would be a huge improvement, and imho this is very much needed improvement to resolve the "but stats show no dropped frames and no encoding lag" when using SRT in OBS when in fact there is for example 30% packet loss and tons of retransmits. Currently the streamer doesn't see that they chose a way too high bitrate for the used internet connection, except when watching the stream and seeing random fragments instead of the intended video stream. |
8812556
to
f2e83b5
Compare
75dd7ad
to
aec0be3
Compare
aec0be3
to
25cf44d
Compare
This splits the ffmpeg mpegts muxer output from obs-ffmpeg project. There's some common code between obs-ffmpeg-output.c & obs-ffmpeg-mpegts.c. But most of it had already been factored out to allow for easier maintainance and readability. The goal is to allow simpler maintainance of the mpegts output. Signed-off-by: pkv <pkv@obsproject.com>
This adds a proc handler for statistics for SRT protocol. Signed-off-by: pkv <pkv@obsproject.com>
This copies QtCharts.dll as well as QtOpenGL.dll & QtOpenGLWidgets.dll on which it depends. Signed-off-by: pkv <pkv@obsproject.com>
25cf44d
to
02c207a
Compare
This adds a new SRT Stats dock with several important statistics for the SRT protocol (RTT, retransmitted packets, dropped packets) in a chart which is updated live. Signed-off-by: pkv <pkv@obsproject.com>
This is to ensure test builds are working. This commit should be removed on merging of the PR. Signed-off-by: pkv <pkv@obsproject.com>
02c207a
to
dbcd77e
Compare
Description
This adds:
This depends on a companion obs-deps PR adding qtcharts to qt deps : deps.qt: Add qtcharts obs-deps#192 .
The current PR will stay in draft state until the obs-deps PR is merged (if it is).
Motivation and Context
I had many exchanges with broadcast engineers during the 2023 SRT Plugfest.
One thing missing from obs srt output are stats to monitor the network condition.
In particular, given the peculiarities of SRT (which relies on udp rather than tcp like rtmp), it is important to
be able to monitor:
I received also the suggestion to use live updated graph which allows to follow the
trends over time and are more informative than instantaneous stats.
The charts code could be easily ported to the current stats dock.
@derrod suggested that a chart of dropped frames could be useful for rtmp too.
How Has This Been Tested?
Tested on windows against YouTube SRT ingests and a variety of other SRT capable servers.
Types of changes
Checklist: