A no-nonsense desktop media player for Windows with a classic, always-visible control layout and a built-in FFmpeg engine that transcodes whatever Chromium can't play natively — HEVC, E-AC3, DTS, oddball MKVs, and more.
Independent open-source project. Not affiliated with Microsoft or Windows Media Player — just inspired by that simple, no-gestures-required layout.
- Traditional menu-driven interface with a fixed control bar — no hidden gestures
- Plays virtually anything: files Chromium can't decode natively are transcoded automatically
- Drag-and-drop playlist with shuffle, repeat, and reordering
- External and embedded subtitle support
- Media info overlay (codec, resolution, bitrate, audio/subtitle tracks)
- 18 built-in visual themes
- Remembers playback position, volume, and playlist between sessions
- Optional file association for common video/audio formats during install
- Built-in media downloader (File → Download Media...): analyze a URL, download video or audio with live progress, get a verified MP4 on completion, and browse everything in a local file library
| Type | Extensions |
|---|---|
| Video | .mp4 .mkv .avi .webm .mov .flv .m4v .3gp .wmv .ts |
| Audio | .mp3 .wav .ogg .aac .m4a .flac .wma .opus |
| Subtitles | .srt .vtt .ass .ssa .sub |
Anything outside native browser support (HEVC, E-AC3, DTS, TrueHD, older codecs, and more) is transcoded automatically by the bundled FFmpeg engine before playback starts.
| Key | Action | Key | Action |
|---|---|---|---|
| Space | Play / Pause | M | Mute / unmute |
| F | Toggle fullscreen | S | Toggle shuffle |
| Escape | Exit fullscreen | L | Toggle repeat |
| ← / → | Seek ±10s | I | Toggle media info |
| Ctrl+← / Ctrl+→ | Previous / Next track | T | Toggle playlist |
| ↑ / ↓ | Volume up / down | 0-9 | Seek to 0%-90% |
Grab the latest installer from Releases. Windows only.
git clone https://github.com/skonester/ffinflow.git
cd ffinflow
npm install
npm run buildThe installer is written to dist/.
GNU General Public License v3.0 (or later). See LICENSE.
Portions of the codebase remain available under their original MIT License —
see LICENSE-MIT — including the original player GUI, adapted
from Fury (© Naveen Devang) prior to
ffinflow's transition to TypeScript, and the downloader engine
(src/downloader/, src/modules/downloaderUI.ts), adapted from
dlME (© Kirsten Trimaley). The built-in
downloader also bundles yt-dlp (Unlicense).
Clean titles and subtitle matching for release-style filenames use
Parsium (© NepiRaw, MIT).


