diff options
| author | Cody Robibero <cody@robibe.ro> | 2022-05-08 15:23:58 -0600 |
|---|---|---|
| committer | crobibero <cody@robibe.ro> | 2022-05-20 18:30:57 -0400 |
| commit | 1922ee153e4149530875686212353de578a2932a (patch) | |
| tree | 47e3fe731d2bb908e67ce76da9d43dccc112ec4c /MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | |
| parent | 47d150565d7c7eeffc037be5736f99d9e850b143 (diff) | |
Merge pull request #7716 from Shadowghost/opus-fix
Respect limited opus sampling rates when building trancoding command
(cherry picked from commit 5a9afb0874b0862f6184478003332219796ee73b)
Signed-off-by: crobibero <cody@robibe.ro>
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs')
| -rw-r--r-- | MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 1851a9f0c..54b41a6d2 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -5370,12 +5370,22 @@ namespace MediaBrowser.Controller.MediaEncoding audioTranscodeParams.Add("-ac " + state.OutputAudioChannels.Value.ToString(CultureInfo.InvariantCulture)); } - // opus will fail on 44100 if (!string.Equals(state.OutputAudioCodec, "opus", StringComparison.OrdinalIgnoreCase)) { - if (state.OutputAudioSampleRate.HasValue) + // opus only supports specific sampling rates + var sampleRate = state.OutputAudioSampleRate; + if (sampleRate.HasValue) { - audioTranscodeParams.Add("-ar " + state.OutputAudioSampleRate.Value.ToString(CultureInfo.InvariantCulture)); + var sampleRateValue = sampleRate.Value switch + { + <= 8000 => 8000, + <= 12000 => 12000, + <= 16000 => 16000, + <= 24000 => 24000, + _ => 48000 + }; + + audioTranscodeParams.Add("-ar " + sampleRateValue.ToString(CultureInfo.InvariantCulture)); } } |
