Files
the_information_nexus/tech_docs/linux/MKVToolNix.md
2024-05-01 12:28:44 -06:00

81 lines
3.2 KiB
Markdown

Creating a basic guide to working with MKV files focuses on `MKVToolNix`, a suite of tools designed specifically for the Matroska media container format. `MKVToolNix` includes `mkvmerge` for merging and `mkvextract` for extracting streams, among other utilities. This guide will introduce you to the core functionalities of `MKVToolNix` for handling MKV files.
### Introduction to MKVToolNix
`MKVToolNix` is a set of tools to create, alter, and inspect Matroska files (MKV). Matroska is a flexible, open standard container format that can hold an unlimited number of video, audio, picture, or subtitle tracks in one file. `MKVToolNix` is available for Linux, Windows, and macOS.
### Installing MKVToolNix
Before using `MKVToolNix`, you need to install it on your system.
- **On Ubuntu/Debian:**
```bash
sudo apt update
sudo apt install mkvtoolnix mkvtoolnix-gui
```
- **On Fedora:**
```bash
sudo dnf install mkvtoolnix
```
- **On macOS (using Homebrew):**
```bash
brew install mkvtoolnix
```
### Basic MKVToolNix Commands
#### 1. Merging Files into an MKV
You can combine video, audio, and subtitle files into a single MKV file using `mkvmerge`:
```bash
mkvmerge -o output.mkv video.mp4 audio.ac3 subtitles.srt
```
This command merges `video.mp4`, `audio.ac3`, and `subtitles.srt` into `output.mkv`.
#### 2. Extracting Tracks from an MKV File
To extract specific tracks from an MKV file, you first need to identify the tracks with `mkvmerge`:
```bash
mkvmerge -i input.mkv
```
Then, use `mkvextract` to extract the desired track(s):
```bash
mkvextract tracks input.mkv 1:video.h264 2:audio.ac3
```
This extracts the first track (usually video) to `video.h264` and the second track (usually audio) to `audio.ac3`.
#### 3. Adding and Removing Subtitles
To add subtitles to an existing MKV file:
```bash
mkvmerge -o output.mkv input.mkv subtitles.srt
```
This adds `subtitles.srt` to `input.mkv`, creating a new file `output.mkv`.
To remove subtitles or other tracks, first identify the track numbers, then use `mkvmerge` to create a new file without the undesired tracks:
```bash
mkvmerge -o output.mkv --track-order 0:1,0:2 input.mkv
```
Assuming track 3 is the subtitle track you wish to remove, this command re-creates `input.mkv` as `output.mkv` without track 3.
#### 4. Changing Track Properties
To modify track properties, such as language or default track flag:
```bash
mkvpropedit input.mkv --edit track:a1 --set language=eng --set flag-default=1
```
This sets the language of the first audio track (`a1`) to English (`eng`) and marks it as the default track.
### GUI Alternative
For those who prefer a graphical interface, `MKVToolNix` comes with `MKVToolNix GUI`, an application that provides a user-friendly way to perform all the tasks mentioned above without using the command line.
### Conclusion
This guide covers the basics of handling MKV files with `MKVToolNix`, from merging and extracting tracks to modifying track properties. `MKVToolNix` is a powerful toolkit for MKV file manipulation, offering a wide range of functionalities for users who work with video files in the Matroska format. Whether you prefer the command line or a graphical interface, `MKVToolNix` has the tools you need to manage your MKV files effectively.