A player that pushes images, videos, and screen captures through retro PC / CRT-style filters and lo-fi audio effects while it plays. This document is a user-facing manual (developer implementation notes live in docs/issues/).
| Distribution | Notes |
|---|---|
| Desktop app (Tauri) | macOS / Windows / Linux. Full feature set, including mDrop and ffmpeg conversion (see below) |
| Android app (Tauri) | mDrop, ffmpeg conversion, and virtual-device features are disabled. Playback, filters, and audio effects are still available |
| Chrome extension | Capture the current tab and apply the filter, or overlay the retro filter directly on videos/images on any webpage |
| Web app (browser) | Play via drag-and-drop, file picker, or screen capture. mDrop is only reachable over the network from a running desktop app |
Press the ☰ (hamburger) button in the top-left corner to open the menu.
Long-press the hamburger button to hide the entire toolbar (handy when streaming or just watching without the UI in the way). While hidden, a small translucent button remains in the top-left corner to bring it back.
You can also drag and drop media files anywhere on the screen to load them.
| Type | Plays natively | Needs ffmpeg conversion (HLS) |
|---|---|---|
| Video | mp4, m4v, webm, ogv, mov | avi, flv, mkv, wmv, ts, m2ts, mts, divx, xvid, rm, rmvb, 3gp, f4v, asf, vob, mpeg, mpg, m2v, mxf |
| Audio | mp3, wav, ogg/oga, m4a, aac, flac, opus | — |
| Image | png, jpg/jpeg, webp, gif, svg, avif, heic/heif | — |
| Other | PDF / EPUB / ZIP(cbz) shared via mDrop can be previewed in-browser (viewing only, not playback) | — |
Formats that need ffmpeg conversion only play when ffmpeg is enabled in the desktop app (see "mDrop" below for details).
Loop One → Auto Next → Loop All → No Loop on each pressLoading multiple media files at once turns them into a playlist for continuous playback.
To create a playlist:
If these conditions are met, the files load as a playlist and the skip back/forward buttons in the bottom control panel become active. (If only one file qualifies, or the conditions aren't met, only the first file is loaded.)
Playback behavior depends on the loop mode:
| Loop mode | When a track ends | Manual skip (long-press) |
|---|---|---|
| Auto Next | Advances to the next track. Stops after the last track (does not wrap to the start) | Can move to the next/previous track. Stops at the first/last track |
| Loop All | Advances to the next track, and wraps back to the first track after the last one, playing indefinitely | Can move to the next/previous track. Stops at the first/last track |
| Loop One / No Loop | Not a playlist — only the first of the selected files is played | — |
Note: There is no dedicated UI showing your position in the playlist (like "track 3 of 10"). You can only track progress via the skip buttons and auto-advance behavior. Note: Switching the loop mode afterward doesn't change the playlist's contents — it only changes what happens the next time a track ends.
| Key | Action |
|---|---|
| Space or K | Play / Pause |
| ← (Left arrow) | Seek back 5 seconds |
| → (Right arrow) | Seek forward 5 seconds |
| J | Seek back 10 seconds |
| L | Seek forward 10 seconds |
Disabled while a text input has focus.
| Button | Action |
|---|---|
| Power | Toggle the retro filter on/off |
| Hi-Res (aperture icon) | Toggle render resolution between 1x and 2x |
| Brightness (−/%/+) | Adjust from 40% to 200% in 5% steps. Only shown here when the window is at least 480px wide — below that, it's folded into the slider in the "More" menu instead |
| Fit width | Stretch the preview to fill the available width, or undo that |
| Pin | Keep the preview fixed on screen while scrolling (unavailable while Maximized) |
| Maximize | Show the preview full-screen. Press again or hit Esc to exit |
| Record (●/■ icon) | Record the filtered output. Press again to stop and export (moves into the "More" menu below 360px width) |
Open it via the "Video" tab at the bottom. Long-pressing this tab also toggles the retro filter on/off, same as the Power button.
Everything here is a slider or checkbox that reflects into the preview in real time. Start from a preset, then fine-tune from there.
Open it via the "Audio" tab at the bottom. Long-pressing this tab toggles all audio effects on/off.
The "Reset" button at the bottom:
Native Playback mode plays video through the OS's native player instead of through the retro filter pipeline. It's a fallback for environments where filtered playback is unstable (for example, HLS streaming playback on Windows).
Via the icons on the right side of the bottom control panel:
retro-YYYYMMDD-<timestamp>.retro.json file.retro.json file via the file picker or drag-and-drop, and applies it immediatelyOnce you've dialed in a look and sound you like, save it, and reload it later when you open a different piece of media.
Desktop app only (not available on Android, the Chrome extension, or the web app). Lets another device on the same network (like a phone) send files over via its browser.
An "mDrop" pill button (Wifi icon) appears in the top-right corner. Click and long-press trigger two different actions.
| Action | Effect |
|---|---|
| Click (short press) | Toggles the transfer server on/off (it auto-starts when the app launches). By default this is just for the app's own internal communication and isn't visible to other devices |
| Long-press | Toggles "share mode" on/off. When on, an IP:port (e.g. 192.168.1.5:7878) appears on screen, and other devices can open that URL directly in their browser |
An "ffmpeg" pill button (waves icon) may also appear next to it. Turning it on lets the app serve video formats the browser can't play directly (mkv, avi, etc.) as an HLS stream (requires ffmpeg to be installed).
A lightweight version you load via chrome://extensions or install from the Chrome Web Store. Clicking the extension icon opens a popup.
.retro.json files)