Development
Project Shape
text
vidbgm/
Cargo.toml
src/
lib.rs
main.rs
desktop/
package.json
src/
src-tauri/
tools/
eval_vision_prompts.py
docs/The root Rust crate owns the CLI and shared orchestration. The desktop app calls shared Rust functions through Tauri commands.
Rust Checks
bash
cargo testbash
cargo buildDesktop Checks
bash
cd desktop
pnpm buildbash
cd desktop
pnpm tauri devDebug Tauri builds create local FFmpeg/FFprobe wrappers that forward to ffmpeg and ffprobe on PATH, so development and tests do not require committing media binaries. Release packaging requires real sidecar binaries:
bash
cd desktop
VIDBGM_FFMPEG=/path/to/ffmpeg \
VIDBGM_FFPROBE=/path/to/ffprobe \
pnpm prepare:ffmpeg-sidecarsDocs Checks
Install docs dependencies from the repo root:
bash
pnpm installRun the docs site:
bash
pnpm docs:devBuild the static docs:
bash
pnpm docs:buildGenerated VitePress output stays out of git:
docs/.vitepress/dist/docs/.vitepress/cache/
Vision Prompt Eval
Use the local QAT model to compare frame-analysis prompt variants:
bash
python3 tools/eval_vision_prompts.py \
--video sample-video.mov \
--model google/gemma-4-12b-qat \
--max-frames 4 \
--duration 240 \
--out-dir output/vision-prompt-eval-v3The eval writes results.csv, raw_results.json, and summary.json.