diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index b2b37a1ac..7f3c7ca9e 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -426,11 +426,6 @@ namespace MediaBrowser.Api.Playback { if (audioStream.Channels > 2 && request.AudioCodec.HasValue) { - if (request.AudioCodec.Value == AudioCodecs.Aac) - { - // libvo_aacenc currently only supports two channel output - return 2; - } if (request.AudioCodec.Value == AudioCodecs.Wma) { // wmav2 currently only supports two channel output diff --git a/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs b/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs index f72006a23..a666d4628 100644 --- a/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs @@ -93,6 +93,11 @@ namespace MediaBrowser.Api.Playback.Hls var args = "-codec:a " + codec; + if (string.Equals(codec, "aac", StringComparison.OrdinalIgnoreCase)) + { + args += " -strict experimental"; + } + var channels = GetNumAudioChannelsParam(state.Request, state.AudioStream); if (channels.HasValue) diff --git a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs index 42a1bf839..827333598 100644 --- a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs @@ -98,6 +98,11 @@ namespace MediaBrowser.Api.Playback.Hls if (state.AudioStream != null) { + if (string.Equals(codec, "aac", StringComparison.OrdinalIgnoreCase)) + { + args += " -strict experimental"; + } + var channels = GetNumAudioChannelsParam(state.Request, state.AudioStream); if (channels.HasValue) diff --git a/MediaBrowser.Api/Playback/Progressive/AudioService.cs b/MediaBrowser.Api/Playback/Progressive/AudioService.cs index f5a95d898..b6a7c7204 100644 --- a/MediaBrowser.Api/Playback/Progressive/AudioService.cs +++ b/MediaBrowser.Api/Playback/Progressive/AudioService.cs @@ -3,7 +3,9 @@ using MediaBrowser.Common.MediaInfo; using MediaBrowser.Controller; using MediaBrowser.Controller.Library; using ServiceStack.ServiceHost; +using System; using System.Collections.Generic; +using System.IO; namespace MediaBrowser.Api.Playback.Progressive { @@ -84,6 +86,11 @@ namespace MediaBrowser.Api.Playback.Progressive var audioTranscodeParams = new List(); + if (string.Equals(Path.GetExtension(outputPath), ".aac", StringComparison.OrdinalIgnoreCase)) + { + audioTranscodeParams.Add("-strict experimental"); + } + if (request.AudioBitRate.HasValue) { audioTranscodeParams.Add("-ab " + request.AudioBitRate.Value); diff --git a/MediaBrowser.Api/Playback/Progressive/VideoService.cs b/MediaBrowser.Api/Playback/Progressive/VideoService.cs index 117b6033f..3e92c96ec 100644 --- a/MediaBrowser.Api/Playback/Progressive/VideoService.cs +++ b/MediaBrowser.Api/Playback/Progressive/VideoService.cs @@ -217,6 +217,11 @@ namespace MediaBrowser.Api.Playback.Progressive var args = "-acodec " + codec; + if (string.Equals(codec, "aac", StringComparison.OrdinalIgnoreCase)) + { + args += " -strict experimental"; + } + // Add the number of audio channels var channels = GetNumAudioChannelsParam(request, state.AudioStream);