A lightweight self-hosted video library and player for browsing, previewing, and clipping local or network-shared recordings. Built with Go + Fiber and a zero-build static frontend powered by ArtPlayer.
- Browse multiple video roots (local folders or UNC
//server/sharepaths) - Stream playback with HTTP Range support (seeking)
- On-the-fly HLS transcoding at 720p / 480p / 360p
- FLV / MP4 / MKV / AVI / WMV / MOV / TS / WebM support
- Hover thumbnail previews (3x3 sprite grid)
- Clip extraction — fast stream-copy or precise re-encode
- Recursive filename search
- Automatic port-conflict detection (Windows)
- Go 1.21+ (to build)
- FFmpeg — place
ffmpeg.exeat the path set inconfig.json(default./ffmpeg/bin/ffmpeg.exe)
-
Copy the example config and edit it to point at your video folders:
cp config.example.json config.json
Edit
config.json—video_rootsis a list of{ "name", "path" }entries.pathmay be a local folder or a UNC share. -
Build and run:
go build -o rec5144.exe . ./rec5144.exe
| Key | Description |
|---|---|
video_roots |
List of { name, path } video source directories |
port |
HTTP listen port |
ffmpeg_path |
Path to the ffmpeg executable |
thumb_cache |
Directory for generated thumbnail sprites |
clip_output |
Directory for extracted clips |
config.json is gitignored because it contains local paths — keep your real config out of version control.
The bundled ffmpeg/ directory, generated thumb_cache/, clips/, and the compiled binary are excluded from the repository. Download FFmpeg separately for your platform.
Port-conflict detection uses Windows-specific tooling (netstat / taskkill); on other platforms that step is skipped or will need adapting.