瀏覽代碼

support 5.1 aac

Luke Pulverenti 12 年之前
父節點
當前提交
bd85132702

+ 0 - 5
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

+ 5 - 0
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)

+ 5 - 0
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)

+ 7 - 0
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<string>();
 
+            if (string.Equals(Path.GetExtension(outputPath), ".aac", StringComparison.OrdinalIgnoreCase))
+            {
+                audioTranscodeParams.Add("-strict experimental");
+            }
+
             if (request.AudioBitRate.HasValue)
             {
                 audioTranscodeParams.Add("-ab " + request.AudioBitRate.Value);

+ 5 - 0
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);