Skip to content
VitaeL04213Public

About

Sunder — 把 10 GB 以上的视频无损切成每段不超过 10 GB 的片段,并可逐字节还原。Electron + 离线 + SHA-256 校验。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sunder

把 10 GB 以上的视频切成每段不超过 10 GB 的无损片段,并在需要时逐字节还原为原片。

Sunder 是一个完全离线的 Windows 桌面工具。它不做转码、不上传文件、不改变一个字节:分段是严格的字节切分,合并后与原文件 SHA-256 一致。适合把超大视频放进云盘、移动硬盘、聊天工具或单文件有上限的存储。

界面为 Claude 式的暖纸色与赤陶色,使用衬线标题与简洁的任务卡片,只保留必要的操作与状态说明。

Sunder 分段界面

功能

  • 按 10 GB 硬上限分段:默认每段最多 10,000,000,000 字节;最后一段为余量。任何片段都不会超过上限。
  • 逐字节还原:合并时依次校验每个片段的 SHA-256 与整片的 SHA-256,全部通过才发布还原文件。
  • 边写边校验:分段与合并都在流式读写中计算哈希,不把整个文件读入内存,10 GB 文件的内存占用也在十余 MB 量级。
  • 断点安全:每个片段先写临时文件,完成后原子改名;清单最后写入。取消或失败会自动清理本次产生的临时文件。
  • 不覆盖:分段文件夹与还原文件重名时自动追加 (2)、 (3)。
  • 历史记录:成功完成的分段与还原会记录在本地,可随时查看并一键打开输出文件夹。
  • 完全离线:无网络请求、无遥测、无外部依赖。

使用

便携版(推荐)

  1. 把 dist/Sunder 文件夹整体拷贝到任意位置,例如 D:\Apps\Sunder。
  2. 双击 Sunder.exe。
  3. 选择视频与输出文件夹,点击“开始分段”。

还原时切到“还原”,选择 sunder-manifest.json 或任意 .part001 片段,选择输出文件夹,点击“开始还原”。

完成的任务会出现在“历史记录”中,可直接打开对应的输出文件夹。

从源码运行

需要 Node.js 20+(开发时使用 Node 24 / Electron 45):

cd sunder
npm install
npm start

打包便携版:

npm run package

产物在 dist/Sunder/,可整体拷走,无需安装。

关于“无损分段”

Sunder 的片段是原始视频的字节区间,不是可独立播放的剪辑。这是为了满足“还原后与原片完全一致”。还原时会先逐段核对大小与 SHA-256,再校验整片哈希:

Sunder 还原界面

具体取舍:

  • 分段不会重新封装或编码,所以单个片段通常不能直接播放;请把整套片段放在一起,用 Sunder 还原后再播放。
  • 恢复后的文件与原文件逐字节相同,SHA-256 相同。
  • 片段、清单请勿改名或移动;清单按文件名和哈希定位片段。

每个分段目录形如 影片.mp4.sunder/:

影片.mp4.sunder/
├── sunder-manifest.json
├── 影片.mp4.part001
├── 影片.mp4.part002
└── 影片.mp4.part003

清单记录原始文件名、大小、整片 SHA-256、每段大小与 SHA-256。还原时会先核对清单,再逐段拼接校验,任何不一致都会中止并删除临时输出。

历史记录

每次成功完成分段或还原,Sunder 都会在本地保存一条记录,包括源文件名、任务类型、片段数、大小、时间与输出位置。历史记录只保存在本机,不包含文件内容;点击“打开文件夹”可直接定位输出目录。

Sunder 历史记录

验证

npm test

引擎测试 18/18 通过;另外做了四项端到端验收(详见 docs/TEST-REPORT.md):

  • 10 GB + 1 字节实测:10,000,000,001 字节的源文件切成 2 段(10,000,000,000 + 1 字节),还原后 10,000,000,001 字节,整片 SHA-256 一致,verified: true。
  • Electron IPC 实测:通过真实 preload/contextBridge 完成 25 MiB 文件的分段、清单核对与还原,还原文件 SHA-256 与源文件一致。
  • 历史记录实测:真实 Electron 环境下完成一次分段与还原后,历史记录写入两条记录,界面列表正确显示并可打开输出文件夹;无效记录 ID 返回 HISTORY_NOT_FOUND。
  • 便携版冒烟测试:dist/Sunder/Sunder.exe 正常启动,字体加载完成,窗口尺寸与 IPC 版本信息正确。

测试覆盖:分段大小与命名、清单结构、逐字节还原、哈希篡改检测、片段缺失、取消清理、重名避让与进度单调性。

项目结构

src/main/engine.js     流式分段 / 还原引擎、清单与校验
src/main/main.js       Electron 主进程、IPC、任务管理与窗口
src/main/history.js    本地历史记录存储(成功任务)
src/preload/preload.js contextBridge 安全桥接
src/renderer/          无构建步骤的 HTML/CSS/JS 界面
assets/fonts/          Newsreader + Instrument Sans(SIL OFL)
scripts/package.js     便携版打包
test/                  node:test 引擎测试
docs/                  工程契约 / 视觉规范 / 截图

运行环境

  • Windows 10 / 11 x64(便携版)。
  • 源码可在安装 Electron 的 macOS / Linux 上运行,但本项目只对 Windows 便携版做了验证。
  • 单段上限固定为 10,000,000,000 字节;当前版本不提供自定义分片大小。

许可

代码以 MIT 许可发布。字体 Newsreader 与 Instrument Sans 依 SIL Open Font License 1.1 使用,许可文本见 assets/fonts/。

About

Sunder — 把 10 GB 以上的视频无损切成每段不超过 10 GB 的片段,并可逐字节还原。Electron + 离线 + SHA-256 校验。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages