源影是一个跨端视频聚合客户端,用 Flutter 做界面、Rust 跑业务逻辑,Windows、macOS、Android、Android TV 均可运行,把多个内容源统一成搜索、播放与下载一体化的应用。
- v1.4.0-rc2
- 发布于
- 1 天前
- 3
- 星标
- 48
- 下载
- 同步于
- 1 天前
最新版本
v1.4.0-rc22026年10月18日 08:58测试版下载慢?可在上方随时切换镜像源
项目说明
项目概述
源影是一个跨端视频聚合客户端,把多个内容源(内置站点、第三方插件、B 站、Emby/Jellyfin、IPTV 直播、CCTV)聚合成统一界面,一次搜索、收藏、追更、播放与下载。
它由 Flutter 负责界面、Rust 负责全部业务逻辑,两侧通过 dart:ffi 直连、不经过任何 IPC 层;播放内核改用 media_kit + libmpv(自带完整 FFmpeg),从根上解决原版在 Windows 上遇 HEVC 就黑屏的解码问题。
| 项目 | 内容 |
|---|---|
| 平台 | Windows、macOS、Android、Android TV |
| 技术栈 | Flutter + Rust,dart:ffi 直连 |
| 播放内核 | libmpv(media_kit),硬解 d3d11va / MediaCodec |
| 许可 | MIT |
把所有视频源装进一个界面,用 Rust 内核统一搜索、播放与下载,HEVC 也能稳稳解码。
主要功能
- 多源聚合:内置站点、第三方插件、声明式 JSON 源与 TVBox 直连,统一成一个源列表
- 跨源搜索:一次搜索并发打全部源,边搜边出,不等最慢的那个
- 跨源换源:同一部剧在别的源也能看,按标题相似度排序并迁移进度
- 播放能力:HEVC/H.264/AV1、ASS/SRT 字幕、B 站弹幕与自定义弹幕服务器,速度、透明度、密度均可调
- 整片下载:把 HLS 全部分片拼成一个文件,一部剧一个文件夹按组存放
- 投屏与遥控:DLNA 投到电视并自动改写 m3u8 内嵌地址,手机可当遥控器配对
- 云同步:WebDAV 备份恢复,多设备共享收藏、历史与进度
- 桌面集成:托盘图标、自绘标题栏、窗口几何记忆、画中画独立窗口
适用人群
- 喜欢把多个视频源统一管理的内容聚合爱好者
- 需要跨设备同步收藏与进度的重度用户
- 想用 Android TV 或大屏投屏观看的电视用户
- 能写 JS 插件扩展内容源的开发者
- 在意 HEVC 与多种字幕格式兼容性的影音爱好者
快速上手
- 克隆仓库并按 README「从源码构建」章节准备 Flutter 与 Rust 工具链
- 先编译 Rust 核心:
cd rust/sourin_core && cargo build --release - 再构建目标平台:
flutter build windows --release -t lib/shell.dart - 在设置「内容源」里粘贴插件 JS、填 TVBox 地址或配置 Emby/B 站登录,加源即可播放
- 开发时务必用
DATA_DIR_OVERRIDE指到临时目录,避免误改真实收藏与进度
核心优势
- FFI 直连:业务逻辑全在 Rust,Flutter 只做 UI,81% 原 Rust 代码可原样复用
- 解码稳定:libmpv 自带 FFmpeg 不依赖系统解码器,HEVC、AC3、DTS 都能播
- 插件沙箱:JS 插件跑在 QuickJS 沙箱内,粘贴源码即可扩展新内容源
- 数据可迁移:与原版共用同一数据目录,收藏、历史、进度、插件迁移后都在
系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows、macOS、Android、Android TV |
| 构建工具 | Flutter(Dart VM 需允许 JIT)、Rust 工具链与 cargo |
| 播放内核 | libmpv(media_kit),支持 d3d11va / MediaCodec 硬解 |
注意事项
- HEVC 黑屏:若遇黑屏,把「硬解模式」改为
no走软解,或查看日志中[PLAY]关键字 - DRM 流:部分源(尤其央视)为 DRM 加密,仅音频可播,界面会明确提示,并非故障
- 插件数据:插件私有缓存落在
plugins/.data/,含凭据需注意保护
历史版本
排序