5个版本

使用旧Rust 2015

0.2.3 2017年1月17日
0.2.2 2016年8月6日
0.2.1 2016年7月19日
0.2.0 2016年6月1日
0.1.0 2016年5月21日

#187 in 视频

Download history 50/week @ 2024-02-26 61/week @ 2024-03-04 60/week @ 2024-03-11 66/week @ 2024-03-18 55/week @ 2024-03-25 87/week @ 2024-04-01 41/week @ 2024-04-08 62/week @ 2024-04-15 64/week @ 2024-04-22 55/week @ 2024-04-29 57/week @ 2024-05-06 62/week @ 2024-05-13 63/week @ 2024-05-20 66/week @ 2024-05-27 64/week @ 2024-06-03 42/week @ 2024-06-10

每月 244 次下载
用于 5 crate

MIT/Apache

64KB
1K SLoC

mpv-rs

为Rust提供安全的libmpv绑定。

mpv是基于MPlayer和mplayer2的媒体播放器。它支持多种视频文件格式、音频和视频编解码器以及字幕类型。

该crate是Rust中的安全libmpv API绑定。有关mpv的更多信息,请参见这里

文档

安装

[dependencies]
mpv = "0.2"

需要安装mpv包才能运行。

Linux

在Linux上,您可以要求您的包管理器为您安装它。

Arch

# pacman -S mpv

基于Debian的系统

# apt-get install libmpv1

Windows

libmpv可以在这里找到,适用于Windows。您需要将库复制到您的Rust二进制文件夹中,以便正确链接。

运行

此crate中提供了2个示例。

simple.rs 允许您在新窗口中显示标准的mpv播放器。将提供控制功能。

$ cargo run --example simple

sdl2.rs 将mpv嵌入到sdl2窗口中。将不可用,并且不能使用。如果您想在此播放器之上创建一个界面,您必须使用OpenGL调用或SDL2调用自行绘制。

$ cargo run --example sdl2

贡献

欢迎任何贡献,包括任何代码审查!

待实现的功能

如果您想做出贡献,可以添加到mpv-rs中的一些mpv较少使用的函数和结构体

事件

格式

MpvHandler实现

  • (简单) load_config_file
  • (简单) detach_destroy (如果我知道这是什么用途的话?)
  • (简单) client_name
  • (高级) set_wakeup_callback
  • (高级) get_wakeup_pipe
  • (简单) request_log_messages
  • (简单) request_event

MpvHandlerWithGl 实现

  • (简单) raw_opengl_ctx() : 返回原始OpenGL上下文
  • (简单,但测试困难) report_flip
  • (非常困难,可能需要第三方库如 futures-rs) set_update_callback (部分通过 update_available 实现)

重构

(简单,但耗时) 这个crate是在我的早期Rust时期完成的,因此当前的代码组织得非常差。在不改变crate工作方式的情况下,将所有内容重构到结构合理的文件中将会是一个巨大的改进。

提交问题

有关mpv-rs API的任何问题都欢迎在问题中提出。

如果你的mpv崩溃了,请确保它是由这个Rust绑定引起的,而不是由libmpv本身引起的。

许可协议

mpv在全球范围内根据GPLv2+许可(见此处),但这个crate根据MIT/Apache-2.0许可(由你选择)。

依赖项

~495KB