Luke Pulverenti 8 年之前
父节点
当前提交
1c1aa7c2c5
共有 2 个文件被更改,包括 14 次插入7 次删除
  1. 13 6
      MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
  2. 1 1
      SharedVersion.cs

+ 13 - 6
MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs

@@ -779,18 +779,18 @@ namespace MediaBrowser.Api.Playback.Hls
 
 
         protected override string GetAudioArguments(StreamState state)
         protected override string GetAudioArguments(StreamState state)
         {
         {
-            var codec = EncodingHelper.GetAudioEncoder(state);
+            var audioCodec = EncodingHelper.GetAudioEncoder(state);
 
 
             if (!state.IsOutputVideo)
             if (!state.IsOutputVideo)
             {
             {
-                if (string.Equals(codec, "copy", StringComparison.OrdinalIgnoreCase))
+                if (string.Equals(audioCodec, "copy", StringComparison.OrdinalIgnoreCase))
                 {
                 {
                     return "-acodec copy";
                     return "-acodec copy";
                 }
                 }
 
 
                 var audioTranscodeParams = new List<string>();
                 var audioTranscodeParams = new List<string>();
 
 
-                audioTranscodeParams.Add("-acodec " + codec);
+                audioTranscodeParams.Add("-acodec " + audioCodec);
 
 
                 if (state.OutputAudioBitrate.HasValue)
                 if (state.OutputAudioBitrate.HasValue)
                 {
                 {
@@ -811,12 +811,19 @@ namespace MediaBrowser.Api.Playback.Hls
                 return string.Join(" ", audioTranscodeParams.ToArray());
                 return string.Join(" ", audioTranscodeParams.ToArray());
             }
             }
 
 
-            if (string.Equals(codec, "copy", StringComparison.OrdinalIgnoreCase))
+            if (string.Equals(audioCodec, "copy", StringComparison.OrdinalIgnoreCase))
             {
             {
-                return "-codec:a:0 copy -copypriorss:a:0 0";
+                var videoCodec = EncodingHelper.GetVideoEncoder(state, ApiEntryPoint.Instance.GetEncodingOptions());
+
+                if (string.Equals(videoCodec, "copy", StringComparison.OrdinalIgnoreCase) && state.EnableBreakOnNonKeyFrames(videoCodec))
+                {
+                    return "-codec:a:0 copy -copypriorss:a:0 0";
+                }
+
+                return "-codec:a:0 copy";
             }
             }
 
 
-            var args = "-codec:a:0 " + codec;
+            var args = "-codec:a:0 " + audioCodec;
 
 
             var channels = state.OutputAudioChannels;
             var channels = state.OutputAudioChannels;
 
 

+ 1 - 1
SharedVersion.cs

@@ -1,3 +1,3 @@
 using System.Reflection;
 using System.Reflection;
 
 
-[assembly: AssemblyVersion("3.2.22.7")]
+[assembly: AssemblyVersion("3.2.23.1")]