Add support for dynamic audio range compression

As someone who watches movies with two small children sleeping in the next room, this would be a godsend. It’s particularly evident when watching 5.0 movies downmixed to 2.0. Low volume parts such as talking are barely audible whereas loud parts such as explosions and gunfire are deafening. Adding customizable dynamic range compression would help.



Something like this (VLC) would be awesome:



[LPT] Watching a movie and the dialogue is too quiet and the action too loud? Use VLC's built in Dynamic Compression tool - Some starter settings. - Imgur



Cheers,

Rickard



Seems this setting has been added to XBMC http://wiki.xbmc.org/index.php?title=Video_playback#OSD_audio_and_subtitle_settings (see Volume Amplification), so hopefully we can get this feature soon.

If it hasn't been started yet, consider this a +1 to the feature request
1 Like

This is nearly two years old, but has this been implemented yet?

2 Likes

This does not seem to have been implemented yet. Unfortunate, as this feature has been in XBMC for a very long time and is really the only thing keeping me on PlexBMC vs Plex Home Theater.

2 Likes

+1 to this request

Workaround for Mac users: https://forums.plex.tv/topic/98756-stereo-dynamic-range-compression-normalize-audio-levels-for-pht-mac/

2 Likes

I believe FFMPEG's compand filter should do the trick.  Assuming that Plex's FFMPEG has the compand filter, it shouldn't be that difficult for them to implement dynamic range compression.

1 Like

I’m not sure if everybody here means the same but dynamic range compression is what actualy stands behind the “volume amplification” setting in PHT in the audio controls accessible when you pause a movie.

It works like the same feature in XBMC: increase the volume (for the lower parts of the movie) and lower the master volume in your setup or PHT accordingly.


AFAIK setting it globally is not possible through the GUI.

If this is really needed it should be done by editing guisettings.xml

I recently discovered the "volume amplification" setting via another forum post, however it represents the absolute bare minimum of DRC functionality. The real problem here is the lack of a global option. The guisettings.xml trickonly works for desktop clients (I have tested it on PHT for Windows and Linux). So far as I am aware it is not an option for mobile clients or the web interface. This exists in XBMC as the "Save as default" (something like that, I'm going from memory) option at the bottom of the in-video menu. They could implement it the same way in Plex or simply add the option to the normal audio settings screen.

If anything the fact that the option exists in a config file only makes this feature request easier to implement since they aren't even really adding any functionality, just adding a "slider" for something thats already there.

1 Like

I want this available on the Roku client.  We have the same issue with a kid sleeping and some movies being basically unwatchable because we can't keep the volume in check while still being able to hear the dialog.

Another upvote for DRC

1 Like

Additional upvote for DRC.  It would be quite useful in the Roku client.  For some content, I have to continually adjust the volume which takes me out of the experience.

1 Like

I'm in for DRC, I'd love to see it come to Android/RasPLEX/Chromecast. In our house we use PLEX as our main media playback and as such I'd love to see this awesome service get even more useful in our home.

1 Like

Another vote for DRC. Please support it on Mac as it seems the option is not provided natively in OS X settings...

1 Like

+1 vote chromecast

1 Like

+1 Mac and roku

+1 vote for this. Xbox one and chrome cast user here.

In order to do this you would have to run every file through the transcoder/ffmpeg to at least process the audio portion of the file.  This may or may not cause other problems depending on the CPU you have available and how many streams you also serve.  Probably not going to be a big deal unless you are already CPU limited (maybe NAS).

An alternative that you can do now (not easy but doable via scripting) is to mux in a new audio track to each and every file in your collection.  You could play a trick and mark this new track with a different language (ie Polish) you would never use.  Then anytime you need this "special" track just switch the lanuage track being used.

By manually configuring this you could in theory setup the amount of dynamic compression used for your system and equipment to get the results you need.

I know it's not the most elegant approach but it could be done.

Carlo

PS the Roku 3 with the headphone jack is really perfect for late night use as you can crank up the volume and no one but you hears it!

In order to do this you would have to run every file through the transcoder/ffmpeg to at least process the audio portion of the file.  This may or may not cause other problems depending on the CPU you have available and how many streams you also serve.  Probably not going to be a big deal unless you are already CPU limited (maybe NAS).

An alternative that you can do now (not easy but doable via scripting) is to mux in a new audio track to each and every file in your collection.  You could play a trick and mark this new track with a different language (ie Polish) you would never use.  Then anytime you need this "special" track just switch the lanuage track being used.

By manually configuring this you could in theory setup the amount of dynamic compression used for your system and equipment to get the results you need.

I know it's not the most elegant approach but it could be done.

Carlo

PS the Roku 3 with the headphone jack is really perfect for late night use as you can crank up the volume and no one but you hears it!

I think they were referring to the client side being able to do this which should be possible without the need for transcoding by the server...

All the data is there and it should not take a lot of work to just downmix them to stereo, certainly not enough to require transcode or remuxing.

But I also do what you do and make sure to add an AAC track in both surround and Stereo to every file in my library just so I know it is compatible with any device using any client.

1 Like

Ahh, didn't even think about the client side.  I could see how this could work for PHT and maybe ios and Android.  But what about Web, DLNA, Playstation and xBox type clients?

Surely it would probably be easier to do on the server then on clients where things like ffmpeg aren't available to use.

Carlo

I just use one of these, problem solved:

http://www.amazon.com/Terk-VR1-Automatic-TV-Controller/dp/B00008VWOJ/ref=sr_1_1?s=electronics&ie=UTF8&qid=1424133564&sr=1-1&keywords=terk+vr1+automatic+tv+volume+controller

While it is not the perfect solution for everyone it works for me.

I suspect that a solution offered on the server side would be far from perfect and very hard to implement with and degree of success and implementing it on the client side would be equally difficult. 

The problem is that for most of the processing time at either the server or client the audio is in a digital format and performing dynamic compression on digital audio is difficult to do in real time while maintaining sync with the video. Compression is easier, faster and more reliable using a hardware device on an analog format.

Of course it can be done pretty well, it is just harder. I have three TVs and one receiver that say they have that feature (dynamic compression of digital audio) but only one of them, ironically a cheap TV, actually do an acceptable job. I suspect that the TV that works well actually processes the audio after converting to analog. 

While this feature would be a good thing if implemented well, I think an external hardware solution makes much more sense, at least for me.