Play it. Cut it. Compress it.
HitPlayer is a dark, clean Windows media player and FFmpeg-powered media utility. It is built for normal desktop use first: open a video, audio clip, or photo, preview it directly or through a local FFmpeg-prepared preview, trim clips, shrink files, convert videos, and get back to the output without fighting command lines.
Grab the latest installer from the Releases page.
The installer is current-user only, does not need admin rights, bundles FFmpeg/FFprobe locally, and launches as a normal Windows app without a command prompt in the background.
- Opens common video files: MP4, MKV, MOV, AVI, WebM, M4V, FLV, WMV, TS, and M2TS.
- Opens common audio files: MP3, WAV, M4A, AAC, FLAC, OGG, OPUS, WMA, AIFF, and MKA.
- Opens common photo files: JPG, JPEG, PNG, WebP, GIF, BMP, TIFF, and TIF.
- Previews MP4, MOV, WebM, and M4V through the built-in Windows WebView video engine.
- Previews common photos directly in the main preview area.
- Prepares a local MP4 preview for MKV and other files WebView cannot play directly, including files opened from mapped or UNC network drives.
- Prepares a local M4A preview for audio formats the built-in player cannot open directly.
- Remembers volume and mute state across clips, app launches, and other open HitPlayer windows.
- Still processes the original file with FFmpeg even when a local preview copy is needed.
- Shows real metadata from FFprobe: duration, resolution, codecs, container, bitrate, and file size.
- Sets start/end trim points from playback or manual timestamps.
- Fast trims with stream copy, keeping quality and avoiding re-encoding.
- Precise trims with H.264/AAC when frame-accurate cuts matter.
- Fast trims audio with stream copy and precise trims audio to compatible M4A/AAC.
- Compresses with simple presets that target practical file sizes instead of bloating exports.
- Compresses photos to JPEG or WebP with simple size-focused presets.
- Converts odd files into compatible MP4 for easier sharing and playback.
- Lets you choose a custom output folder from Settings.
- Shows FFmpeg progress, speed, percent, logs, cancel, and output actions.
- Registers itself as a Windows media app so you can pick it as the default player.
HitPlayer targets Windows 10/11 x64.
It does not require:
- admin rights
- internet access after install
- an account
- telemetry
- FFmpeg installed globally
- PATH changes
Install the normal Tauri Windows prerequisites first:
- Node.js
- Rust
- Microsoft C++ Build Tools
- WebView2 Runtime
Then run:
npm install
npm run setup:ffmpeg
npm run tauri:devnpm install
npm run setup:ffmpeg
npm run tauri:buildThe installer is written to:
src-tauri\target\release\bundle\nsis\HitPlayer_0.1.15_x64-setup.exe
GitHub keeps normal push checks quick. The main build workflow runs the frontend build and Rust tests only. Full Windows installer builds run from the separate Installer workflow when started manually or when a v* release tag is pushed.
HitPlayer always uses bundled/local binaries. It does not call ffmpeg or ffprobe from PATH.
Development binaries belong here:
src-tauri\binaries\ffmpeg.exe
src-tauri\binaries\ffprobe.exe
src-tauri\binaries\ffmpeg-x86_64-pc-windows-msvc.exe
src-tauri\binaries\ffprobe-x86_64-pc-windows-msvc.exe
Run this to download and place them:
npm run setup:ffmpegIf a binary is missing, HitPlayer shows a clean app error instead of failing silently:
FFmpeg was not found. Place ffmpeg.exe in the required app binary folder.
FFprobe was not found. Place ffprobe.exe in the required app binary folder.
By default, HitPlayer creates a HitPlayerExports folder beside the source file.
Example:
C:\Videos\clip.mp4
C:\Videos\HitPlayerExports\clip_trim_fast.mp4
C:\Videos\HitPlayerExports\clip_trim_precise.mp4
C:\Videos\HitPlayerExports\clip_compressed_balanced.mp4
C:\Videos\HitPlayerExports\clip_compressed_small.mp4
C:\Videos\HitPlayerExports\clip_compressed_high_quality.mp4
C:\Videos\HitPlayerExports\clip_compressed_nvidia_fast.mp4
C:\Videos\HitPlayerExports\clip_converted.mp4
C:\Videos\HitPlayerExports\screenshot_photo_compressed_balanced.jpg
C:\Videos\HitPlayerExports\screenshot_photo_compressed_small.webp
Existing outputs are never overwritten. HitPlayer adds _001, _002, and so on.
Fast Trim keeps the source container when that is safer. For example, fast trimming clip.mkv writes clip_trim_fast.mkv. Re-encoded outputs use MP4.
For audio-only files, Fast Trim keeps the source audio extension when possible. Precise Trim writes a compatible M4A file, for example song_trim_precise.m4a.
You can also set a custom output folder in Settings > Output folder. When that is set, every trim, compression, and conversion export uses that folder while keeping the same clear filenames.
The Balanced preset is tuned for the everyday case that started this app: a two-minute clip around 80 MB should usually land under 50 MB while still looking decent.
Preset behavior:
- Balanced: practical size target for normal sharing.
- Small File: stronger compression when size matters most.
- High Quality: cleaner output with a capped bitrate.
- NVIDIA Fast: hardware encode path when NVENC is available.
HitPlayer detects NVENC before enabling the NVIDIA preset.
Photo compression uses FFmpeg and the same progress/cancel/output-folder system as video jobs.
Photo presets:
- Balanced: caps the longest edge at 2560 px and keeps good detail.
- Small File: caps the longest edge at 1920 px and uses stronger compression.
- High Quality: caps the longest edge at 3840 px and favors detail over maximum shrink.
Formats:
- JPEG: default, broadly compatible, good for screenshots and photos.
- WebP: usually smaller, enabled only when the bundled FFmpeg includes the WebP encoder.
HitPlayer is tuned to stay out of the way while a game or stream is running:
- FFmpeg jobs run at below-normal Windows process priority and never open a console window.
- FFprobe and encoder checks also run below normal priority so opening media does not steal foreground CPU time.
- CPU H.264 jobs use capped x264 worker threads so Windows has headroom for games, OBS, Discord, and browser tabs.
- FFmpeg progress updates are limited to about once per second to avoid UI churn.
- Native playback uses WebView2's hardware-accelerated media pipeline, buffers ahead, and keeps playback rendering isolated from trim-panel updates.
- MKV and other non-browser previews try a cheap stream-copy MP4 preview first when the video/audio codecs are already compatible.
- Full preview transcodes are capped to 1080p because the preview only needs to be playable, not archival quality.
NVIDIA Fast uses NVENC. It is quick, but it can still compete with OBS if OBS is also using NVENC, so Balanced or Small is the safer choice while actively streaming.
The installer registers HitPlayer as a video, audio, and photo file handler. Windows still requires the user to confirm default apps.
Inside HitPlayer, open Settings > Windows defaults > Open Default Apps. It registers HitPlayer for the current Windows user and opens Windows Default Apps so you can choose it for the media extensions you want.
Future installers keep the same app identity:
productName: HitPlayer
identifier: com.rique.hitplayer
Bump the version with:
npm run version:bump -- 0.1.15Then build:
npm run tauri:buildRunning a newer setup EXE updates the existing current-user install. The installer asks to close HitPlayer if it is running, clears stale app binaries/resources from the install folder, refreshes Windows shell icons, and then installs the new files. It does not touch exported videos or user media.
For GitHub release builds, run the Installer workflow or push a version tag. This avoids rebuilding the full installer after every regular code change.
- V1 preview uses the Windows WebView/browser video engine first, so some containers need a local MP4 preview cache before they play.
- Audio preview uses the same built-in browser media engine first, then falls back to a local M4A preview for formats it cannot open directly.
- Photo preview uses the WebView image engine directly. Some uncommon image formats may still compress with FFmpeg even if they do not preview.
- FFmpeg processing supports many more formats than direct browser preview.
- Fast Trim is not always frame-perfect because it stream-copies.
- Fast Trim only shrinks by cutting duration because it does not re-encode.
- Precise Trim is slower because it re-encodes.
- Compatible MP4 conversion is video-only in this version.
- Photo compression may not shrink an already tiny or heavily optimized image.
- NVIDIA Fast only works when NVENC is available.
- libmpv or libVLC playback is planned later for near-VLC-level compatibility.
- TODO: add libmpv or libVLC playback.
- TODO: add batch compression.
- TODO: add AV1 encoding.
- TODO: add AMD and Intel GPU presets.
- TODO: add frame-step controls.
- TODO: add timeline thumbnails.
- TODO: add portable ZIP packaging.
- TODO: add Windows installer packaging polish.
See LICENSE.