voc / voctomix

Full-HD Software Live-Video-Mixer in python
https://c3voc.de/
MIT License
573 stars 104 forks source link

leveling chain is leveling break music #258

Open SimpelMe opened 4 years ago

SimpelMe commented 4 years ago

With voctomix2 ffmpeg-magic is introduced to duck the translators and to level all to -16LUFS. That is working pretty good. But if there are breaks the music shouldn't be levelled. It should be much more lower than -16LUFS.

Possibly you can switch the ducking and leveling chain with the blinder. If you switch the break bypass the ducking and leveling.

fightling commented 4 years ago

Hm I think the break music which we call blinder.audio has it's own leveling which is initially the same as for the other audio sources. But currently there is no way to level that channel in the audio tab of the UI.

Is this what might solve the problem? To have that leveler?

SimpelMe commented 4 years ago

Originally the blinder.audio is already correctly leveled 15-20dB below target level -16LUFS. But the ffmpeg leveling chain now is gaining blinder.audio back to target level. Question is how to manage that blinder.audio can stay with original level. Can there be a switch somewhere to turn the leveling chain on and off?

derpeter commented 4 years ago

The leveling happens outside of the scope of voctomix. It is a ffmpeg script that reads from an TCP port where voctomix provides an matroska stream with N audio channel in one stream. There is no interaction at all between voctomix and that script.

When the blinder is active all this channels have the same audio on it. Maybe we can use this inside the ffmpeg filter chain somehow?

Antoher option would be to let extend the script that wraps the ffmpeg command in way that it listens to the chat between core and gui. It would there be informed that the stream is blanked and could do something about it. Like sending a signal to the ffmpeg pipline (not sure how this would work)

As the ducking / leveling is part of the streaming script which we want to replace by output module in voc2mix it self (on the loooong run) we will need to replace the ffmpeg ducking with gstreamer ducking. At that point we will have full control and just turn the leveling off in the blank state. Can't say when we will be at this point so probably one of the first solutions is more feasible