Add loudness normalization settings: introduce NormalizeLoudness and LoudnessTargetLufs options in configuration files, update FfmpegMediaProcessor to apply loudness normalization during media processing, and document changes in media storage guide.
This commit is contained in:
@@ -124,10 +124,24 @@ public sealed class FfmpegMediaProcessor(
|
||||
"48000",
|
||||
};
|
||||
|
||||
// Аудиофильтры: нормализация громкости (EBU R128, чтобы все ролики звучали одинаково) и,
|
||||
// при добивке хвоста, тишина apad. Порядок: сначала loudnorm по реальному звуку, потом apad.
|
||||
var afilters = new List<string>();
|
||||
if (_media.NormalizeLoudness)
|
||||
afilters.Add(
|
||||
$"loudnorm=I={_media.LoudnessTargetLufs.ToString(CultureInfo.InvariantCulture)}:TP=-1.5:LRA=11"
|
||||
);
|
||||
if (padding)
|
||||
afilters.Add($"apad=pad_dur={Fmt(pad)}");
|
||||
|
||||
if (afilters.Count > 0)
|
||||
{
|
||||
args.Add("-af");
|
||||
args.Add($"apad=pad_dur={Fmt(pad)}");
|
||||
args.Add(string.Join(",", afilters));
|
||||
}
|
||||
|
||||
if (padding)
|
||||
{
|
||||
args.Add("-t");
|
||||
args.Add(Fmt(target));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user