// the find
Ruslan-B/FFmpeg.AutoGen
FFmpeg auto generated unsafe bindings for C#/.NET and Core (Linux, MacOS and Mono).
Auto-generated, unsafe P/Invoke bindings to the full FFmpeg C API for .NET, covering Windows/Linux/macOS with three linking strategies (dynamically linked, dynamically loaded, statically linked). It's for developers who need raw FFmpeg access from C# and are comfortable reading FFmpeg's C headers and docs directly, not for anyone wanting a friendly managed video API.
The three separate binding packages (DynamicallyLinked, DynamicallyLoaded, StaticallyLinked) actually solve different deployment problems rather than being arbitrary options - DynamicallyLoaded in particular lets you resolve native libs at runtime instead of hard binding at load time. It ships its own Clang macro parser/tokenizer to correctly translate FFmpeg's C preprocessor macros into C#, which is the kind of unglamorous work most binding generators skip and then get wrong. NuGet versions are kept in lockstep with the exact FFmpeg release they're generated from, so you know precisely what C API surface you're getting instead of guessing.
The README is upfront that support is 'very limited' and you'll be 'largely on your own' - that's honest, but it also means there's no real abstraction layer over raw unsafe pointers; every call is 1:1 with the C API, so you need to already know FFmpeg's C internals, not just C#. The project just relicensed from LGPL to MIT and announced a move to a 'semi-managed model' with the founder stepping back from day-to-day support, which is worth watching before building something you intend to maintain for years. There's a single example project and no higher-level docs beyond pointing you at ffmpeg.org's own C API documentation, so the learning curve is entirely on the FFmpeg side, not this library's.