About this project
Xabe.FFmpeg provides a .NET interface around the FFmpeg and FFprobe executables rather than binding directly to libav libraries. An application creates a conversion, optionally inspects the generated argument string, and starts the external process. Both executables must be available; discovery checks a configured directory, the application directory, and PATH. The optional Xabe.FFmpeg.Downloader package can retrieve builds for selected operating systems.
The API supports common operations such as MP4, TS, WebM, OGV, and GIF output; audio extraction or addition; snapshots; splitting and concatenation; watermarks; HLS capture; and sending media or desktop output to RTSP. Developers can probe media metadata, select video, audio, and subtitle streams, set codecs and bitrates, resize video, apply filters, and control overwrite behavior. Progress and process-output events are exposed, and piped video output is supported. Hardware acceleration is passed through to options such as NVENC, QuickSync, VideoToolbox, and VAAPI when the installed FFmpeg build and host support them. For unsupported options, arbitrary arguments can be placed before or after the input, and the command can be built for inspection before execution.
The package targets .NET Standard 2.0 and runs on Windows, macOS, and Linux with compatible runtimes. It works with files and stream URIs, not in-memory buffers. The downloader does not allow pinning arbitrary FFmpeg versions. Available encoders, decoders, filters, and hardware acceleration depend on the external FFmpeg build. The wrapper is offered under CC BY-NC-SA 3.0 for non-commercial use, with a separate commercial license; FFmpeg and FFprobe binaries carry their own licenses.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.