diff --git a/BasicNodes/BasicNodes.csproj b/BasicNodes/BasicNodes.csproj index bc9eed9f..6295d851 100644 Binary files a/BasicNodes/BasicNodes.csproj and b/BasicNodes/BasicNodes.csproj differ diff --git a/Builds/BasicNodes.zip b/Builds/BasicNodes.zip index 900acd72..8042e5bc 100644 Binary files a/Builds/BasicNodes.zip and b/Builds/BasicNodes.zip differ diff --git a/Builds/MetaNodes.zip b/Builds/MetaNodes.zip index 54b5847b..b70217ec 100644 Binary files a/Builds/MetaNodes.zip and b/Builds/MetaNodes.zip differ diff --git a/Builds/VideoNodes.zip b/Builds/VideoNodes.zip index 6d95c99d..c8a8922d 100644 Binary files a/Builds/VideoNodes.zip and b/Builds/VideoNodes.zip differ diff --git a/MetaNodes/MetaNodes.csproj b/MetaNodes/MetaNodes.csproj index 6c553b6b..13744732 100644 Binary files a/MetaNodes/MetaNodes.csproj and b/MetaNodes/MetaNodes.csproj differ diff --git a/VideoNodes/Tests/VideoInfoHelperTests.cs b/VideoNodes/Tests/VideoInfoHelperTests.cs index 9029a0b2..7a25ac4c 100644 --- a/VideoNodes/Tests/VideoInfoHelperTests.cs +++ b/VideoNodes/Tests/VideoInfoHelperTests.cs @@ -17,7 +17,7 @@ namespace VideoNodes.Tests public void VideoInfoTest_JudgeDreed() { var vi = new VideoInfoHelper(@"C:\utils\ffmpeg\ffmpeg.exe", new TestLogger()); - vi.Read(@"D:\videos\unprocessed\Judge Dredd (1995)\Judge Dredd (1995) Bluray-1080p.mkv"); + vi.Read(@"D:\videos\unprocessed\Hellboy 2019 Bluray-1080p.mp4"); } } diff --git a/VideoNodes/VideoNodes.csproj b/VideoNodes/VideoNodes.csproj index 1fe4308c..a3103aaa 100644 Binary files a/VideoNodes/VideoNodes.csproj and b/VideoNodes/VideoNodes.csproj differ diff --git a/VideoNodes/VideoNodes/VideoEncode.cs b/VideoNodes/VideoNodes/VideoEncode.cs index c01c0143..0dd022b1 100644 --- a/VideoNodes/VideoNodes/VideoEncode.cs +++ b/VideoNodes/VideoNodes/VideoEncode.cs @@ -127,12 +127,19 @@ namespace FileFlows.VideoNodes else ffArgs.Add($"-map 0:{bestAudio!.Index} -c:a copy"); - if (SupportsSubtitles(Extension)) + if (videoInfo?.SubtitleStreams?.Any() == true) { - if (Language != string.Empty) - ffArgs.Add($"-map 0:s:m:language:{Language}? -c:s copy"); + if (SupportsSubtitles(args, videoInfo)) + { + if (Language != string.Empty) + ffArgs.Add($"-map 0:s:m:language:{Language}? -c:s copy"); + else + ffArgs.Add($"-map 0:s? -c:s copy"); + } else - ffArgs.Add($"-map 0:s? -c:s copy"); + { + args.Logger?.WLog("Unsupported subtitle for target container, subtitles will be removed."); + } } string ffArgsLine = string.Join(" ", ffArgs); @@ -166,8 +173,14 @@ namespace FileFlows.VideoNodes } } - private bool SupportsSubtitles(string container) + private bool SupportsSubtitles(NodeParameters args, VideoInfo videoInfo) { + if (videoInfo?.SubtitleStreams?.Any() != true) + return false; + bool mov_text = videoInfo.SubtitleStreams.Any(x => x.Codec == "mov_text"); + // if mov_text and going to mkv, we can't convert these subtitles + if (mov_text && Extension?.ToLower()?.EndsWith("mkv") == true) + return false; return true; //if (Regex.IsMatch(container ?? string.Empty, "(mp(e)?(g)?4)|avi|divx|xvid", RegexOptions.IgnoreCase)) // return false; diff --git a/plugins.json b/plugins.json index 593f8a48..ef58ea5e 100644 --- a/plugins.json +++ b/plugins.json @@ -1,17 +1,17 @@ [ { "Name": "BasicNodes", - "Version": "0.0.1.29", + "Version": "0.0.1.30", "Package": "https://github.com/revenz/FileFlowsPlugins/blob/master/Builds/BasicNodes.zip?raw=true" }, { "Name": "MetaNodes", - "Version": "0.0.1.29", + "Version": "0.0.1.30", "Package": "https://github.com/revenz/FileFlowsPlugins/blob/master/Builds/MetaNodes.zip?raw=true" }, { "Name": "VideoNodes", - "Version": "0.0.1.29", + "Version": "0.0.1.30", "Package": "https://github.com/revenz/FileFlowsPlugins/blob/master/Builds/VideoNodes.zip?raw=true" } ]