Introduction • Features • Screenshots • Download • Support the Project • Development • Contributing • Credits • License
Matroska Batch Flow is a powerful tool for batch processing Matroska (.mkv) files, designed to help you efficiently manage and modify large collections. It features a modern graphical user interface built with WinUI 3 and Uno Platform, and integrates MediaInfo for extracting detailed file information, as well as MKVToolNix's mkvpropedit for fast, direct container property editing.
Whether you're an archivist, home theater enthusiast, or anyone who works with Matroska files, Matroska Batch Flow helps you save time and effort. Quickly perform tasks like fixing language tags, updating track names, or preparing files for media servers such as Jellyfin. The tool is suitable for both small batches and large collections, making repetitive editing tasks efficient and ensuring consistency throughout your library.
Warning
This project is currently under active development with no stable release yet. Expect bugs, incomplete features, and breaking changes with pre-release builds.
Note
Consider supporting the project to help with its continued development.
| Feature | Description |
|---|---|
| Batch Editing | Modify container properties (track names, languages, and more) for multiple files at once |
| Modern GUI | Intuitive interface built with WinUI 3 and Uno Platform |
| Drag-and-Drop | Add files or folders by dragging them into the application |
| Flexible Validation | Three configurable strictness levels for file validation (see Validation Modes) |
| Track Availability Indicators | Visual indicators showing track coverage across files in your batch |
| Themes | Choose between Light, Dark, or System theme |
- Strict Mode — Enforces consistent track counts and properties across all files (default)
- Lenient Mode — Allows files with different track counts, with non-blocking notifications
- Custom Mode — Configure validation severity per track type and property for maximum control
Note
Screenshots show the WinUI 3 (WinAppSDK) Windows build.
View Screenshots
Input Page - Add files for batch processing
Audio Configuration - Edit audio track properties
Matroska Batch Flow is free, open-source software built and maintained in my spare time. I built it to help me reduce the tedious task of spending hours manually fixing track properties across hundreds of files. If this tool has been helpful to you, consider supporting its continued development.
Donations can be made as a one-time donation or a recurring sponsorship. Your support helps cover development time and motivates continued development.
Pre-release builds are available on the Releases page. Currently, only Windows builds are available. Note that these are early builds and are expected to contain bugs or incomplete features.
Follow these instructions to set up the project locally for development and testing.
Warning
The cross-platform Skia target (net10.0-desktop) is currently experimental and unsupported. Expect bugs, missing features, and platform-specific issues.
These prerequisites are required to build the project:
| Requirement | Notes |
|---|---|
| Windows 11 | Required for WinAppSDK target |
| .NET 10 SDK | Required for building and running the application |
| mkvpropedit | Already included in WinAppSDK builds |
| Recommended | Notes |
|---|---|
| Visual Studio 2022 or later | Recommended IDE for development |
| Uno Platform Extension for Visual Studio | Helps with Uno Platform development |
-
Clone the repository:
git clone https://github.com/yourusername/Matroska-Batch-Flow.git cd Matroska-Batch-Flow -
Restore dependencies:
dotnet restore
-
Build and run (see Development for detailed instructions)
The project is organized as follows:
Matroska-Batch-Flow/
├── src/
│ ├── MatroskaBatchFlow.Core/ # Core business logic library
│ ├── MatroskaBatchFlow.Console/ # CLI utility (reserved for future use)
│ └── MatroskaBatchFlow.Uno/ # WinUI 3 / Skia GUI application
└── tests/
├── MatroskaBatchFlow.Core.UnitTests/ # Unit tests for core library
├── MatroskaBatchFlow.Uno.UnitTests/ # Unit tests for GUI application
└── MatroskaBatchFlow.Uno.IntegrationTests/ # Integration tests for GUI application| Project | Purpose |
|---|---|
| MatroskaBatchFlow.Core | Cross-platform core library containing the main business logic of the application |
| MatroskaBatchFlow.Console | Command-line interface (reserved for future use) |
| MatroskaBatchFlow.Uno | The GUI application powered by Uno Platform. Available targets: WinAppSDK (Windows), Skia Desktop (experimental cross-platform) |
To build the application, choose one of the following methods:
- Open
MatroskaBatchFlow.slnin Visual Studio - Set
MatroskaBatchFlow.Unoas the startup project - Select the
net10.0-windows10.0.19041target framework - Press F5 to build and run with debugging
# WinAppSDK (Recommended)
dotnet build src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-windows10.0.19041
# Skia Desktop (Experimental)
dotnet build src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-desktopdotnet run --project src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-windows10.0.19041Tip
dotnet run automatically builds the project if needed.
# Run all tests
dotnet test
# Run a specific test project. In this example, the core project unit tests.
dotnet test tests/MatroskaBatchFlow.Core.UnitTestsThis is a personal project. If you encounter a bug or have a feature suggestion, you're welcome to open an issue, but please ensure it's detailed and actionable. Low-effort submissions (low quality pull requests, vague reports, duplicate issues, feature requests without context) may be closed without action.
This project relies on the following tools:
- MediaInfo — Media file analysis library
- MKVToolNix — Matroska tools including
mkvpropedit - Uno Platform — Open-source .NET platform for building cross-platform applications
- Windows App SDK — Modern Windows development platform
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.

