对于一个文件,我知道我可以(我的视频和子文件位于同一目录中):
mkvmerge -o output-file.mkv --default-track 0 --language 0:es subtitle-file.ass video-file.mkv
但我怎样才能对 50 个文件做同样的事情呢?我的视频和字幕文件名相同:
视频-1.mkv
视频-2.mkv
视频-3.mkv
视频-1.ass
视频-2.ass
视频-3.ass
我的输出文件应该类似于 video-1-sub-mkv、video-2-sub-mkv 等。
答案1
如果每个XYZ.mkv
都有对应的XYZ.ass
,则可以使用for
循环:
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
- 注意:我确实重新排列了输入文件的顺序,以便
ass
在来自mkv