about summary refs log tree commit diff stats
path: root/crates/libmpv2/README.md
blob: 6929354a2dff5cd11cf4a0cf66e4029ec5a72f66 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!--
yt - A fully featured command line YouTube client

Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
SPDX-License-Identifier: GPL-3.0-or-later

This file is part of Yt.

You should have received a copy of the License along with this program.
If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-->

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](https://mpv.srsfckn.biz/) 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.