MediaRiffle
MediaRiffle streams your own video library to a browser or a Chromecast. It scans folders of TV shows and movies and plays each file the cheapest way the viewer's browser allows. It is the successor to the 2014 Tongue project, which relied on ffserver and Flash and could no longer be maintained.
Project Link: github.com/TechIdiots-LLC/mediariffle | GitLab
How It Plays Your Files
Direct Files the browser already plays (MP4 with H.264/AAC, WebM) are sent as they are, with normal seeking.
Remux H.264 video in other containers (MKV, AVI and so on) is copied into an HLS stream. Only the audio is converted when it has to be, so CPU use is very low.
Transcode Anything else (HEVC, 10-bit, MPEG-4) is converted to H.264 on the fly. Hardware encoding is supported through NVENC, Quick Sync and VA-API.
Key Features
- TV show and movie libraries, including movies split into multiple parts, managed by admins in the browser
- Adaptive streaming with quality levels from 360p to Original, plus per-user quality caps
- Audio track selection and subtitles from the file or from
.srt,.vttand.assside-car files - Resume where you stopped, continue watching, and next episode
- Chromecast support, plus AirPlay
- Tags per library to browse, play through or shuffle by category
Security
There is no open sign-up. The first visit creates the admin account, and everyone else joins through a one-time invite link. Passwords are hashed by ASP.NET Core Identity, sign-ins are rate limited, cookies are HttpOnly and Secure, and ffmpeg is never started through a shell.
Running It
MediaRiffle is built on ASP.NET Core and runs on Ubuntu 24.04 (.deb package) or Windows (service installer or IIS), for x64 and arm64. Installs from the package update themselves from the admin page. Each release includes the installers, and the repository's documentation covers reverse proxy setup and media on a file server.