惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
V
V2EX
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
小众软件
小众软件
Vercel News
Vercel News
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
J
Java Code Geeks
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
B
Blog
美团技术团队
量子位

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - CalvinSturm/FastPlay: The Windows video player b...
CalvinSturm · 2026-06-26 · via Hacker News: Show HN

FastPlay is a Windows video player built for the parts of playback people actually notice: opening a file, reaching the first frame quickly, resuming where you left off, scrubbing without friction, adjusting the picture easily, and getting out of the way while you watch.

It is intentionally focused on local playback. No media library. No plugin maze. No feature sprawl. Just fast open, clean playback, responsive controls, and a tighter Windows-native experience.

Download FastPlay v0.3.0 for Windows x64All releasesReport an issue

Current status: early release, actively improving playback speed, seek feel, and UI polish on Windows x64.

ezgif-1084bbf2cf26c3f5

Why FastPlay exists

Most of the time you open a video player, you are not managing a library or transcoding a stream. You are opening one local file and watching it. FastPlay is built around that single moment: how fast the file opens, how quickly the first frame appears, whether it resumes where you left off, and how cleanly it scrubs and gets out of the way.

The mainstream players are excellent and do far more than this. FastPlay deliberately does less, so the path from double-click to watching stays short and the controls stay responsive. It is a focused tool for local playback on Windows, not a replacement for a full-featured media suite.

Compared to VLC and MPC-HC

VLC and MPC-HC are mature, capable, and the right choice for most people when they need broad format support, streaming, playlists, deep configuration, and years of hardening. FastPlay is not trying to compete on breadth.

Where FastPlay differs is scope and intent:

FastPlay VLC MPC-HC
Primary focus Fast local playback on Windows Everything, everywhere Lightweight local playback (Windows)
Platforms Windows x64 only Cross-platform Windows
Format/codec breadth Common formats via FFmpeg Very broad Broad
Streaming / network No Yes Limited
Playlists / library No Yes Basic
Per-file resume Built in Plugin/config Limited
Render path D3D11-first, GPU-resident Multiple backends DirectShow / madVR etc.

Use VLC or MPC-HC when you need format coverage, streaming, or platform reach. Reach for FastPlay when you want a snappy, no-friction window for the local file in front of you.

Controls

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 (↑↓ select · Enter open · Del remove · Esc close)
Ctrl+S Save screenshot
S Toggle subtitles
I Set in-point at current position
Shift+I Clear in-point
O Set out-point at current position
Shift+O Clear out-point
R Toggle loop range (if in/out set) · toggle auto-replay (if no range)
MouseWheel Adjust volume
Esc Exit borderless fullscreen
Ctrl+H Toggle borderless fullscreen
Ctrl+W Fill screen height with no black padding
Ctrl+Q Snap window to half the video's native resolution
Ctrl+R Rotate clockwise 90 degrees
Ctrl+E Rotate counter-clockwise 90 degrees
Ctrl+MouseWheel Zoom at cursor
Ctrl+Drag Pan when zoomed in
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

Timeline scrubbing is available by hovering near the bottom of the window and clicking or dragging.

In / Out range

Press I to mark where playback starts and O to mark where it ends. The range adapts to however many points are set:

In Out Plays Space at end goes 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 / Shift+O to clear individual points. In/out points reset when a new file is opened.

Features

Playback

  • Ctrl+O file open dialog and drag-and-drop file open
  • recent-files overlay with automatic per-file resume playback
  • quick open and first-frame path
  • responsive keyboard seek with accelerated hold behavior
  • timeline scrubbing overlay with playback position
  • in/out point range with loop and auto-replay
  • replay at end of playback
  • playback metrics such as open-to-frame latency, seek latency, and dropped frames

Video and audio

  • FFmpeg-based demux and decode
  • hardware video decode on the preferred D3D11 path
  • software video decode fallback with D3D11 upload and present
  • WASAPI shared-mode audio playback
  • audio-master playback timing when audio exists
  • generation-safe seek and reopen behavior
  • device-loss and resize recovery paths

