YoYoVideo 是什么
YoYoVideo 是一个本地视频播放器,用 Rust 编写,界面由 Slint 绘制,播放交给 libmpv 执行。
它想解决的事情很具体:当你想同时看多个视频时,市面上的播放器都不太行。 单文件播放谁都做得好, 但把一个文件夹拖进去、让每个画面各自播放、各自暂停、各自调音量,这件事只有少数播放器愿意认真对待。
核心特性
- 多画面批量播放。一次拖入多个文件即进入批量模式,每个画面拥有独立的播放控制,单格尺寸可以拖拽调整。
- 完整的播放控制。进度跳转、倍速、缩放、旋转、画面平移、A-B 循环、章节跳转、时间轴标记点。
- 字幕与音轨。外部字幕加载,字幕延迟、缩放与垂直位置可调,音频轨道与声道模式即时切换。
- 画面工具。常用视频滤镜预设,以及亮度、对比度、饱和度等画面参数。
- 轻量无边框。自绘标题栏与控制条,鼠标静止数秒后自动隐藏。
- 本地播放,无遥测。本地媒体无需联网;可选更新检查访问 GitHub,不上传媒体或播放历史。
它不是什么
- 不是转码器。YoYoVideo 只做播放,不做剪辑,也不导出视频。
- 不是流媒体客户端。网络地址可以打开,但它不是一个带推荐算法和账号体系的产品。
- 各平台验证程度不同。打包目标与原生播放/升级验收不是一回事,详见安装与下载。
技术构成
| 组成部分 | 作用 |
|---|---|
crates/yoyo-core | 播放会话与命令的领域逻辑,不依赖任何播放内核 |
crates/yoyo-mpv | libmpv 适配层,把内核事件翻译成领域事件 |
apps/yoyovideo-desktop | Slint 桌面应用、平台集成与打包产物 |
这套切分是有意的:yoyo-core 里没有一行 libmpv 代码,所以整个播放领域逻辑可以在没有 libmpv 的机器上 被完整测试。默认的 cargo test 正是靠这一点跑起来的。
当前版本
v0.0.1 是首个公开版本。更多内容见发布流程。