diff --git a/Code/Media/FfmpegExtract.cs b/Code/Media/FfmpegExtract.cs index b930aee..6196837 100644 --- a/Code/Media/FfmpegExtract.cs +++ b/Code/Media/FfmpegExtract.cs @@ -31,8 +31,8 @@ namespace Flowframes.Media } string scnDetect = $"-vf \"select='gt(scene,{Config.GetFloatString(Config.Key.scnDetectValue)})'\""; - string rateArg = (rate.GetFloat() > 0) ? $"-r {rate}" : ""; - string args = $"{GetTrimArg(true)} {inArg} {GetImgArgs(format)} {rateArg} {scnDetect} -fps_mode passthrough -frame_pts 1 -s 256x144 {GetTrimArg(false)} \"{outDir}/%{Padding.inputFrames}d{format}\""; + string rateArg = (rate.GetFloat() > 0) ? $"-fps_mode cfr -r {rate}" : "-fps_mode passthrough"; + string args = $"{GetTrimArg(true)} {inArg} {GetImgArgs(format)} {rateArg} {scnDetect} -frame_pts 1 -s 256x144 {GetTrimArg(false)} \"{outDir}/%{Padding.inputFrames}d{format}\""; LogMode logMode = Interpolate.currentMediaFile.FrameCount > 50 ? LogMode.OnlyLastLine : LogMode.Hidden; await RunFfmpeg(args, logMode, inputIsFrames ? "panic" : "warning", true); @@ -67,7 +67,7 @@ namespace Flowframes.Media } if (includePixFmt) - args += $" -pix_fmt {pixFmt}"; + args += $" -pix_fmt {pixFmt} -color_range full"; return args; } @@ -81,8 +81,8 @@ namespace Flowframes.Media string mpStr = deDupe ? ((Config.GetInt(Config.Key.mpdecimateMode) == 0) ? mpDecDef : mpDecAggr) : ""; string filters = FormatUtils.ConcatStrings(new[] { GetPadFilter(), mpStr }); string vf = filters.Length > 2 ? $"-vf {filters}" : ""; - string rateArg = (rate.GetFloat() > 0) ? $" -r {rate}" : ""; - string args = $"{GetTrimArg(true)} -i {inputFile.Wrap()} {GetImgArgs(format, true, alpha)} -fps_mode passthrough {rateArg} -frame_pts 1 {vf} {sizeStr} {GetTrimArg(false)} \"{framesDir}/%{Padding.inputFrames}d{format}\""; + string rateArg = (rate.GetFloat() > 0) ? $" -fps_mode cfr -r {rate}" : "-fps_mode passthrough"; + string args = $"{GetTrimArg(true)} -i {inputFile.Wrap()} {GetImgArgs(format, true, alpha)} {rateArg} -frame_pts 1 {vf} {sizeStr} {GetTrimArg(false)} \"{framesDir}/%{Padding.inputFrames}d{format}\""; LogMode logMode = Interpolate.currentMediaFile.FrameCount > 50 ? LogMode.OnlyLastLine : LogMode.Hidden; await RunFfmpeg(args, logMode, true); int amount = IoUtils.GetAmountOfFiles(framesDir, false, "*" + format); diff --git a/Pkgs/av/avcodec-60.dll b/Pkgs/av/avcodec-60.dll index 376fb53..8c2fdc7 100644 Binary files a/Pkgs/av/avcodec-60.dll and b/Pkgs/av/avcodec-60.dll differ diff --git a/Pkgs/av/avdevice-60.dll b/Pkgs/av/avdevice-60.dll index 3832cc9..b8b32d2 100644 Binary files a/Pkgs/av/avdevice-60.dll and b/Pkgs/av/avdevice-60.dll differ diff --git a/Pkgs/av/avfilter-9.dll b/Pkgs/av/avfilter-9.dll index 820326f..03d1e8d 100644 Binary files a/Pkgs/av/avfilter-9.dll and b/Pkgs/av/avfilter-9.dll differ diff --git a/Pkgs/av/avformat-60.dll b/Pkgs/av/avformat-60.dll index b94d7b2..fdc5d2b 100644 Binary files a/Pkgs/av/avformat-60.dll and b/Pkgs/av/avformat-60.dll differ diff --git a/Pkgs/av/avutil-58.dll b/Pkgs/av/avutil-58.dll index 8c34829..5cfa052 100644 Binary files a/Pkgs/av/avutil-58.dll and b/Pkgs/av/avutil-58.dll differ diff --git a/Pkgs/av/ffmpeg.exe b/Pkgs/av/ffmpeg.exe index e304567..09d89e3 100644 Binary files a/Pkgs/av/ffmpeg.exe and b/Pkgs/av/ffmpeg.exe differ diff --git a/Pkgs/av/ffplay.exe b/Pkgs/av/ffplay.exe index c283682..cf240f0 100644 Binary files a/Pkgs/av/ffplay.exe and b/Pkgs/av/ffplay.exe differ diff --git a/Pkgs/av/ffprobe.exe b/Pkgs/av/ffprobe.exe index f2dc6a5..cbe3ead 100644 Binary files a/Pkgs/av/ffprobe.exe and b/Pkgs/av/ffprobe.exe differ diff --git a/Pkgs/av/postproc-57.dll b/Pkgs/av/postproc-57.dll index 82c6514..d4fba11 100644 Binary files a/Pkgs/av/postproc-57.dll and b/Pkgs/av/postproc-57.dll differ diff --git a/Pkgs/av/swresample-4.dll b/Pkgs/av/swresample-4.dll index e73fba0..6802389 100644 Binary files a/Pkgs/av/swresample-4.dll and b/Pkgs/av/swresample-4.dll differ diff --git a/Pkgs/av/swscale-7.dll b/Pkgs/av/swscale-7.dll index b2d0160..4de65d7 100644 Binary files a/Pkgs/av/swscale-7.dll and b/Pkgs/av/swscale-7.dll differ