// the find
larksuite/rsmpeg
A Rust crate that exposes FFmpeg's power as much as possible.
rsmpeg is a thin Rust wrapper over FFmpeg's C API, maintained by Lark (ByteDance). It targets developers who need serious multimedia processing in Rust without rewriting a C project from scratch. Supports FFmpeg 6.x and 7.x.
1. The safety layer is genuinely thin — it wraps FFmpeg's actual API shape rather than reinventing abstractions, so FFmpeg docs remain useful and you're not fighting a leaky re-design. 2. The ffmpeg_examples folder mirrors FFmpeg's own C examples (transcode, hw_decode, filter pipelines, VAAPI encode) so you can validate your mental model directly against the canonical reference. 3. FFmpeg linking is handled by rusty_ffmpeg under the hood, giving you static, dynamic, vcpkg, and system-package-manager paths without hacking build.rs yourself. 4. Active maintenance from a real company (Lark/ByteDance uses this in production), so FFmpeg 7.x was picked up — many Rust FFmpeg bindings stall on old versions.
1. 873 stars is thin for a foundational multimedia crate — the ecosystem around it (community answers, third-party examples, Stack Overflow coverage) is sparse, and you will hit undocumented edge cases. 2. Getting FFmpeg itself installed is still your problem: the setup docs are platform-specific and non-trivial, especially on Windows where you're funneled through vcpkg or pre-built binaries. 3. The crate is still a thin wrapper, not a high-level API — you're writing FFmpeg C idioms in Rust syntax, which means understanding pts/dts, AVFrame ref-counting, and filter graph wiring before you can do anything useful. 4. No async support — multimedia pipelines that want to integrate with Tokio will need manual thread bridging.