sourin-app

sourin

源影是一个跨端视频聚合客户端,用 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 与多种字幕格式兼容性的影音爱好者

快速上手

  1. 克隆仓库并按 README「从源码构建」章节准备 Flutter 与 Rust 工具链
  2. 先编译 Rust 核心:cd rust/sourin_core && cargo build --release
  3. 再构建目标平台:flutter build windows --release -t lib/shell.dart
  4. 在设置「内容源」里粘贴插件 JS、填 TVBox 地址或配置 Emby/B 站登录,加源即可播放
  5. 开发时务必用 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/,含凭据需注意保护

历史版本

排序