一款基于 Golang + Wails 开发的跨平台桌面应用,专为检测和优化 MP4 视频的流媒体播放性能(FastStart / moov atom 位置)而设计。
- 智能检测:自动分析 MP4 文件的
moov原子位置,直观显示无需优化的状态(绿色)或需要优化(红色)。 - 一键优化:将
moov原子移动到文件头部,实现秒开播放。- 安全机制:自动创建
.bak备份,优化成功并校验无误后自动删除备份,确保数据安全。
- 安全机制:自动创建
- 批量处理:支持拖拽文件、文件夹递归扫描,甚至“全部优化”按钮批量处理。
- 本地预览:内置视频播放器,支持直接预览本地视频(兼容中文及特殊字符路径)。
- 原生体验:
- 拖拽支持:完美支持 Windows 和 macOS 的原生文件/文件夹拖拽。
- 主题切换:支持浅色/深色(Light/Dark)模式切换,并自动保存偏好。
- 中文界面:全中文 UI 设计,包含详细的元数据展示(分辨率、编码、时长等)。
- 后端:Golang 1.22+
- 前端:Next.js 15, React 19, Tailwind CSS v4, shadcn/ui
- 框架:Wails v2
- 图标:Lucide React
# 进入项目目录
wails dev该命令将启动 Go 后端服务和一个 Vite 前端开发服务器。前端代码修改支持热更新(HMR)。
在 macOS 上编译原生的 .app 应用:
wails build- 产物位置:
build/bin/MP4 FastStart Inspector.app
在 Windows 系统上编译 .exe 应用:
wails build
# 或者隐藏控制台窗口(生产环境推荐)
wails build -ldflags "-H windowsgui"- 产物位置:
build/bin/MP4 FastStart Inspector.exe
如果您正在使用 macOS,可以通过安装 mingw-w64 来交叉编译生成 Windows 可执行文件。
使用 Homebrew 安装 mingw-w64:
brew install mingw-w64专门针对 Windows amd64 架构进行编译。注意 Wails 会自动识别 mingw 编译器。
wails build -platform windows/amd64- 产物位置:
build/bin/FastStartInspector.exe - 注意:生成的
.exe文件可以直接传输到 Windows 电脑上运行。
.
├── build/ # 编译产物及配置
├── frontend/ # 前端代码 (Next.js)
│ ├── src/app/ # 页面逻辑 (page.tsx)
│ └── ...
├── internal/ # 后端核心逻辑
│ ├── analyzer/ # MP4 原子分析
│ ├── optimizer/ # 优化与重写逻辑
│ └── bridge/ # Wails 桥接层
├── main.go # 应用入口及配置
└── wails.json # Wails 项目配置
该应用内置了自动升级功能,支持从您的静态网站或对象存储(OSS/S3)获取更新。
在发布前,请修改 frontend/src/app/page.tsx 中的 updateUrl 变量,将其指向您托管的 latest.json 地址:
const updateUrl = "https://your-domain.com/updates/latest.json";在您的服务器上创建一个名为 latest.json 的文件,内容格式如下:
{
"version": "1.0.1",
"download_url_windows": "https://your-domain.com/updates/v1.0.1/FastStartInspector_v1.0.1.exe",
"download_url_mac": "https://your-domain.com/updates/v1.0.1/FastStartInspector_v1.0.1_mac_bin",
"release_notes": "1. 修复了 Windows 拖拽问题。\n2. 优化了转换速度。"
}version: 新版本号(必须大于当前版本号才能触发升级)。download_url_windows: Windows.exe文件的下载直链。download_url_mac: macOS 二进制文件 的下载直链(注意:是.app包内的可执行文件,不是.app文件夹)。
对于 macOS 的自动升级,由于 minio/selfupdate 替换的是正在运行二进制文件,因此您上传的不能是 Application.app 文件夹,而应该是编译出的二进制文件。
如何获取 macOS 升级包:
- 执行
wails build。 - 右键
build/bin/MP4 FastStart Inspector.app-> "显示包内容"。 - 进入
Contents/MacOS目录。 - 找到名为
FastStartInspector的文件(无后缀)。 - 将此文件重命名为
FastStartInspector_v1.0.1_mac_bin并上传。
构建时,您需要通过 -ldflags 注入版本号,以便应用知道当前是哪个版本。
Windows:
wails build -platform windows/amd64 -ldflags "-X main.Version=1.0.1"macOS:
wails build -platform darwin/universal -ldflags "-X main.Version=1.0.1"- 修改代码:完成功能开发。
- 编译:使用带版本号的命令编译(如
1.0.1)。 - 上传文件:
- 将生成的 Windows
.exe上传。 - 将 macOS
.app/Contents/MacOS/FastStartInspector二进制文件上传。
- 将生成的 Windows
- 更新 JSON:修改服务器上的
latest.json,将version改为1.0.1并更新下载链接。 - 完成:用户重启应用或点击“检查更新”时,即可检测到新版本。
Q: 拖拽在 Windows 上没反应? A: 确保使用的是最新编译版本。我们已针对 WebView2 的拖拽机制进行了特殊优化,支持直接拖拽文件和文件夹。
Q: 优化速度如何? A: 针对 Mac 系统和大文件进行了 I/O 优化,采用流式读写,速度极快且占用内存低。
MIT
