On 06/29/20 11:18, Moritz Barsnick wrote:
On Mon, Jun 29, 2020 at 10:44:04 -0400, Jim wrote:
AFAIK, ffmpeg does not have the ability to analyze the volume of every
sample throughout an audio file, find the greatest amplitude, calculate
the adjustment needed to make the loudest part of the file the maximum,
It does.
and then apply that scaled volume adjustment to the entire file.
This makes this a two-pass operation, which your external tool probably
also does. ffmpeg can analyze first:
$ ffmpeg -i INPUT -map 0:a -af volumedetect -f null -
and will find the absolute maximum of the first audio channel. Take the
max value from the log (something like "max_volume: -18.1 dB"[*]), and
use that value for an additionally inserted "volume" audio filter in
your conversion.
$ ffmpeg -i INPUT [...] -af volume="18.1 dB",otherfilters OUTPUT
You thus only have an additional input analysis step.
[*] Documentation says this will not cause any clipping, though I don't
know what the behaviour is, if the volume is massively different across
channels. I *believe* the maximum is safe to use (while the average is
also an average across channels, by some kind of mixdown).
same question in my searching for a solution to this same message - this
is the first time I've read this.
(I personally find this confusing as well.)
(Assuming I don't run into anything weird when processing different
video formats in the future of course. ;) ) I'm happy, happy, happy
about that! :) :) :)
We like happy people. :-)
Cheers,
Moritz
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".
On 29 Jun 2020, at 15:44, Jim<[email protected]> wrote:
(While this doesn't equalize the volume or eliminate all volume-related
inconsistencies, it does make the loudest part of each video the same and is
the best solution I've found;
I think you would like the loudnorm filter that incorporates ebur-128
adjustments.
It can run as two pass or one pass (useful for live streaming) and adjusts the
audio levels to maintain the specified levels.
An example would be -af loudnorm=I=-23:TP=-1.0:LRA=11
This sets the average loudness at -23LUFS (this is pretty standard for UK TV)
the True Peak value as -1.0dBfs and the loudness range shows the distribution
of loudness throughout the programme.
LUFS is great because it is based on perceptual loudness and not just sample
values.
Have fun
Adam
I would like to say that the progress this project has made since I
initially wrote this script is absolutely amazing! When I first wrote
my processing script, I wanted to simply down-sample the audio from n
channels to stereo and transcode to MP3 - no volume manipulation at
all. (The DVR I had at the time would totally freak if I threw audio at
it with more than 2 channels.) There were many people complaining about
it at the time, but no real solutions. I had to use a 2-step process -
dump to stereo wave and then encode to MP3 - because ffmpeg refused to
reduce the number of channels in an audio stream. (Having to do this
2-step process combined with my continual frustration with the volume of
various files is what led me to work out the maximization of the volume
throughout each file.) Now, ffmpeg has the ability to do everything
itself! I know it's been several years, but still... excellent work
guys - very impressive. :)
Jim
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".