Seeking your opinion on a project using mkvmerge

Hello,

Thank you so much for your amazing software — I’ve been using mkvmerge for over a decade, and it has always been incredibly helpful.

I’m currently planning a larger project than usual, and I’d really appreciate your opinion on whether mkvmerge is suitable for this kind of workflow, and if my approach makes sense.


Project overview:

I have two MKV files:

File 1:

  • Contains 1 video track and 1 audio track (and sometimes a PGS subtitle track).
  • The video structure is: A1–B1–A2–B2–...–An–Bn

File 2:

  • Contains 1 video track, multiple audio tracks, and multiple subtitle tracks (PGS, SRT, ASS, SSA).
  • The video structure is: A1–C1–A2–C2–...–An–Cn

Where:

  • A1, A2, …, An are dialogue scenes
  • B1, B2, …, Bn are musical segments (no speech)
  • C1, C2, …, Cn are music-only segments similar to B1, but with different durations
  • File 1 has significantly better video quality, while File 2 includes many more audio and subtitle tracks

My goal:

To synchronize the audio and subtitles from File 2 onto the high-quality video from File 1.


Planned method:

  • All segment start/end timecodes and audio delays are determined manually.
  • I plan to use mkvmerge with both --split and --sync in a single pass to:
    • cut File 1 into segments (A1, B1, A2, B2, …)
    • apply audio delay offsets to each segment
  • Then I will concatenate the segments along with their corresponding audio/subtitle tracks from File 2.
  • Since mkvmerge requires the same number of tracks when concatenating, I plan to duplicate File 1’s audio track to match the number of audio tracks in File 2.

My questions:

  1. Is mkvmerge suitable for this kind of workflow?
    Or would you recommend switching to ffmpeg for splitting or concatenating (e.g., for better control over timestamps or stream alignment)?
  2. Would it be better to work with .ts files (e.g., MPEG-TS) instead of .mkv as intermediate format for the segments?
    I’ve heard that .ts can be more tolerant to timestamp gaps or small mismatches — would that help avoid sync issues when rejoining many segments?
  3. If I concatenate 50 to 100 MKV segments, is there a risk of cumulative sync issues or timestamp drift?
  4. I’ve noticed that even when splitting on I-frames, the final output after concatenation has a slightly different duration compared to the original video — sometimes by a few hundred milliseconds or more.
  • Do you know what might cause this?
  • Could it be frame rounding, timestamp scaling, or something else?
  1. Would performing a passthrough re-encode (e.g., using ffmpeg -c copy) after the final concatenation help fix these small drift or duration issues?
    Or is there a more reliable method to ensure the output matches the original duration exactly?

Thank you again for your time and for maintaining such a powerful tool. Your insights would be extremely valuable to help me structure this workflow properly.

If you have used the mkvtoolnix split feature you’ll find that you cannot make precise splits, mkvtoolnix will cut wherever it can after the given timestamp if it can’t cut exactly there. Just try splitting one of your files and you’ll see how the software behaves.

Thank you very much for your answer.
So do you think ffmpeg is appropriate for that ? I first thought about mkvmerge because it is much easer and user friendly to use than ffmpeg.

Is there a topic like here for ffmpeg ? i am a quite noob and ffmpeg has so many option that i would like to find someone who can help me with…