How to use the command mkvmerge (with examples)
Mkvmerge is a command-line tool that allows users to merge and extract multimedia streams. It supports Matroska files, an open standard multimedia container format. With mkvmerge, users can easily manipulate audio, video, and subtitle tracks within Matroska files.
Use case 1: Display information about a Matroska file
Code:
mkvmerge --identify path/to/file.mkv
Motivation:
The motivation for using this example is to retrieve detailed information about a Matroska file. This can be useful for understanding the contents of the file, such as the number and type of tracks.
Explanation:
--identify
: This option tells mkvmerge to display information about the file.path/to/file.mkv
: This argument specifies the path to the Matroska file that we want to analyze.
Example output:
File 'path/to/file.mkv': container: Matroska
Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_AC3)
Track ID 3: subtitles (S_TEXT/UTF8)
Use case 2: Extract the audio from track 1 of a specific file
Code:
mkvextract tracks path/to/file.mkv 1:path/to/output.webm
Motivation:
The motivation for using this example is to extract the audio track from a Matroska file. This can be useful for separating the audio from the video or performing further audio processing.
Explanation:
tracks
: This sub-command tells mkvextract to extract specific tracks from the file.path/to/file.mkv
: This argument specifies the path to the Matroska file that we want to extract from.1:path/to/output.webm
: This argument specifies the track to extract (track ID 1) and the output path for the extracted audio.
Example output:
Extracting track 1 with the CodecID 'A_AC3' to the file 'path/to/output.webm'. Container format: WebM
Use case 3: Extract the subtitle from track 3 of a specific file
Code:
mkvextract tracks path/to/file.mkv 3:path/to/subs.srt
Motivation:
The motivation for using this example is to extract a specific subtitle track from a Matroska file. This can be useful for obtaining subtitle files to be used separately or for further processing.
Explanation:
tracks
: This sub-command tells mkvextract to extract specific tracks from the file.path/to/file.mkv
: This argument specifies the path to the Matroska file that we want to extract from.3:path/to/subs.srt
: This argument specifies the track to extract (track ID 3) and the output path for the extracted subtitle.
Example output:
Extracting track 3 with the CodecID 'S_TEXT/UTF8' to the file 'path/to/subs.srt'. Container format: SubRip/SRT
Use case 4: Add a subtitle track to a file
Code:
mkvmerge --output path/to/output.mkv path/to/file.mkv path/to/subs.srt
Motivation:
The motivation for using this example is to add a subtitle track to an existing Matroska file. This can be useful for combining different tracks into a single file or overlaying subtitles onto a video.
Explanation:
--output
: This option specifies the output path and filename for the merged file.path/to/output.mkv
: This argument specifies the path and filename of the merged output file.path/to/file.mkv
: This argument specifies the path to the Matroska file that we want to merge with the subtitle track.path/to/subs.srt
: This argument specifies the path to the subtitle file that we want to add as a track.
Example output:
Merging file 'path/to/file.mkv' and file 'path/to/subs.srt'.
Writing/adding track ID 0 from the file 'path/to/file.mkv' and track ID 0 from the file 'path/to/subs.srt'.
Conclusion:
Mkvmerge is a versatile command-line tool for merging and extracting multimedia streams in Matroska files. Whether you need to extract audio or subtitles, add new tracks, or simply gather information about a Matroska file, mkvmerge provides the necessary functionality.