This is a horrible ffmpeg and ffprobe wrapper that I've made for fun.
You can convert or fetch metadata from video/audio files using stream class or just the path.
FFmpegClient fFmpegClient = new FFmpegClient();
Stream output = new MemoryStream();
await fFmpegClient.ConvertToStreamAsync(inputPath , output, new Format(FormatTypes.MP3));
FFmpegClient fFmpegClient = new FFmpegClient();
await fFmpegClient.ConvertAsync(inputPath, outputPath);
FFprobeClient fFprobeClient = new FFprobeClient();
var format = await fFprobeClient.GetMetadataAsync(inputPath);
FFprobeClient fFprobeClient = new FFprobeClient();
//You can say where the output will be stored, whether it is in the file system,memory...
//Returned value is already deserialized but you can still do whatever you want with the raw output data
var frames = await fFprobeClient.GetFramesAsync(inputPath, StreamType.a, new MemoryStream());
The library itself tries to find the binaries on the same folder, but you can still use this constructor.
FFmpegClient fFmpegClient = new FFmpegClient("/bin/ffmpeg.exe");
When using it on unix systems, it will directly use the ffmpeg/ffprobe command, or use the other constructor to specify the path.