Skip to content
ijryPublic

About

悠悠易播 · Rust + Slint + libmpv 全格式本地视频播放器,支持多画面批量播放

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

YoYoVideo

YoYoVideo 悠悠乐播

Rust + Slint + libmpv 打造的全格式本地视频播放器。
多画面批量播放 · 字幕与音轨切换 · 画面滤镜 · A-B 循环 · 离线播放

下载 文档 许可证


界面

启动后的默认界面。视频区为空,控制条在鼠标静止数秒后自动隐藏。

YoYoVideo 默认界面

这是什么

一个本地视频播放器:界面用 Slint 绘制,播放交给 libmpv。它主要解决一件市面产品普遍没做好的事——同时看多个视频:

  • 多画面批量播放。拖入多个文件或整个文件夹,每个画面是独立播放会话,各自播放、暂停、 跳转、调音量,单格尺寸可以拖拽调整。
  • 完整播放控制。精确跳转、倍速、缩放、旋转、画面平移、A-B 循环、章节跳转、时间轴标记点。
  • 字幕与音轨。外部字幕加载,字幕延迟 / 缩放 / 垂直位置可调,音轨与声道模式即时切换。
  • 画面工具。常用滤镜预设,以及亮度、对比度、饱和度调节。
  • 轻量无边框。自绘标题栏与控制条,滚轮调音量,悬停呼出菜单。
  • 离线播放,无遥测。本地媒体无需联网;可关闭自动更新检查。更新功能只访问 GitHub 获取版本和安装包,不上传媒体或播放历史。

完整功能与快捷键见文档站。

下载与自动更新

新的 0.0.1 发布流程使用 Velopack 1.2.161,目标资源如下;请以 Releases 实际已发布的文件为准。

平台 格式 应用内更新
Windows x64 YoYoVideo-stable-windows-x64-Setup.exe 安装后支持
macOS Apple Silicon / Intel 各架构独立的 Portable.zip(内含 .app) 支持 Velopack 应用包
Linux x64 YoYoVideo.AppImage 可写位置的 AppImage 支持
Linux x64 YoYoVideo-linux-x64.deb 包管理器或手动更新

通过“检查更新”打开更新窗口,可控制自动检查、下载、稍后安装或确认退出并安装。更新前验证签名和包哈希,不会在启动时偷偷安装未确认的缓存更新。设置和播放历史保留,更新后不自动开始播放。

  • 普通开发构建、旧 NSIS/便携 ZIP 不能原地变成 Velopack 安装,请手动安装新发布格式。
  • macOS 使用 ad-hoc 签名,未做 Apple 公证;它不等于 Apple Developer 签名,首次运行仍可能被 Gatekeeper 拦截。只从可信发布页下载,按系统正常流程处理,不建议关闭系统安全检查。
  • AppImage 按 Ubuntu 22.04 构建,包含 libmpv 和可分发依赖;仍需要系统图形驱动、桌面及音频环境。Wayland/多画面原有平台限制不因换打包格式而消失。

开发验证状态、密钥管理和发布步骤见更新机制文档。

从源码构建

需要 Rust stable(edition 2024)。Windows 上还需要 Visual Studio Build Tools 的 C++ 工作负载 ——libmpv-sys 链接时要用 MSVC 工具链。

# 测试:默认 feature 下不需要 libmpv
cargo test --workspace
cargo fmt --check

# 拉取播放内核(公开上游构建,按 sha256 固定)
pwsh -NoProfile -File scripts/fetch-runtime.ps1 -Platform windows-x64

# 带真实播放运行
pwsh -NoProfile -File scripts/dev-run.ps1

# 打包
pwsh -NoProfile -File scripts/package.ps1 -Platform windows-x64 -Configuration release -RequireRuntime

用 dev-run.ps1 而不是直接 cargo run:mpv-runtime 不能做成默认 feature,否则没有 libmpv 的 机器上 cargo test 会直接失败。dev-run.ps1 用独立的 --target-dir,避免普通 cargo build 把同一个二进制不带 mpv-runtime 重新编译并悄悄覆盖掉。

工作区结构

路径 作用
crates/yoyo-core 播放会话与命令的领域逻辑,不依赖任何播放内核
crates/yoyo-mpv libmpv 适配层,把内核事件翻译成领域事件
apps/yoyovideo-desktop Slint 桌面应用、平台集成、打包产物
scripts/ 运行时拉取、打包、校验、冒烟测试
runtime/manifest.toml 播放内核的来源、版本与校验和
docs-site/ 文档站(VitePress)

yoyo-core 里没有一行 libmpv 代码,所以整个播放领域逻辑可以在没有内核的机器上被完整测试—— 这是默认 cargo test 能跑起来的前提。

贡献

提交前请确保:

cargo fmt --check
cargo test --workspace

CI 会在 Windows / macOS / Linux 上检查 mpv-runtime feature 能否编译。 发版流程见文档站的发布页。

许可证

YoYoVideo 以 GPL-3.0-or-later 发布,完整文本见 LICENSE。

发行包内捆绑的播放内核来自 shinchiro/mpv-winbuild-cmake, 其中的 mpv 与 FFmpeg 均为 GPL-2.0-or-later。分发二进制时必须同时提供对应源码, 详见 LICENSES.md 与发行包内的 LICENSES/ 目录。

English · 文档站

About

悠悠易播 · Rust + Slint + libmpv 全格式本地视频播放器,支持多画面批量播放

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages