Browse Source

remove dynaudnorm filter (#1573)

pull/1575/head
Jason Dove 2 years ago committed by GitHub
parent
commit
45c04366c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      CHANGELOG.md
  2. 4
      ErsatzTV.Core/Domain/FFmpegProfile.cs
  3. 3
      ErsatzTV.Core/Domain/NormalizeLoudnessMode.cs
  4. 1
      ErsatzTV.Core/FFmpeg/FFmpegLibraryProcessService.cs
  5. 3
      ErsatzTV.FFmpeg/AudioFilter.cs
  6. 1
      ErsatzTV.FFmpeg/Filter/NormalizeLoudnessFilter.cs
  7. 1
      ErsatzTV.FFmpeg/Pipeline/PipelineBuilderBase.cs
  8. 4925
      ErsatzTV.Infrastructure.MySql/Migrations/20240126015002_Remove_FFmpegProfileDynaudnorm.Designer.cs
  9. 21
      ErsatzTV.Infrastructure.MySql/Migrations/20240126015002_Remove_FFmpegProfileDynaudnorm.cs
  10. 4923
      ErsatzTV.Infrastructure.Sqlite/Migrations/20240126014819_Remove_FFmpegProfileDynaudnorm.Designer.cs
  11. 21
      ErsatzTV.Infrastructure.Sqlite/Migrations/20240126014819_Remove_FFmpegProfileDynaudnorm.cs
  12. 1
      ErsatzTV/Pages/FFmpegEditor.razor

3
CHANGELOG.md

@ -48,6 +48,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- In schedule items, disambiguate seasons from shows with the same title by including show year - In schedule items, disambiguate seasons from shows with the same title by including show year
- Old format: `Show Title (Season Number)` - Old format: `Show Title (Season Number)`
- New format: `Show Title (Show Year) - Season Number` - New format: `Show Title (Show Year) - Season Number`
- Remove FFmpeg Profile `Normalize Loudness` option `dynaudnorm` as it often caused streams to fail to start
- Disable loudness normalization by default in new FFmpeg Profiles
- Use AAC audio format by default in new FFmpeg Profiles
## [0.8.4-beta] - 2023-12-02 ## [0.8.4-beta] - 2023-12-02
### Fixed ### Fixed

4
ErsatzTV.Core/Domain/FFmpegProfile.cs

@ -35,12 +35,12 @@ public record FFmpegProfile
ResolutionId = resolution.Id, ResolutionId = resolution.Id,
Resolution = resolution, Resolution = resolution,
VideoFormat = FFmpegProfileVideoFormat.H264, VideoFormat = FFmpegProfileVideoFormat.H264,
AudioFormat = FFmpegProfileAudioFormat.Ac3, AudioFormat = FFmpegProfileAudioFormat.Aac,
VideoBitrate = 2000, VideoBitrate = 2000,
VideoBufferSize = 4000, VideoBufferSize = 4000,
AudioBitrate = 192, AudioBitrate = 192,
AudioBufferSize = 384, AudioBufferSize = 384,
NormalizeLoudnessMode = NormalizeLoudnessMode.DynAudNorm, NormalizeLoudnessMode = NormalizeLoudnessMode.Off,
AudioChannels = 2, AudioChannels = 2,
AudioSampleRate = 48, AudioSampleRate = 48,
DeinterlaceVideo = true, DeinterlaceVideo = true,

3
ErsatzTV.Core/Domain/NormalizeLoudnessMode.cs

@ -3,6 +3,5 @@ namespace ErsatzTV.Core.Domain;
public enum NormalizeLoudnessMode public enum NormalizeLoudnessMode
{ {
Off = 0, Off = 0,
LoudNorm = 1, LoudNorm = 1
DynAudNorm = 2
} }

1
ErsatzTV.Core/FFmpeg/FFmpegLibraryProcessService.cs

@ -153,7 +153,6 @@ public class FFmpegLibraryProcessService : IFFmpegProcessService
playbackSettings.NormalizeLoudnessMode switch playbackSettings.NormalizeLoudnessMode switch
{ {
NormalizeLoudnessMode.LoudNorm => AudioFilter.LoudNorm, NormalizeLoudnessMode.LoudNorm => AudioFilter.LoudNorm,
NormalizeLoudnessMode.DynAudNorm => AudioFilter.DynAudNorm,
_ => AudioFilter.None _ => AudioFilter.None
}); });

