diff --git a/VideoNodes/Tests/AudioAddTrackTests.cs b/VideoNodes/Tests/AudioAddTrackTests.cs index aa2d7c8a..ad98da0f 100644 --- a/VideoNodes/Tests/AudioAddTrackTests.cs +++ b/VideoNodes/Tests/AudioAddTrackTests.cs @@ -30,7 +30,7 @@ namespace VideoNodes.Tests new VideoFile().Execute(args); node.Bitrate = 128; - node.Channels = 2; + node.Channels = 0; node.Index = 2; node.Codec = "aac"; diff --git a/VideoNodes/VideoNodes.csproj b/VideoNodes/VideoNodes.csproj index 5d9ef5c1..eb77275d 100644 Binary files a/VideoNodes/VideoNodes.csproj and b/VideoNodes/VideoNodes.csproj differ diff --git a/VideoNodes/VideoNodes/AudioAddTrack.cs b/VideoNodes/VideoNodes/AudioAddTrack.cs index a5403dbe..ee6c2acf 100644 --- a/VideoNodes/VideoNodes/AudioAddTrack.cs +++ b/VideoNodes/VideoNodes/AudioAddTrack.cs @@ -4,6 +4,7 @@ using FileFlows.Plugin.Attributes; using System; using System.Collections.Generic; + using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -15,9 +16,11 @@ [NumberInt(1)] [Range(1, 100)] + [DefaultValue(2)] public int Index { get; set; } + [DefaultValue("aac")] [Select(nameof(CodecOptions), 1)] public string Codec { get; set; } @@ -40,6 +43,7 @@ } } + [DefaultValue(2f)] [Select(nameof(ChannelsOptions), 2)] public float Channels { get; set; } @@ -73,6 +77,7 @@ { _BitrateOptions = new List { + new ListOption { Label = "Automatic", Value = 0}, new ListOption { Label = "64 Kbps", Value = 64}, new ListOption { Label = "96 Kbps", Value = 96}, new ListOption { Label = "128 Kbps", Value = 128}, @@ -157,6 +162,14 @@ if (Channels == 0) { // same as source + if(Bitrate == 0) + { + return new[] + { + "-map", videoInfo.AudioStreams[0].IndexString, + "-c:a:" + index, Codec + }; + } return new[] { "-map", videoInfo.AudioStreams[0].IndexString, @@ -166,6 +179,15 @@ } else { + if (Bitrate == 0) + { + return new[] + { + "-map", videoInfo.AudioStreams[0].IndexString, + "-c:a:" + index, Codec, + "-ac", Channels.ToString() + }; + } return new[] { "-map", videoInfo.AudioStreams[0].IndexString,