Hello friends, I am bothering you on this occasion to see how I can get freeswitch or whoever is responsible to generate better quality recordings of the sessions. I teach electronics and sometimes it pixelates a lot, despite the fact that I am the only one who uses a camera in the presentation and one managed with OBS Studio to be able to share more than one. or sometimes desk and camera.
Has anyone been able to fix this problem. I appreciate your help.
--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bigbluebutton-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/33f63cf0-0558-4e59-b1f0-a51d98910906n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bigbluebutton-dev/994b9e37-fa98-4cc5-b196-4d301377efe5n%40googlegroups.com.
Hi,
presentation processing is a mess. I'm still not sure if I fully understand it, but from what I have gathered so far it looks like this:
Webcam-videos are stored exactly as they were received by the
server. Browsers have to compress in real-time with quite low
bit-rate limits and the used network protocol is prone to package
loss or network hiccups, so the video quality will always be
rather bad compared to a locally recorded video. We cannot do
anything about that. Do not use BBB as a video recording tool if
you care about video or audio quality I guess.
After archival (gathering all files and events from all the
different components) and some sanity checks, the data is
processed into a presentation. A script [1] will (losslessly)
remux these videos from flv to mp4 to remove some common defects,
then cut and merge the videos based on event data timestams in a
checkerboard pattern. This cutting and merging requires
re-encoding the video data, even if only a single participant is
visible, and the settings used here are really really bad! The
quality level (-crf 30) is way worse than the ffmpeg default (23)
or the value recommended for lossless encoding (17-18). Lower is
better here. 30 would be okay-ish for vp9, but these numbers have
a different meaning for the h264 codec used
here. The `-preset veryfast`
parameter makes this even worse, as it disables a lot of h264 features that would
improve quality or reduce bit-rates.
After that, if you kept vp9 as the default output format and did not switch to mp4, the video is encoded a third time, again with very questionable settings [2]. The `-deadline realtime` parameter forces the vp9 encoder to sacrifice quality to ensure real-time restrictions, even if this is a batch task with no real-time requirements. The `-cpu-used` parameter also has a different meaning in this mode and `-cpu-used 8 -threads 4` will effectively limits CPU usage to 50% of at most 4 cores, no matter how many cores or headroom your server has. The `-crf 32` quality level used here is on the low end for single-pass encoding, but fine. The problem is that this is an upper limit, so for complex scenes or on a low-end or busy server this quality level will never be reached.
The double-encoding with two fundamentally
different codecs in low
quality also mean that vp9 has to encode the
compression artifacts of x264 as if
they were part of the original video, increasing the
complexity and reducing end result quality even further.
So, to sum it up: In a default setup the
webcam videos are encoded three times (once on the client, twice
on the BBB node) with two fundamentally different codecs (h264
and vp9) and
exceptionally low quality settings and real-time restrictions on
hardware that is supposed to be busy serving BBB, not encoding
videos. No wonder the result looks like blocky pixel soup. I do
not see a way to fix this without editing BBBs processing
libraries and sacrificing more CPU power to video encoding.
These is no config option to increase quality (just frame-rate
and resolution) and using a separate server to do the video
encoding does not seem to be a supported feature. Perhaps this
area could use some serious cleanup and re-thinking.
Best, Marcel
Hello friends, I am bothering you on this occasion to see how I can get freeswitch or whoever is responsible to generate better quality recordings of the sessions. I teach electronics and sometimes it pixelates a lot, despite the fact that I am the only one who uses a camera in the presentation and one managed with OBS Studio to be able to share more than one. or sometimes desk and camera.
Has anyone been able to fix this problem. I appreciate your help.