I don’t know how to do it with KDE’s tools, but on the command line with ffmpeg you can do something like this:
ffmpeg -i video_track.mp4 -i audio_jp.m4a -i audio_en.m4a -map 0:v -map 1:a -map 2:a -metadata:s:a:0 language=jpn -metadata:s:a:1 language=eng -c:v copy -c:a copy output.mp4
Breaking it down, it:
- runs
ffmpeg
- with three inputs (
-i
flag) – a video file, and two audio files. - The streams are explicitly mapped into the result, counting the inputs from 0 – i.e.
-map 0:v
maps input 0 (the first file) as video (v
) to the output file and-map 1:a
maps the next input as audio (a
), etc. - It sets the metadata for the audio tracks
-metadata:s:a:0 language=jpn
sets the first audio track (again counting from 0…) to Japanese; the second metadata option sets the next audio track to English. -c:v copy
specifies that the video codec should be copied directly (i.e. don’t re-encode – remove this if you DO need to re-encode)-c:a copy
specifies that the audio codec should be copied directly (i.e. don’t re-encode – remove this if you DO need to re-encode)output.mp4
– finally, list the name of the file you want the result written into.
See documentation here: https://ffmpeg.org/ffmpeg.html
If you need another language in the future, I think the language abbreviations are the three letter codes from here: https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes – but I’m not certain on that.
- runs
You can just use MKVToolNix to add the second track to the MKV file after rendering, it’s still another step but doesn’t require re-encoding.
If you’re just trying to multiplex tracks and not actually edit the video, I’d recommend doing it entirely with MKVToolNix and skipping Kdenlive for this use. I’ve done this previously to combine a subbed video and a dubbed one into one file, you can offset or stretch the audio if needed as well.
Not rendering. Muxing, which is short for multiplexing. Lots of software can do this, including MKVToolNix, ffmpeg, and GPAC/MP4Box. If you’re also encoding the video, Handbrake could do the job.