3
ErsatzTV.FFmpeg/AudioFilter.cs

@ -3,6 +3,5 @@ namespace ErsatzTV.FFmpeg;
public enum AudioFilter public enum AudioFilter
{ {
None = 0, None = 0,
LoudNorm = 1, LoudNorm = 1
DynAudNorm = 2
} }

1
ErsatzTV.FFmpeg/Filter/NormalizeLoudnessFilter.cs

@ -9,7 +9,6 @@ public class NormalizeLoudnessFilter : BaseFilter
public override string Filter => _loudnessFilter switch public override string Filter => _loudnessFilter switch
{ {
AudioFilter.LoudNorm => "loudnorm=I=-16:TP=-1.5:LRA=11", AudioFilter.LoudNorm => "loudnorm=I=-16:TP=-1.5:LRA=11",
AudioFilter.DynAudNorm => "dynaudnorm",
_ => string.Empty _ => string.Empty
}; };

1
ErsatzTV.FFmpeg/Pipeline/PipelineBuilderBase.cs

@ -635,7 +635,6 @@ public abstract class PipelineBuilderBase : IPipelineBuilder
initialBurst = filter switch initialBurst = filter switch
{ {
AudioFilter.LoudNorm => 5, AudioFilter.LoudNorm => 5,
AudioFilter.DynAudNorm => 15,
_ => 0 _ => 0
}; };
} }

4925
ErsatzTV.Infrastructure.MySql/Migrations/20240126015002_Remove_FFmpegProfileDynaudnorm.Designer.cs generated

File diff suppressed because it is too large Load Diff

21
ErsatzTV.Infrastructure.MySql/Migrations/20240126015002_Remove_FFmpegProfileDynaudnorm.cs

@ -0,0 +1,21 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ErsatzTV.Infrastructure.MySql.Migrations
{
/// <inheritdoc />
public partial class Remove_FFmpegProfileDynaudnorm : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql("UPDATE FFmpegProfile SET NormalizeLoudnessMode = 1 WHERE NormalizeLoudnessMode = 2");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

4923
ErsatzTV.Infrastructure.Sqlite/Migrations/20240126014819_Remove_FFmpegProfileDynaudnorm.Designer.cs generated

File diff suppressed because it is too large Load Diff

21
ErsatzTV.Infrastructure.Sqlite/Migrations/20240126014819_Remove_FFmpegProfileDynaudnorm.cs

@ -0,0 +1,21 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ErsatzTV.Infrastructure.Sqlite.Migrations
{
/// <inheritdoc />
public partial class Remove_FFmpegProfileDynaudnorm : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql("UPDATE FFmpegProfile SET NormalizeLoudnessMode = 1 WHERE NormalizeLoudnessMode = 2");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

1
ErsatzTV/Pages/FFmpegEditor.razor

@ -138,7 +138,6 @@
<MudSelect Label="Normalize Loudness" @bind-Value="_model.NormalizeLoudnessMode" For="@(() => _model.NormalizeLoudnessMode)"> <MudSelect Label="Normalize Loudness" @bind-Value="_model.NormalizeLoudnessMode" For="@(() => _model.NormalizeLoudnessMode)">
<MudSelectItem Value="@NormalizeLoudnessMode.Off">Off</MudSelectItem> <MudSelectItem Value="@NormalizeLoudnessMode.Off">Off</MudSelectItem>
<MudSelectItem Value="@NormalizeLoudnessMode.LoudNorm">loudnorm</MudSelectItem> <MudSelectItem Value="@NormalizeLoudnessMode.LoudNorm">loudnorm</MudSelectItem>
<MudSelectItem Value="@NormalizeLoudnessMode.DynAudNorm">dynaudnorm</MudSelectItem>
</MudSelect> </MudSelect>
</MudElement> </MudElement>
</MudItem> </MudItem>

Loading…
Cancel
Save