Joining Two MKV files in Ubuntu?

I have an opera that I'm ripping to my computer in MKV format with Handbrake. This opera is on two discs. Is there a way to join the resulting MKV's together? They will have the same bitrate, resolution, etc. If I do this, can I keep chapters from both MKV files organized? And, since I have subtitles in the file (not burnt in), will they still stay intact?

I'm not too sure if this question is off-topic or not. If it is, feel more than free to delete it. :)


Solution 1:

Recommended way is to use mkvtoolnix

sudo apt-get install mkvtoolnix mkvtoolnix-gui
  • Start mmg (graphical user interface for mkvmerge)
  • "Add" the first file
  • "Append" the second one, third, fourth, ...
  • Set output name in the textbox at the bottom
  • "Start muxing"

Subtitles are preserved and properly concatenated, so are audio and video. Chapters can be edited in the resulting file with mmg.

This procedure creates a properly muxed file. Any problems should be mentioned in the "log"-window in mmg. You can even set and name audio and subtitle tracks with the correct language codes and Annotations like "Forced" or "Directors Commentary".

If you plan to do this repeatedly on different files you better use the command line version mkvmerge ("mkvmerge --help")

mkvmerge -o output.mkv input1.mkv +input2.mkv

Solution 2:

Use this command in terminal, to merge two separate '.mkv-files' into one.

mkvmerge -o newfile.mkv part1.mkv +part2.mkv

Solution 3:

If the resolution of the videos are same, then you can use avidemux to join them

Solution 4:

The easiest way to combine video is to use a container format that supports concatenation and re-indexing, like mpg. Then you can just cat file1 file2 > file3 and re-index with ffmpeg.

The steps in your case would be:
Convert from mkv to mpg
Concatenate
Re-index
Change back to mkv if you like

If it's just audio, you could use a more easily editable file type...like wav, mp3, or ogg until you've got your final output. Then you can use loads of tools to join audio. Sox or FFmpeg come to mind.

Solution 5:

You can use dmMediaConverter to do this. It is very simple and works well. There is a mode of the program for joining MKV files and uses ffmpeg under the hood. See this answer for more.