Viewing controls

  • borderless fullscreen
  • cursor-centered zoom and drag-to-pan
  • 90-degree view rotation with auto-rotate from stream display matrix metadata
  • fit-to-screen window sizing with no black padding
  • half native resolution window sizing
  • volume control with on-screen overlay
  • hold-to-show keybind reference overlay

Subtitles

  • external .srt subtitle overlay
  • runtime subtitle toggle
  • accepts both comma and period millisecond separators in SRT timestamps
  • UTF-8 with BOM support and Windows-1252 fallback encoding
  • strips common formatting tags (<b>, <i>, <u>, <font>)

Platform

  • per-monitor DPI awareness (Per-Monitor V2 with system-aware fallback)
  • minimum window size enforcement (640×360)

Goals

FastPlay prioritizes:

  • low open-to-first-frame latency
  • responsive seek behavior
  • GPU-resident presentation on the normal hardware path
  • bounded queues and explicit ownership
  • narrow, maintainable architecture
  • Windows-specific performance rather than broad platform support

Non-goals

FastPlay does not currently aim to provide:

  • playlists or media library management
  • streaming support
  • plugin support
  • browser or web UI
  • advanced subtitle styling or embedded subtitle track selection
  • HDR or tone mapping
  • extra hardware backends beyond the current D3D11-first design

Known limitations

These are current real-world caveats, separate from the deliberate non-goals above:

  • Windows x64 only. No macOS, Linux, or ARM builds.
  • Common formats, not exhaustive. Decoding depends on the FFmpeg build in use; uncommon or exotic codecs may not play. Software decode is the fallback when hardware decode is unavailable.
  • External .srt subtitles only. Embedded subtitle tracks and other subtitle formats are not loaded, and styling is intentionally minimal.
  • Single-file playback. No playlists, queue, or "next file" yet. Opening a new file replaces the current one and resets in/out points.
  • No streaming or network sources. Local files only.
  • Audio is WASAPI shared-mode. No exclusive mode, no multi-track/audio-track switching.
  • HDR is not tone-mapped. HDR content plays but is not color-managed.
  • Early release. Behavior, shortcuts, and metrics are still changing between versions.

Requirements

  • Windows 10 or later
  • Rust toolchain
  • FFmpeg development headers and libraries available locally
  • D3D11 / DXGI / WASAPI-capable system

FFmpeg setup

build.rs supports these FFmpeg discovery patterns.

Preferred

Set FFMPEG_DIR.

Or set explicitly

  • FFMPEG_INCLUDE_DIR
  • FFMPEG_LIB_DIR
  • optional: FFMPEG_BIN_DIR

Fallback search locations

  • %VCPKG_ROOT%/installed/x64-windows
  • %USERPROFILE%/vcpkg/installed/x64-windows
  • C:\tools\vcpkg\installed\x64-windows

The build expects the usual FFmpeg development layout with include/ and lib/. Runtime DLL staging works when a bin/ directory is available.

Build

Run

Normal playback:

cargo run --release -- <path-to-media>

Or drag and drop a media file onto the FastPlay window.

Force software decode fallback:

cargo run --release -- --force-sw <path-to-media>

External subtitles

FastPlay supports external sidecar .srt files only. Place a subtitle file next to the media file with the same basename:

The subtitle sidecar will be auto-loaded if present.

Architecture

Preferred path

FFmpeg -> AV_PIX_FMT_D3D11 -> D3D11 video processor -> DXGI present

Software fallback path

FFmpeg demux -> software decode -> D3D11 upload -> D3D11 video processor -> DXGI present

Audio path

FFmpeg decode -> WASAPI shared-mode sink

Subtitle path

  • external .srt sidecar only
  • CPU parsing and layout
  • GPU alpha composition during present

For the full implementation charter, see ARCHITECTURE.md.

Project structure

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

License

MIT