diff --git a/activities/normalize.go b/activities/normalize.go index 2a69bdf9..63774868 100644 --- a/activities/normalize.go +++ b/activities/normalize.go @@ -83,6 +83,7 @@ type NormalizeAudioParams struct { type NormalizeAudioResult struct { FilePath paths.Path + IsSilent bool InputAnalysis *common.AnalyzeEBUR128Result OutputAnalysis *common.AnalyzeEBUR128Result } @@ -90,6 +91,17 @@ type NormalizeAudioResult struct { func NormalizeAudioActivity(ctx context.Context, params NormalizeAudioParams) (*NormalizeAudioResult, error) { out := &NormalizeAudioResult{} + silent, err := transcode.AudioIsSilent(params.FilePath) + if err != nil { + return nil, err + } + if silent { + return &NormalizeAudioResult{ + FilePath: params.FilePath, + IsSilent: true, + }, nil + } + r128Result, err := AnalyzeEBUR128Activity(ctx, AnalyzeEBUR128Params{ FilePath: params.FilePath, TargetLoudness: params.TargetLUFS, diff --git a/cmd/trigger_ui/main.go b/cmd/trigger_ui/main.go index a84fd373..4bcfa38e 100644 --- a/cmd/trigger_ui/main.go +++ b/cmd/trigger_ui/main.go @@ -190,6 +190,7 @@ func (s *TriggerServer) triggerHandlerPOST(c *gin.Context) { VXID: vxID, WithFiles: c.PostForm("withFiles") == "on", WithChapters: c.PostForm("withChapters") == "on", + IgnoreSilence: c.PostForm("ignoreSilence") == "on", WatermarkPath: watermarkPath, AudioSource: audioSource, Destinations: c.PostFormArray("destinations[]"), diff --git a/cmd/trigger_ui/templates/vx-export.gohtml b/cmd/trigger_ui/templates/vx-export.gohtml index d72a117c..f6742ac1 100644 --- a/cmd/trigger_ui/templates/vx-export.gohtml +++ b/cmd/trigger_ui/templates/vx-export.gohtml @@ -115,6 +115,11 @@ +