From dde4a85fe73dad0a0c3b1059dbbbc61c191fb535 Mon Sep 17 00:00:00 2001 From: John Andrews Date: Mon, 29 Jan 2024 01:34:48 +1300 Subject: [PATCH] fixing pixel format issue --- FileFlows.Plugin.dll | Bin 131072 -> 131072 bytes FileFlows.Plugin.pdb | Bin 30412 -> 30412 bytes .../FfmpegBuilderExecutor.cs | 9 ++++++++- .../FfmpegBuilderVideoEncode.cs | 10 ++++++---- VideoNodes/Globals.cs | 6 ++++++ VideoNodes/VideoInfo.cs | 10 ++++++++++ VideoNodes/VideoInfoHelper.cs | 5 ++++- 7 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 VideoNodes/Globals.cs diff --git a/FileFlows.Plugin.dll b/FileFlows.Plugin.dll index a4428a90110cce03a4eb1feb9cd97ad3109eaa3a..3fdf83b46922ecc027484fbe7ff43c93ff7f6dc5 100644 GIT binary patch delta 10279 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 Mx`)?sPLB4!0NHUrAOHXW delta 10258 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 delta 130 zcmX@}mhsG6#tAhdspn-bH;JuwT(#-o(U(Q4Mn|+#-cFpL!Kk=#=X!p|jgvD4^kv x.Stream.IsImage == false); args.Logger?.ILog("Pixel Format: " + (video?.Stream?.PixelFormat?.EmptyAsNull() ?? "Unknown")); - startArgs.AddRange(GetHardwareDecodingArgs(args, localFile, FFMPEG, video?.Stream?.Codec, video?.Stream?.PixelFormat)); + bool targetIs10Bit = string.Join(" ", ffArgs).Contains("p010le"); + string pxtFormat = video?.Stream?.PixelFormat; + if (targetIs10Bit && video?.Stream?.Is10Bit == true) + pxtFormat = "p010le"; + if (targetIs10Bit == false && video?.Stream?.Is10Bit == false && video?.Stream?.Is12Bit == false) + pxtFormat = "yuv420p"; + + startArgs.AddRange(GetHardwareDecodingArgs(args, localFile, FFMPEG, video?.Stream?.Codec, pxtFormat)); } } diff --git a/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderVideoEncode/FfmpegBuilderVideoEncode.cs b/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderVideoEncode/FfmpegBuilderVideoEncode.cs index 966c3120..372c76f5 100644 --- a/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderVideoEncode/FfmpegBuilderVideoEncode.cs +++ b/VideoNodes/FfmpegBuilderNodes/Video/FfmpegBuilderVideoEncode/FfmpegBuilderVideoEncode.cs @@ -176,15 +176,17 @@ public partial class FfmpegBuilderVideoEncode:FfmpegBuilderNode stream.EncodingParameters.AddRange(H264(args, false, Quality, encoder, Speed)); stream.Codec = CODEC_H264; } - else if (Codec == CODEC_H265 || Codec == CODEC_H265_10BIT) + else if (Codec is CODEC_H265 or CODEC_H265_10BIT) { - stream.EncodingParameters.AddRange(H265(stream, args, Codec == CODEC_H265_10BIT, Quality, encoder, + bool tenBit = Codec == CODEC_H265_10BIT || stream.Stream.Is10Bit; + stream.EncodingParameters.AddRange(H265(stream, args, tenBit, Quality, encoder, stream.Stream.FramesPerSecond, Speed)); stream.Codec = "hevc"; } - else if (Codec == CODEC_AV1 || Codec == CODEC_AV1_10BIT) + else if (Codec is CODEC_AV1 or CODEC_AV1_10BIT) { - stream.EncodingParameters.AddRange(AV1(args, Codec == CODEC_AV1_10BIT, Quality, encoder, Speed)); + bool tenBit = Codec == CODEC_AV1_10BIT || stream.Stream.Is10Bit; + stream.EncodingParameters.AddRange(AV1(args, tenBit, Quality, encoder, Speed)); stream.Codec = "av1"; } else if (Codec == CODEC_VP9) diff --git a/VideoNodes/Globals.cs b/VideoNodes/Globals.cs new file mode 100644 index 00000000..367a6e29 --- /dev/null +++ b/VideoNodes/Globals.cs @@ -0,0 +1,6 @@ +namespace FileFlows.VideoNodes; + +public class Globals +{ + internal const string PIX_FORMAT = "#PXT_FORMAT"; +} \ No newline at end of file diff --git a/VideoNodes/VideoInfo.cs b/VideoNodes/VideoInfo.cs index 152a625d..236c5b6a 100644 --- a/VideoNodes/VideoInfo.cs +++ b/VideoNodes/VideoInfo.cs @@ -93,6 +93,16 @@ public class VideoFileStream /// Gets or sets the pixel format that should be used to decode this stream /// public string PixelFormat { get; set; } + + /// + /// Gets or sets if this stream is 10 bit + /// + public bool Is10Bit { get; set; } + + /// + /// Gets or sets if this stream is 12 bit + /// + public bool Is12Bit { get; set; } } /// diff --git a/VideoNodes/VideoInfoHelper.cs b/VideoNodes/VideoInfoHelper.cs index 776a57be..02dec868 100644 --- a/VideoNodes/VideoInfoHelper.cs +++ b/VideoNodes/VideoInfoHelper.cs @@ -257,6 +257,9 @@ public class VideoInfoHelper vs.Codec = line.Substring(line.IndexOf("Video: ") + "Video: ".Length).Replace(",", "").Trim().Split(' ').First().ToLower(); vs.PixelFormat = GetDecoderPixelFormat(line); + vs.Is10Bit = Regex.IsMatch(line, @"p(0)?10l(b)?e", RegexOptions.IgnoreCase); + vs.Is12Bit = Regex.IsMatch(line, @"p(0)?12l(b)?e", RegexOptions.IgnoreCase); + var dimensions = Regex.Match(line, @"([\d]{3,})x([\d]{3,})"); if (int.TryParse(dimensions.Groups[1].Value, out int width)) vs.Width = width; @@ -455,7 +458,7 @@ public class VideoInfoHelper static string GetDecoderPixelFormat(string line) { // only p010le confirmed working so far - if(line.IndexOf("p010le", StringComparison.Ordinal) > 0) + if(Regex.IsMatch(line, @"p(0)?10l(b)?e")) return "p010le"; // if(line.IndexOf("yuv420p", StringComparison.Ordinal) > 0) // return "yuv420p";