How n213s/vibe-ffmpeg-ui works
Vibe FFmpeg is a native desktop GUI for configuring and batch-running FFmpeg conversions. Users add files, inspect probed media, choose a conversion mode and output options, run jobs, and see progress and verification results. The app coordinates the UI and worker events; the conversion engine builds commands, stages outputs, validates them, and commits only successful results. The README also documents official update checks and 14-language localization. Some subsystems are represented from README or index references because their implementation excerpts were not sampled.
Main entry points: app.rs App coordinator · runner.rs Batch conversion runner · settings_panel.rs Settings panel · discovery.rs FFmpeg discovery
Components 20
Desktop workflow
- App coordinator
src/app.rs - Queue panel
src/ui/queue_panel.rs - Settings panel
src/ui/settings_panel.rs - Top bar
src/ui/top_bar.rs - Log panel
src/ui/log_panel.rs - Language window
src/ui/language_window.rs - UI theme
src/ui/theme.rs
Conversion engine
- FFmpeg discovery
src/ffmpeg/discovery.rs - Media probing
src/ffmpeg/probe.rs - Command generation
src/ffmpeg/command_builder.rs - Batch conversion runner
src/ffmpeg/runner.rs - Output verification
src/ffmpeg/validator.rs
Configuration and safety
- Media and job state
src/models/media.rs - Conversion settings
src/models/config.rs - Output path safety
src/security/path_guard.rs
Localization and updates
- Translation tables
src/i18n/mod.rs - Official update check
src/net/ffmpeg_update.rs
Other components
- User
- FFmpeg and ffprobe
- Official release endpoints
Connections 29
- User → App coordinator: uses
README.md - App coordinator → Queue panel: renders
src/app.rs - App coordinator → Settings panel: renders
src/app.rs - App coordinator → Top bar: renders
src/app.rs - App coordinator → Log panel: renders
src/app.rs - App coordinator → Language window: opens
src/app.rs - App coordinator → FFmpeg discovery: discovers tools
src/app.rs - App coordinator → Media probing: probes files
src/app.rs - App coordinator → Batch conversion runner: starts batch
src/app.rs - App coordinator → Official update check: checks updates
src/app.rs - App coordinator → Media and job state: dispatches job events
src/app.rs - Settings panel → Command generation: previews command
src/ui/settings_panel.rs - Batch conversion runner → Command generation: builds command
src/ffmpeg/runner.rs - Batch conversion runner → Output path safety: stages output
src/ffmpeg/runner.rs - Batch conversion runner → FFmpeg discovery: configures process
src/ffmpeg/runner.rs - Batch conversion runner → Output verification: validates output
src/ffmpeg/runner.rs - Output verification → Media probing: probes output
src/ffmpeg/validator.rs - Output verification → FFmpeg discovery: configures decode
src/ffmpeg/validator.rs - FFmpeg discovery → FFmpeg and ffprobe: queries binaries
src/ffmpeg/discovery.rs - Media probing → FFmpeg and ffprobe: runs ffprobe
README.md - Batch conversion runner → FFmpeg and ffprobe: runs conversion
README.md - Official update check → Official release endpoints: queries versions
src/net/ffmpeg_update.rs - App coordinator → Translation tables: translates UI
src/app.rs - Queue panel → Translation tables: localizes labels
src/ui/queue_panel.rs - Settings panel → Translation tables: localizes controls
src/ui/settings_panel.rs - Top bar → Official update check: requests check
src/ui/top_bar.rs - Queue panel → UI theme: uses styling
src/ui/queue_panel.rs - Settings panel → UI theme: uses styling
src/ui/settings_panel.rs - Language window → UI theme: uses styling
src/ui/language_window.rs