A professional Linux video player built with Flutter, featuring a built-in file browser, glassmorphism UI, and powerful playback controls.
- Browse your filesystem directly within the app
- Quick navigation sidebar: Home, Videos, Downloads, Documents, Music, Desktop, System
- Grid view with folder/video icons and file sizes
- Play All button to queue all videos in a directory
- Back, Home, and Up navigation buttons with path display
- High-performance playback powered by libmpv via
media_kit - Play/Pause, Stop, Seek forward/backward (±10s)
- Playback speed control: 0.25x – 4.0x
- 64MB buffer for smooth streaming
- Volume slider with expand-on-hover
- Mute/unmute toggle
- Volume adjustment via keyboard (↑↓)
- Multi-file playlist with side panel
- Next/Previous/Jump to track
- Remove individual items
- Loop modes: None → Single → All
- Audio track switching
- Subtitle track switching
- External subtitle support (.srt, .ass, .ssa, .sub, .vtt) via drag & drop
- Glassmorphism design with transparent window
- Auto-hiding controls during playback
- Fullscreen mode (F key or double-click)
- Drag & drop files to play
- Video info overlay (title, duration, speed, tracks)
- Screenshots saved to
~/Pictures/
| Key | Action |
|---|---|
Space |
Play / Pause |
← |
Seek backward 10s |
→ |
Seek forward 10s |
↑ |
Volume up |
↓ |
Volume down |
F |
Toggle fullscreen |
M |
Mute / Unmute |
N |
Next track |
P |
Previous track |
L |
Cycle loop mode |
S |
Screenshot |
I |
Toggle video info |
B |
Toggle file browser |
Esc |
Exit fullscreen |
Install the following system dependencies before building:
sudo apt install libmpv-dev mpv# Get Flutter dependencies
flutter pub get
# Run in debug mode
flutter run -d linux
# Build release
flutter build linuxThe release binary will be at build/linux/x64/release/bundle/vvplayer.
Built with Clean Architecture and BLoC state management:
lib/
├── domain/ # Entities (VideoItem, Playlist, FileItem), Repository interfaces
├── data/ # Repository implementation (filesystem browsing)
├── infrastructure/ # MediaPlayerService (media_kit wrapper)
├── application/ # BLoC: VideoPlayerBloc, FileBrowserBloc
├── presentation/ # Screens, Widgets (controls, seek bar, playlist, file browser)
└── core/ # Theme, Colors, Layout (VenomScaffold)
| Package | Purpose |
|---|---|
media_kit |
Video playback engine |
media_kit_video |
Video rendering widget |
media_kit_libs_video |
Native libmpv bindings |
flutter_bloc |
State management |
equatable |
Value equality |
desktop_drop |
Drag & drop support |
window_manager |
Window control & fullscreen |
venom_config |
App configuration |
This project is part of the VAXP organization.