-
Version 6.1 is now available
3 hours ago • 0 commentsAdded .vtt subtitle support in a web browser for media files - now web viewing users can have English subtitles whilst watching media. Only English subtitles at this time.
Dependant upon the DLNA client (Smart TV), .srt subtitles can be viewed across the network whilst watching media locally via dlna.
Scraper now pulls down .srt subtitles for media if there is no present .srt file at 5am scan as well as movie art, movie synopsis, IMDB rating and Rotten Tomato score.All .srt files and .vtt files are named the same as the media file.
mkv-2-mp4 conversion now promotes not just the mkv file but also the .srt subtitle file from transmission directories and re-encode mkv to mp4 and also convert .srt to .vtt subtitles as well.
Mkv-Watcher now logs less but more relevant info into the system log for the systemd service.
Added screen aspect ratio for viewing media. this is remembered by the web browser
Fixed upload file button with a progress bar popup when adding a new media fileYou can download / upgrade by running the following on the Raspberry Pi (either SSH into the Pi or on the actual Pi) :-
wget -qO- https://raw.githubusercontent.com/diddy-boy/mini-pi-media-server/main/install.sh | bash
![]()
-
Version 6.0 is out
04/28/2026 at 15:12 • 0 commentsVersion 6 Update :
- Midnight systemd encoding timer replaced by a mkv-watcher service — encoding now triggers the moment a file is ready via inotify if a file changes in the /var/lib/minidlna/Video folder and sub folders or if a 5 minute mark is reached and the files are not locked. Users no longer have to wait until midnight for encoding media to start
- Transmission seeding aware — won't encode until the user stops seeding after downloading
- Power-loss recovery — mkv 2 mp4 encoder picks up where it left off on reboot and removes the part completed file and restarts encoding.
- Client-side EQ and audio effects — zero load on the Pi, per-client settings in the web browser. screen shot below
![]()
mkv-watcher.sh
A persistent systemd service that monitors /var/lib/minidlna/Video for new video files.
Triggers:
- inotify — fires instantly when a new MKV lands in the Video folder directly or in a Transmission subfolder via close_write or moved_to events
- Boot-time sweep — on startup, immediately checks for any unprocessed MKVs left over from a previous interrupted session
- Periodic sweep — every 5 minutes checks subfolders for files no longer held open by Transmission (seeding finished), acting as a catch-all for anything inotify cannot detect
Guards against:
- Transmission incomplete downloads (.part files ignored)
- Files still being written or seeded (stability check — 3 consecutive size-stable passes before triggering)
- Double conversion (lock file check before triggering)
- Stuck PROMOTING_ files from a previous power loss (cleaned on startup)
- inotify process death (systemd Restart=on-failure with RestartSec=10)
File stability check: Before triggering conversion, the watcher confirms the file is fully written by checking it is not held open by any process (lsof), passes 3 consecutive size-stable checks 30 seconds apart, and passes ffprobe validation.
mkv-2-mp4.sh
A one-shot conversion script triggered by the watcher (or manually via systemctl start mkv-conversion).
Phase 1 — Promote: Scans all subfolders under the Video directory for completed Transmission downloads and moves them up to the root Video folder ready for conversion. Skips the protected Web folder (Google Drive sync). Only promotes subfolders containing exactly one video file — multiple files are left for manual review. Uses a PROMOTING_ prefix during the move for power-loss protection.
Phase 2 — Convert: Processes every *.mkv in the Video folder sequentially:
- Detects video codec, audio codec, and source bitrate via ffprobe
- H264 source — stream copy (remux only, very fast, no quality loss)
- HEVC/other source — re-encodes using hardware encoder (h264_v4l2m2m) on a Pi Zero 2 w with VideoCore GPU, with adaptive bitrate scaled to 70% of source (clamped 1.5Mbps–4Mbps)
- Hardware fallback — if hardware encoding is not present like on a pi 5, automatically falls back to software (libx264) encoding.
- Audio — copies AAC streams as-is, transcodes everything else to AAC 128k
- All output files include -movflags +faststart for browser streaming compatibility
- Uses a CONVERTING_ prefix during encode for power-loss protection — partial files are cleaned up on next run
On completion logs:
- Output file frame rate (content fps)
- Encoding speed (encoder fps and realtime multiplier)
- Output file size
Post-conversion:
- Resets permissions (775, minidlna:minidlna)
- Restarts MiniDLNA to index new files
- Lock file released, allowing the next 5-minute sweep to pick up any queued files
You can download / upgrade by running the following on the Raspberry Pi (either SSH into the Pi or on the actual Pi) :-
wget -qO- https://raw.githubusercontent.com/diddy-boy/mini-pi-media-server/main/install.sh | bash
-
Version 5.2 is now available
04/26/2026 at 12:11 • 0 commentsProject Update: Enhanced Media Automation & Robust Transcoding
The
mkv-2-mp4.shscript, which runs as a scheduled midnight systemd task, has been overhauled to improve automation, reliability, and hardware efficiency. This script acts as the "cleanup crew" for the Mini Pi Media Server, ensuring all new downloads are standardized for DLNA streaming.Key Features of this Update:
- Intelligent "Promotion" Phase: The script now automatically scans Transmission download subfolders. If a folder contains exactly one video file, it "promotes" it to the main library, deletes the leftover clutter (NFOs, samples, etc.), and removes the empty directory.
- Power-Loss Protection: To prevent file corruption during a power failure, the script now uses a
PROMOTING_orCONVERTING_prefix for temporary files. The final filename is only applied upon successful completion of the move or transcode. - Adaptive Hardware Encoding: It leverages the Raspberry Pi's hardware acceleration (
h264_v4l2m2m). The script now calculates an adaptive bitrate—aiming for 70% of the source quality—to balance file size and visual fidelity dynamically. - Smart Fallback Logic: If the hardware encoder fails , busy or running on a Raspberry Pi 5, the script automatically falls back to a multi-threaded software encode (
libx264) with a specialized mobile-friendly resolution (960x540) to ensure the task finishes. - Automated Library Maintenance: After processing, the script handles the "housekeeping" by resetting permissions for the
minidlnauser and restarting the service to trigger an immediate library re-index.
Workflow Logic:
- Locking: Prevents multiple instances from running simultaneously.
- Stream Copying: If the source is already H.264/AAC, it copies the streams without re-encoding to preserve 100% quality and save CPU.
- Cleanup: Automatically deletes the original
.mkvfiles only after a successful.mp4conversion is verified.
You can download / upgrade by running the following on the Raspberry Pi (either SSH into the Pi or on the actual Pi) :-
wget -qO- https://raw.githubusercontent.com/diddy-boy/mini-pi-media-server/main/install.sh | bash
-
Mini-Pi Media server in the car
04/07/2026 at 18:21 • 0 commentsMultiple streaming to two tablets in the car all from the Pi zero 2 w running from the cars electrics
-
Version 5.1 is now available
04/01/2026 at 22:43 • 0 commentsVersion 5.1 is out
Fixes for displaying on mobile devices
Fixed small bug with titlebar icon not displaying
added a couple more background pictures that can be set.
Added a recently viewed list to the file listing view based on previous use.
![]()
You can download / upgrade by running the following on the Raspberry Pi (either SSH into the Pi or on the actual Pi) by copying :-
wget -qO- https://raw.githubusercontent.com/diddy-boy/mini-pi-media-server/main/install.sh | bash
-
Quick FAQ
03/13/2026 at 08:31 • 0 commentsMini-Pi Media Server: Quick FAQ
- Q: Which Raspberry Pi models are supported?
- A: It is highly optimized for the Pi Zero 2 W (£14), but fully supports Pi 3, 4, and 5.
- Q: Can I use an external hard drive?
- A: Yes but only to synchronise from! The project includes an Auto-USB sync feature. Plug in a drive with "Video", "Music", or "Pictures" folders, and it will automatically sync media into the pi's media library.
- Q: Does it support 4K?
- A: The Zero 2 W handles 1080p HD effortlessly (up to 4 streams). For 4K, we recommend using a Pi 4 or 5 with an Ethernet connection. Streaming over wifi at this bandwidth is just asking for pain.
- Q: Do I need to be a Linux expert to install it?
- A: No. It’s a one-command install. Just run the script from our GitHub and it handles the entire stack setup for you.
- Q: How do I manage the server?
- A: It comes with Cockpit Web Admin pre-installed. You can manage files, check system health, and terminal into the Pi directly from your web browser—no SSH knowledge required.
- Q: Which Raspberry Pi models are supported?
-
Beating the Pi Price Hike: Why 512MB is all you need for HD Streaming
03/13/2026 at 08:11 • 0 comments![]()
With the recent news of a second price spike for high-RAM Raspberry Pi models, many makers are feeling priced out of the home server hobby. If you’re looking at a £100+ price tag for a Pi 5 just to stream some movies, I have some good news: You're overspending.
I captured this screenshot from the Mini-Pi's Cockpit dashboard during a stress test.
The Setup:
- Hardware: Raspberry Pi Zero 2 W (£14).
- Load: 4 separate devices (Tablets/Phones) all streaming different HD content simultaneously.
- The Result: Look at those metrics!
The Proof is in the Data:
- CPU Load: A staggering 0.01 average. The quad-core 64-bit chip in the Zero 2 W isn't even breaking a sweat.
- Memory: Despite having "only" 512MB of RAM, the system still has 232MB available. My software stack is tuned to ensure the OS doesn't bloat, leaving plenty of room for MiniDLNA and Samba to do their jobs.
- Temperature: Running cool at 38°C in a Flirc case—no expensive active cooling or massive heatsinks required.
Stop Paying the "AI Tax"
The price hikes on the Pi 4 and 5 are driven by global demand for high-density LPDDR4 RAM used in AI. But a media server doesn't need 8GB of RAM to move packets of video data.
Mini-Pi proves that with the right software optimization, the £14 Zero 2 W is still the undisputed Budget King of home media.
Don't upgrade your hardware—optimize your software.
-
Architecture Diagram layout
03/07/2026 at 10:57 • 0 comments![]()
-
Mini Pi Media Server: Version 5 is Here!
03/06/2026 at 22:27 • 0 comments![]()
Version 5 introduces a major overhaul with a focus on a cleaner UI, better performance, and expanded features.
What’s New?
- Fresh Branding: A new "Pi-Play" logo now serves as the default background for new browser visits.
- Refined UI:
- Smoother Transitions: Polished animations when changing backgrounds.
- Reduced Bloat: Optimized
index.htmlfor faster loading. - Stealth Mode: Click the branding logo to toggle the visibility of the "Easy Connect," "Select Background," and "System Status" buttons for a minimalist look.
- Integrated Torrent Downloader: A built-in way to manage downloads directly from the dashboard.
![]()
- Improved Installer: Optimized scripts for seamless version upgrades.
How to Use the Torrent Downloader
- Navigate to Downloads on your dashboard.
- Login: Use username
piand passwordpi. - Add Torrents: Click the Add Folder icon on the left, paste your magnet/torrent link, and you're set.
- Automation: The system downloads in the background (you can close the tab) and automatically saves files to your Video folder.
Pro Tip: To organize your library, select Manage Server to enter Cockpit. Use the Navigator to browse to
/var/lib/minidlna/Videoto rename or move files. The Media Scraper runs daily at 5:00 AM to fetch metadata for your new content.Disclaimer: This tool is intended for legitimate use cases. The developer is not liable for how users choose to utilize this software.
Download or Upgrade Now
Run the following command in your terminal (via SSH or directly on the Pi) to launch the installer:
wget -qO- https://raw.githubusercontent.com/diddy-boy/mini-pi-media-server/main/install.sh | bash
-
Mini-Pi Media Server v5.0 – UI Overhaul in Progress
03/04/2026 at 11:14 • 0 commentsMini-Pi Media Server v5.0 – A Complete UI Overhaul
![]()
Version 5.0 marks a major milestone for the Mini-Pi Media Server project. This isn’t just another incremental update — it’s a full visual and user-experience redesign aimed at making the system feel less like a collection of scripts and more like a polished media appliance.
The new interface introduces smooth focus and fade transitions inspired by modern living-room media platforms, giving the home screen a clean, cinematic feel. Navigation between Media, Torrent Downloader, and Web Server management now flows with subtle animations rather than hard page switches.
Background customization has also been upgraded with seamless cross-fade transitions, replacing abrupt image changes with a more refined visual experience.
System feedback has been reimagined as well. Status popups now use a glass-style aesthetic, and the system load indicator LED has been enhanced to pulse and change colour dynamically based on real-time CPU usage — turning raw metrics into ambient visual feedback.
To keep the interface clean, secondary controls such as “Select Background” and “Easy Connect” are now tucked behind the branded icon, creating a simplified front page while still keeping advanced features easily accessible.
In addition to the UI redesign, Version 5.0 integrates a built-in torrent downloader that writes directly to the MiniDLNA video directory. Newly downloaded content becomes instantly available to the DLNA server, Samba shares, and the Apache web interface — creating a seamless download-to-stream pipeline.
Version 5.0 represents a shift in philosophy for the project: from functional media server to refined, self-contained media appliance.
More screenshots and details coming soon.
diddy






