An open API service indexing awesome lists of open source software.

https://github.com/KirovAir/muxarr

Quick and easy way to strip unwanted audio and subtitle tracks from your media files.
https://github.com/KirovAir/muxarr

arr audio blazor docker dotnet emby homelab jellyfin media media-management media-server mkv mkvmerge mkvtoolnix plex radarr remux selfhosted sonarr subtitles

Last synced: about 1 month ago
JSON representation

Quick and easy way to strip unwanted audio and subtitle tracks from your media files.

Awesome Lists containing this project

README

          


Muxarr

Build and Deploy
Docker Image
GitHub Stars
License: GPL v3

# Muxarr

*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.


Muxarr Demo

A quick demo of a file being optimized (35.9% reduction)

### Quick Start

```yaml
services:
muxarr:
image: ghcr.io/kirovair/muxarr:latest
container_name: muxarr
environment:
- TZ=Europe/Amsterdam
- PUID=1000
- PGID=1000
volumes:
- /path/to/data:/data
- /path/to/media:/media
ports:
- 8183:8183
restart: unless-stopped
```

## Features

- **Strip unwanted tracks** - remove audio (commentary, foreign dubs) and subtitles (SDH, foreign) without re-encoding, so quality is untouched. A typical 4GB file processes in about a minute depending on disk speed, saving up to 10% in file size.
- **Original language detection** - integrates with your *arr stack so foreign films and shows always keep the correct audio track
- **Automatic processing** - webhook support to process new imports as they arrive
- **Per-directory profiles** - different language and track rules for different collections (e.g. anime vs western media)
- **Language priority & track limits** - control track ordering per language, limit tracks per language (e.g. keep only the best English audio track), and choose between best quality or smallest size
- **Smart metadata fixes** - cleans up encoder tags and codec dumps from track names. Uses mkvpropedit for metadata-only changes (instant, no remux needed)
- **Safe by default** - validates the output file before replacing the original. If anything fails, the original is untouched.
- **Library overview** - full breakdown of codecs, resolutions, and languages across your library

Supports Matroska (`.mkv`, `.webm`) and MP4-family (`.mp4`, `.m4v`).

More screenshots



Before

⬇️

After

Before and after metadata cleanup


File Details

File details with track preview


Dashboard

Dashboard


Profile Settings

Profile settings


Statistics

Statistics

## Installation

### Docker Run

```bash
docker run -d \
--name=muxarr \
-e TZ=Europe/Amsterdam \
-e PUID=1000 \
-e PGID=1000 \
-p 8183:8183 \
-v /path/to/data:/data \
-v /path/to/media:/media \
--restart unless-stopped \
ghcr.io/kirovair/muxarr:latest
```

## Configuration

### Environment Variables

| Variable | Description | Default |
|---|---|---|
| `TZ` | Timezone | `UTC` |
| `PUID` | User ID for file permissions | `1000` |
| `PGID` | Group ID for file permissions | `1000` |

### Volumes

| Path | Description |
|---|---|
| `/data` | Database and configuration |
| `/media` | Media files (use multiple `-v` mounts as needed) |

### Setup

1. Open `http://your-ip:8183` - the setup wizard will guide you through
2. Set a username and password (optional)
3. Connect Sonarr/Radarr for original language detection and webhook automation (optional)
4. Create a profile with your media directories and language rules
5. Scan your library, preview the changes, and queue files for processing

### API

Muxarr exposes a stats API at `/api/stats` (authenticated via `X-Api-Key` header). Works with [Homepage](https://gethomepage.dev/widgets/services/customapi/) and other dashboards. See Settings > API for examples.

## Built With

- [.NET 10](https://dotnet.microsoft.com/) / Blazor
- [MKVToolNix](https://mkvtoolnix.download/) (mkvmerge, mkvpropedit)
- [FFmpeg](https://ffmpeg.org/) (ffmpeg, ffprobe)

## License

GPL-3.0 - see [LICENSE](LICENSE.md).

Muxarr is not affiliated with Sonarr, Radarr, or any other *arr projects.