Install the following NuGet packages:
- FFMediaToolkit
 - SixLabors.ImageSharp
 
Download ffmpeg binaries from here: https://github.com/BtbN/FFmpeg-Builds/releases
Here is an example that extracts a PNG image from the middle of the video stream
private byte[] GetImageFromVideo(byte[] buffer)
{
    FFmpegLoader.FFmpegPath = @"c:\path\to\ffmpeg\binaries";
    using MemoryStream memStream = new (buffer);
    using MediaFile file = MediaFile.Open(memStream);
    file.Video.TryGetFrame(file.Video.Info.Duration.Divide(2), out ImageData imageData);
    using SixLabors.ImageSharp.Image<Bgr24> img =
            SixLabors.ImageSharp.Image.LoadPixelData<Bgr24>(imageData.Data, imageData.ImageSize.Width, imageData.ImageSize.Height);
    using MemoryStream outStream = new MemoryStream();
    img.Save(outStream, new PngEncoder());
    return outStream.ToArray();
}
Tags
C#