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
mkvmergewith both--splitand--syncin 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:
- Is mkvmerge suitable for this kind of workflow?
Or would you recommend switching toffmpegfor splitting or concatenating (e.g., for better control over timestamps or stream alignment)? - Would it be better to work with
.tsfiles (e.g., MPEG-TS) instead of.mkvas intermediate format for the segments?
I’ve heard that.tscan be more tolerant to timestamp gaps or small mismatches — would that help avoid sync issues when rejoining many segments? - If I concatenate 50 to 100 MKV segments, is there a risk of cumulative sync issues or timestamp drift?
- 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?
- 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.