跳到主要内容

YoYoVideo 是什么 ​

YoYoVideo 是一个本地视频播放器,用 Rust 编写,界面由 Slint 绘制,播放交给 libmpv 执行。

它想解决的事情很具体:当你想同时看多个视频时,市面上的播放器都不太行。 单文件播放谁都做得好, 但把一个文件夹拖进去、让每个画面各自播放、各自暂停、各自调音量,这件事只有少数播放器愿意认真对待。

核心特性 ​

  • 多画面批量播放。一次拖入多个文件即进入批量模式,每个画面拥有独立的播放控制,单格尺寸可以拖拽调整。
  • 完整的播放控制。进度跳转、倍速、缩放、旋转、画面平移、A-B 循环、章节跳转、时间轴标记点。
  • 字幕与音轨。外部字幕加载,字幕延迟、缩放与垂直位置可调,音频轨道与声道模式即时切换。
  • 画面工具。常用视频滤镜预设,以及亮度、对比度、饱和度等画面参数。
  • 轻量无边框。自绘标题栏与控制条,鼠标静止数秒后自动隐藏。
  • 本地播放,无遥测。本地媒体无需联网;可选更新检查访问 GitHub,不上传媒体或播放历史。

它不是什么 ​

  • 不是转码器。YoYoVideo 只做播放,不做剪辑,也不导出视频。
  • 不是流媒体客户端。网络地址可以打开,但它不是一个带推荐算法和账号体系的产品。
  • 各平台验证程度不同。打包目标与原生播放/升级验收不是一回事,详见安装与下载。

技术构成 ​

组成部分作用
crates/yoyo-core播放会话与命令的领域逻辑,不依赖任何播放内核
crates/yoyo-mpvlibmpv 适配层,把内核事件翻译成领域事件
apps/yoyovideo-desktopSlint 桌面应用、平台集成与打包产物

这套切分是有意的:yoyo-core 里没有一行 libmpv 代码,所以整个播放领域逻辑可以在没有 libmpv 的机器上 被完整测试。默认的 cargo test 正是靠这一点跑起来的。

当前版本 ​

v0.0.1 是首个公开版本。更多内容见发布流程。

基于 GPL-3.0-or-later 发布,内含 GPL-2.0-or-later 的 mpv / FFmpeg 运行时。