ShotDetector.FastYuv 2.0.0

dotnet add package ShotDetector.FastYuv --version 2.0.0
                    
NuGet\Install-Package ShotDetector.FastYuv -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ShotDetector.FastYuv" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ShotDetector.FastYuv" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ShotDetector.FastYuv" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ShotDetector.FastYuv --version 2.0.0
                    
#r "nuget: ShotDetector.FastYuv, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ShotDetector.FastYuv@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ShotDetector.FastYuv&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ShotDetector.FastYuv&version=2.0.0
                    
Install as a Cake Tool

ShotDetector.FastYuv

Optional fast path for ShotDetector: with it, ffmpeg sends raw yuv420p and ShotDetector converts only the ~7% of pixels its resize reads, instead of ffmpeg converting every full frame to BGR. Results are identical; on 1080p video detection takes about 10 s instead of 17 s for 5000 frames.

using ShotDetector;
using ShotDetector.FastYuv;

var result = ShotDetection.Detect("video.mp4", new DetectionOptions { Yuv420Converter = new SwscaleYuv420() });

It also has Yadif, a port of FFmpeg's yadif deinterlacer, row by row: with in-process decoding and deinterlacing on, only the rows the resize reads are deinterlaced (identical results; on 1080i25 MPEG-2 with 2 CPUs, 7.5 s instead of 11.6 s for 2000 frames). It is a FrameReader IRowDeinterlacer, so a FrameDecoder takes it too (FrameDecoderOptions.RowDeinterlacer).

var result = ShotDetection.Detect("broadcast.mxf", new DetectionOptions { Deinterlace = DeinterlaceMode.Auto, Yadif = new Yadif() });

The converter is a bit-exact port of FFmpeg libswscale's yuv420p → BGR24 conversion (verified for all 2^24 Y/U/V values), so this package is licensed under the GNU LGPL 2.1 or later (COPYING.LGPL). The ShotDetector package itself is MIT. Video that isn't 8-bit yuv420p with an even height uses the normal path anyway.

Copyright (C) 2001-2007 Michael Niedermayer, (C) 2009-2010 Konstantin Shishkov (FFmpeg); yadif (C) 2006-2011 Michael Niedermayer, 2010 James Darnley (FFmpeg); C# port (C) 2026 Jakob Boman.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 0 10/13/2026
2.0.0-preview.1 0 10/13/2026
1.13.1 0 10/13/2026
1.13.0 0 10/13/2026
1.12.0 144 10/13/2026
1.11.0 176 10/12/2026
1.10.0 67 10/12/2026
1.9.0 72 10/12/2026
1.8.0 81 10/12/2026
1.7.0 218 10/11/2026
1.6.0 164 10/11/2026
1.5.0 73 10/11/2026
1.4.1 199 10/10/2026
1.4.0 47 10/10/2026
1.3.0 134 10/10/2026
1.3.0-preview.1 47 10/10/2026
1.2.0 110 10/10/2026
1.1.0 143 10/9/2026
1.0.0 287 10/8/2026
0.10.0 81 10/8/2026
Loading failed