v5: standalone Tauri rewrite — Rust backend + TypeScript UI
Complete rewrite from the Python/Tkinter app to a native Tauri 2 desktop app. Drops the song-detection feature, so it needs no Python and no ML model — just ffmpeg. Replaces video_concat.py entirely. - Rust backend (src-tauri): stream-copy concat via ffmpeg with honest real-time progress (-progress pipe:1, out_time vs total duration), held at 99% through the +faststart finalising pass so the bar never jumps - ffprobe duration scanning parallelised across threads; cancel kills the whole ffmpeg process tree; CREATE_NO_WINDOW hides console flashes - BiliBili Live filename helper ported to Rust (bililive_rename) - TypeScript UI, no framework: tiny h() DOM helper, drag-and-drop, reorderable/checkable file list with live totals, light/dark theme, reusable toast + progress components - Optional delete-originals-after-merge with a clear warning - New app icon (three clips merging into one); build.bat assembles a portable folder with ffmpeg/ffprobe bundled next to the exe - Ignore tauri-generated gen/schemas (regenerated on every build) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
42
README.md
Normal file
42
README.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Video Concat
|
||||
|
||||
A small, focused desktop app that **merges split stream recordings into one
|
||||
file** using ffmpeg stream-copy (`-c copy`, no re-encoding — fast and lossless).
|
||||
Built with Tauri 2 (Rust backend + TypeScript UI).
|
||||
|
||||
This is a standalone spin-off of Stream Studio with the song-detection feature
|
||||
removed, so it needs **no Python and no ML model** — just ffmpeg.
|
||||
|
||||
## Features
|
||||
|
||||
- Drag-and-drop / browse to add videos, reorder, select which to merge.
|
||||
- Stream-copy concat with honest real-time progress (and a `+faststart`
|
||||
finalising pass so the output seeks instantly).
|
||||
- BiliBili-Live filename helper (`[date][uploader][title]` → readable name).
|
||||
- Optionally delete the originals after a successful merge.
|
||||
|
||||
## Build a standalone (copy-paste) version
|
||||
|
||||
Double-click **`build.bat`**. It compiles the app and assembles a portable
|
||||
folder with ffmpeg bundled:
|
||||
|
||||
```
|
||||
dist-portable\VideoConcat\
|
||||
Video Concat.exe <- double-click this
|
||||
ffmpeg.exe <- bundled
|
||||
ffprobe.exe <- bundled
|
||||
```
|
||||
|
||||
Copy that whole `VideoConcat` folder to any Windows PC and run it — nothing else
|
||||
to install.
|
||||
|
||||
### Build requirements (on the build machine only)
|
||||
|
||||
- [Node.js](https://nodejs.org/)
|
||||
- [Rust](https://rustup.rs/) (`winget install Rustlang.Rustup`)
|
||||
- Visual Studio 2022 with the **Desktop development with C++** workload
|
||||
- ffmpeg (in `C:\ffmpeg\bin` or on `PATH`)
|
||||
|
||||
## Develop
|
||||
|
||||
Double-click **`dev.bat`** (hot-reload UI + Rust). Needs ffmpeg on `PATH`.
|
||||
Reference in New Issue
Block a user