0

For one file I know I can (being my video and sub files in the same directory):

mkvmerge -o output-file.mkv --default-track 0 --language 0:es subtitle-file.ass video-file.mkv

But how can I do the same for 50 files. My video and subtitle files name are the same:

video-1.mkv
video-2.mkv
video-3.mkv
video-1.ass
video-2.ass
video-3.ass

And my output file should be something like video-1-sub-mkv, video-2-sub-mkv, etc.

GhostOrder
  • 157
  • 1
  • 7

1 Answers1

2

If each XYZ.mkv has a corresponding XYZ.ass, it's possible to use a for loop:

for i in *.mkv; do
    if [ -f "${i%.*}".ass ] && [ ! -e "${i%.*}"-sub.mkv ]; then
        mkvmerge -o "${i%.*}"-sub.mkv "$i" --default-track 0 --language 0:es "${i%.*}".ass
    fi
done
  • Note: I did rearrange the order of your input files, so that the ass track is added after tracks from the mkv
guest
  • 2,134
  • 4
  • 11