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 视频
每月 244 次下载
用于 5 crate
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较少使用的函数和结构体
事件
- (高级) ClientMessage
格式
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