Quick and easy way to strip unwanted audio and subtitle tracks from your media files.
翻译准备中
正在加载完整 README。
查看完整 README ↗Ever had your player pick the wrong audio language, or show 20 subtitle options you'll never use? Most media files ship with far more tracks than you need.
Muxarr cleans them up by removing unwanted audio and subtitle tracks and standardizing track metadata. It uses mkvmerge for MKV files and ffmpeg with stream copy for other containers, so tracks are remuxed rather than re-encoded and there is zero quality loss. A 4GB file takes about a minute instead of hours, even on low-end hardware like a NAS or Raspberry Pi.
Hooks into Sonarr & Radarr for original language detection and automatic processing - new imports get cleaned up as they arrive.
services:
muxarr:
image: ghcr.io/kirovair/muxarr:latest
container_name: muxarr
environment:
- TZ=Europe/Amsterdam
- PUID=1000
- PGID=1000
volumes:
- /path/to/appdata:/config
- /path/to/media:/media
ports:
- 8183:8183
restart: unless-stopped
On Unraid, install Muxarr from the Apps tab.
Upgrading from an older version? See Upgrading before changing your mounts.
Supports Matroska (.mkv, .webm) and MP4-family (.mp4, .m4v). Every setting is explained in the profiles docs.
docker run -d \
--name=muxarr \
-e TZ=Europe/Amsterdam \
-e PUID=1000 \
-e PGID=1000 \
-p 8183:8183 \
-v /path/to/appdata:/config \
-v /path/to/media:/media \
--restart unless-stopped \
ghcr.io/kirovair/muxarr:latest
Muxarr is a plain ASP.NET Core app, so it also runs in a Proxmox LXC, a VM or on a NAS without Docker. There are no prebuilt binaries, so build it yourself. The steps below assume Debian or Ubuntu and a user media that can write to your media files.
git, the .NET 10 SDK, mkvtoolnix and ffmpeg 8.1 or newer. Distro packages of ffmpeg are usually too old; take a static build from BtbN like the Docker image does. mkvmerge, mkvpropedit, ffmpeg and ffprobe have to be on the PATH.git clone https://github.com/KirovAir/muxarr.git
cd muxarr
sudo install -d -o "$USER" /opt/muxarr
dotnet publish Muxarr.Web/Muxarr.Web.csproj -c Release -o /opt/muxarr
sudo install -d -o media -g media /var/lib/muxarr
/etc/systemd/system/muxarr.service and run sudo systemctl enable --now muxarr. The two variables set the database path (without it Muxarr uses /config/muxarr.db, the Docker default) and the port. The working directory matters: that is where it looks for appsettings.json and wwwroot.
[Unit]
Description=Muxarr
After=network.target
[Service]
User=media
WorkingDirectory=/opt/muxarr
Environment="ConnectionStrings__DefaultConnection=Data Source=/var/lib/muxarr/muxarr.db"
Environment="ASPNETCORE_HTTP_PORTS=8183"
ExecStart=/usr/bin/dotnet /opt/muxarr/Muxarr.Web.dll
Restart=on-failure
[Install]
WantedBy=multi-user.target
http://your-ip:8183 and continue with Setup.To update, git pull, publish again and sudo systemctl restart muxarr. Settings, history and logs all live in /var/lib/muxarr; stop the service before copying that folder, SQLite keeps recent writes in the -wal file next to the database.
Older versions stored the database in /data. To upgrade an existing install, point your appdata volume at /config instead of /data and keep the same host path:
volumes:
- /path/to/appdata:/config # was - /path/to/appdata:/data
- /path/to/media:/media # keep media mounts exactly as they were
Do not move your media mounts. Your profiles and Sonarr/Radarr path mappings reference the old container paths, so /media stays /media.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