#libmpv #playback #mpv #media-playback

libmpv2

Libmpv abstraction that's easy to use and can play next to all codecs and containers

8 stable releases (3 major)

Uses new Rust 2024

new 6.0.0 May 12, 2026
5.0.3 Dec 29, 2025
5.0.1 Aug 10, 2025
5.0.0 Jul 27, 2025
3.0.0 Apr 12, 2024

#107 in Audio

Download history 362/week @ 2026-01-24 699/week @ 2026-01-31 659/week @ 2026-02-07 969/week @ 2026-02-14 1085/week @ 2026-02-21 581/week @ 2026-02-28 557/week @ 2026-03-07 1445/week @ 2026-03-14 1118/week @ 2026-03-21 1333/week @ 2026-03-28 1180/week @ 2026-04-04 1486/week @ 2026-04-11 614/week @ 2026-04-18 867/week @ 2026-04-25 1219/week @ 2026-05-02 961/week @ 2026-05-09

3,872 downloads per month
Used in 4 crates

LGPL-2.1

205KB
2.5K SLoC

Credits go to @anlumo for the rendering implementation and @sirno for updating the API to support libmpv version 2.0.

libmpv2-rs

A libmpv abstraction written in rust that's easy to use and provides the ability to read next to all video and audio codecs.

Dependencies

Rust version >= 1.30. Libmpv version 2.0 (mpv version 0.35.0) is the minimum required version.

For ease of building, you can use the build_libmpv feature that is used to link against. Especially useful to cross compile to windows. The MPV_SOURCE environment variable needs to be set to a directory containing the mpv source you want to build against. For windows targets this is expected to be already built, with a directory named MPV_SOURCE/64 or /32 containing build artifacts for 64-bit and 32-bit targets respectively. On unix this is expected to be a copy of the mpv-build repo.

Examples

To run an example, execute cargo run [--release] --example x -- test-data/jellyfish.mp4, where x is any of:

  • events: event enumeration
  • protocol: implementation of custom filereader:// protocol that… reads files
  • opengl: openGL rendering onto SDL2 window

Contributing

All pull requests/issues welcome.

Dependencies