• @e0qdk@reddthat.com
    link
    fedilink
    116 months ago

    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.