FastPlay is a fast, keyboard-first video player for Windows, built for opening local files quickly, scrubbing smoothly, and staying out of your way.
No media library. No plugin maze. No feature sprawl. Just fast local playback, responsive controls, and a focused Windows-native experience.
Download FastPlay v0.4.6 for Windows x64 (MSI) • Portable ZIP • All releases • Report an issue
Current status: FastPlay is stable for everyday local playback on Windows x64. Development is now focused on maintenance, bug fixes, and useful feature requests.
fastcast_20260816_234519.720p30.mp4
- Install FastPlay using the MSI above, or download the portable ZIP.
- Open a video directly, drag a file onto FastPlay, or set FastPlay as your default Windows media app.
- Drop multiple files or a folder onto the window to create a temporary play queue.
- Use the keyboard for fast seeking, playback control, zoom, rotation, screenshots, and more.
FastPlay is designed for local playback. No account, migration, or internet connection is required.
Most of the time, opening a video player is simple: you have a local file and you want to watch it.
FastPlay is built around making that moment as frictionless as possible:
- open the file quickly
- show the first frame quickly
- scrub and seek without fighting the player
- remember where you stopped
- fit the video cleanly to the screen
- stay responsive
- get out of the way
Mainstream players such as VLC and MPC-HC are excellent and support far more features.
FastPlay deliberately does less.
It is a focused Windows player for people who want a snappy, no-friction window for the local file in front of them.
- quick open and first-frame path
- responsive keyboard seeking
- accelerated seek while holding the arrow keys
- timeline scrubbing
- automatic per-file resume positions
- replay at end of playback
- in/out points with range playback and looping
- lightweight multi-file and folder play queues
- automatic advance to the next queued file
- playback metrics including open-to-frame latency, seek latency, and dropped frames
- FFmpeg-based demux and decode
- D3D11 hardware video decode on the preferred path
- software decoding fallback with D3D11 upload and presentation
- high-frame-rate playback, including 120 fps at full cadence on high-refresh displays
- automatic rotation from stream display-matrix metadata
- manual 90-degree rotation
- portrait-aware window sizing for phone videos
- cursor-centered zoom
- drag-to-pan while zoomed
- fit-to-screen sizing without black padding
- half-native-resolution window sizing
- native HDR output on HDR displays
- HDR10 PQ support
- HLG support
- iPhone HDR recording support
- 10-bit PQ swapchain output
- HDR10 static metadata passed to the display
- GPU tone mapping to SDR when the active display is not using HDR
- WASAPI shared-mode audio output
- audio-master playback timing when audio exists
- audio-only file playback
.mp3,.flac,.wav,.m4a, and.opusplayback- idle background while playing audio-only files
- normal framed windowed mode
- remembered frameless windowed mode
- move and resize frameless windows normally
- maximize frameless windows
- borderless fullscreen
- per-monitor DPI awareness
- minimum window size enforcement
- device-loss and resize recovery
Press Ctrl+Shift+S to switch between framed and frameless windowed modes. FastPlay remembers your preference for future instances.
FastPlay currently supports external .srt sidecar subtitles.
Features include:
- runtime subtitle toggle
- comma or period millisecond separators
- UTF-8 with BOM
- Windows-1252 fallback
- stripping of common formatting tags such as
<b>,<i>,<u>, and<font>
FastPlay is not trying to beat mature media players on feature breadth.
| FastPlay | VLC | MPC-HC | |
|---|---|---|---|
| Primary focus | Fast local Windows playback | Broad media playback | Lightweight Windows playback |
| Platforms | Windows x64 | Cross-platform | Windows |
| Streaming / network | No | Yes | Limited |
| Media library | No | Yes | Basic |
| Per-file resume | Built in | Configuration/plugin dependent | Limited |
| Render path | D3D11-first | Multiple backends | DirectShow / optional renderers |
| Philosophy | Focused and minimal | Broad and configurable | Lightweight and configurable |
Use VLC or MPC-HC when you need extensive format coverage, streaming, playlists, deep configuration, or broader platform support.
Use FastPlay when you want to double-click a local file and start watching it with as little friction as possible.
| Key | Action |
|---|---|
Space |
Pause / resume / replay at end |
Left |
Seek backward 5s, hold for 15s steps |
Right |
Seek forward 5s, hold for 15s steps |
Ctrl+F |
Move one frame forward |
Ctrl+B |
Move one frame backward |
Ctrl+O |
Open media file |
Ctrl+Shift+O |
Recent files overlay |
PageUp / PageDown |
Previous / next queued file |
Ctrl+S |
Save screenshot |
Ctrl+Shift+S |
Toggle framed / frameless windowed mode |
S |
Toggle subtitles |
I |
Set in-point |
Shift+I |
Clear in-point |
O |
Set out-point |
Shift+O |
Clear out-point |
R |
Loop active range or toggle auto-replay |
MouseWheel |
Adjust volume |
Esc |
Exit borderless fullscreen |
Ctrl+H |
Toggle borderless fullscreen |
Ctrl+W |
Fill screen height without black padding |
Ctrl+Q |
Half-native-resolution window size |
Ctrl+R |
Rotate clockwise 90° |
Ctrl+E |
Rotate counter-clockwise 90° |
Ctrl+MouseWheel |
Zoom at cursor |
Ctrl+Drag |
Pan while zoomed |
Drag |
Move window in frameless mode |
Ctrl+0 |
Reset zoom, pan, and rotation |
H (hold) |
Show controls overlay |
[ / ] |
Decrease / increase playback speed |
\ |
Reset playback speed to 1× |
Backspace |
Cancel scrub and return to original position |
` |
Toggle HW / SW decode mode in title bar |
The recent-files overlay supports:
↑/↓to selectEnterto openDelto remove an entryEscto close
Timeline scrubbing is available by hovering near the bottom of the window and clicking or dragging.
Press I to mark where playback begins and O to mark where it ends.
| In | Out | Playback range | Space at end returns to |
|---|---|---|---|
| — | — | start → end | start |
| ✓ | — | in-point → end | in-point |
| — | ✓ | start → out-point | start |
| ✓ | ✓ | in-point → out-point | in-point |
Press R while a range is active to loop it continuously.
Use Shift+I and Shift+O to clear individual points.
In/out points reset when a new file is opened.
FastPlay prioritizes:
- low open-to-first-frame latency
- responsive seeking and scrubbing
- GPU-resident presentation on the normal hardware path
- predictable playback behavior
- narrow, maintainable architecture
- Windows-specific performance
- useful controls without unnecessary product complexity
FastPlay does not currently aim to provide:
- media library management
- metadata scraping or collection organization
- network or streaming playback
- plugin support
- a browser or web interface
- full persistent playlist management
- advanced subtitle styling
- embedded subtitle track selection
- metadata-driven dynamic HDR tone mapping
- exposure or curve controls
- additional hardware rendering backends beyond the current D3D11-first design
FastPlay does support lightweight queue and folder playback, but those queues are temporary and intentionally much simpler than a full playlist or media-library system.
- Windows x64 only. There are currently no macOS, Linux, Windows ARM, or other platform builds.
- Format support is broad but not exhaustive. Playback depends on the FFmpeg build used by FastPlay. Uncommon or exotic formats may not work.
- External
.srtsubtitles only. Embedded subtitle tracks and other subtitle formats are not currently loaded. - Queues are session-only. There are no persistent playlist files, shuffle mode, or in-window queue browser.
- Folder scanning is non-recursive.
- No streaming or network sources. FastPlay is intentionally focused on local files.
- WASAPI shared-mode audio only. There is currently no exclusive mode or runtime audio-track switching.
- HDR mode is selected when a file is opened. If an HDR video is opened on an HDR display and the playing window is then moved to a non-HDR display, the image may appear washed out until the file is reopened.
For normal use:
- Windows 10 or later
- Windows x64
- D3D11 / DXGI / WASAPI-capable system
Rust and FFmpeg development files are not required when using the normal MSI or portable release.
The portable Windows ZIP can be downloaded from the release links at the top of this page.
Portable FastPlay does not require installation, but it still stores:
- settings
- recent-file history
- resume positions
- logs
under:
%APPDATA%\FastPlay
- Rust toolchain
- FFmpeg development headers and libraries
- Windows development environment with D3D11, DXGI, and WASAPI support
build.rs supports several FFmpeg discovery methods.
Set:
FFMPEG_DIR
FFMPEG_INCLUDE_DIR
FFMPEG_LIB_DIR
FFMPEG_BIN_DIR
FFMPEG_BIN_DIR is optional.
FastPlay also checks:
%VCPKG_ROOT%/installed/x64-windows
%USERPROFILE%/vcpkg/installed/x64-windows
C:\tools\vcpkg\installed\x64-windows
The build expects the standard FFmpeg development layout containing include/ and lib/.
Runtime DLL staging also works when a bin/ directory is available.
cargo build --release.\scripts\package-portable.ps1 -SkipBuildThe resulting archive is written to:
target\dist\
Normal playback:
cargo run --release -- <path-to-media>Force software decoding:
cargo run --release -- --force-sw <path-to-media>You can also drag and drop media directly onto the FastPlay window.
FastPlay supports external sidecar .srt subtitles.
Place the subtitle file beside the video using the same basename:
movie.mp4
movie.srt
FastPlay automatically loads the matching subtitle file when the video is opened.
FastPlay is intentionally Windows-focused and uses a D3D11-first playback architecture.
FFmpeg
↓
AV_PIX_FMT_D3D11
↓
D3D11 video processor
↓
DXGI present
FFmpeg demux
↓
software decode
↓
D3D11 upload
↓
D3D11 video processor
↓
DXGI present
FFmpeg decode
↓
WASAPI shared-mode sink
SRT sidecar
↓
CPU parsing and layout
↓
GPU alpha composition during present
For the full implementation charter, see ARCHITECTURE.md.
src/
app/ # session coordinator, commands, events, state
audio/ # audio sink abstractions
ffi/ # FFmpeg / D3D11 / DXGI / WASAPI interop
media/ # source, video, audio, seek, subtitle
platform/ # Win32 window/input
playback/ # clock, metrics, queue policy, generations
render/ # presenter, swapchain, surface registry, timeline overlay
FastPlay is now stable for my own everyday use, so active development will be more selective while I work on other projects.
If there is a bug, format issue, workflow improvement, or feature that would make FastPlay better for you, please open an issue.
Useful requests are welcome.
MIT