To remove specific audio tracks, add new ones, and include extra subtitles, you can achieve this using mkvmerge. Here’s how:


Step 1: Identify the Current Tracks

Use mkvmerge to list the tracks in the original file:

mkvmerge -i input.mkv

Note the track IDs of:

  • The audio tracks you want to keep.
  • The audio tracks you want to remove.
  • The new audio and subtitle files you want to add.

Step 2: Remove Unwanted Audio Tracks

Use the --audio-tracks option to specify the audio tracks you want to keep (e.g., Track ID 1 is English):

mkvmerge -o temp.mkv --audio-tracks 0,1 input.mkv

Here:

  • 0 is the video track.
  • 1 is the English audio track.
  • This excludes unwanted tracks like Track ID 2 (French), Track ID 3 (Spanish), and Track ID 4 (German).

Step 3: Add New Audio and Subtitle Files

Use the --track-name and --language options to add the new tracks and label them. For example, if you have:

  • An audio track in Japanese (japanese.aac).
  • Subtitles in Japanese (japanese.srt).

Run:

mkvmerge -o output.mkv temp.mkv \
  --language 0:jpn --track-name 0:"Japanese Audio" japanese.aac \
  --language 0:jpn --track-name 0:"Japanese Subtitles" japanese.srt

Explanation of the Options:

  • --language 0:jpn: Sets the language of the new track to Japanese (jpn is the ISO 639-2 language code).
  • --track-name 0:"Japanese Audio": Names the new audio track “Japanese Audio”.
  • --track-name 0:"Japanese Subtitles": Names the new subtitle track “Japanese Subtitles”.
  • temp.mkv: The intermediate file from which unnecessary tracks were removed.
  • output.mkv: The final MKV file with the changes applied.

Step 4: Verify the Output

Check the resulting file to confirm it includes the correct tracks:

mkvmerge -i output.mkv

Example: One-Liner Command

If you want to do everything in one step (remove, keep, and add tracks), you can chain the options:

mkvmerge -o output.mkv \
  --video-tracks 0 --audio-tracks 1 --subtitle-tracks 5 \
  input.mkv \
  --language 0:jpn --track-name 0:"Japanese Audio" japanese.aac \
  --language 0:jpn --track-name 0:"Japanese Subtitles" japanese.srt

Here:

  • --video-tracks 0: Keeps the video track.
  • --audio-tracks 1: Keeps the English audio track.
  • --subtitle-tracks 5: Keeps a specific subtitle track from the original file.
  • The new audio and subtitle tracks are added as part of the same command.