Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用mkvmerge检查音频和视频曲目的数量_Bash_Scripting - Fatal编程技术网

Bash 使用mkvmerge检查音频和视频曲目的数量

Bash 使用mkvmerge检查音频和视频曲目的数量,bash,scripting,Bash,Scripting,我写了这个小剧本: subliminal -l en -- *.mp4 subliminal -l es -- *.mp4 for i in *".mp4"; do i=${i%.mp4} mkvmerge -o "$i.mkv" \ --language 1:eng -a 1 -d 0 -S -T "$i.mp4" \ --language 0:eng -s 0 -D -A -T "$i.en.srt" \ --language 0:spa -s 0 -D -A

我写了这个小剧本:

subliminal -l en  -- *.mp4
subliminal -l es  -- *.mp4

for i in *".mp4"; do
i=${i%.mp4} 
mkvmerge -o "$i.mkv" \
    --language 1:eng -a 1 -d 0 -S -T "$i.mp4" \
    --language 0:eng -s 0 -D -A -T "$i.en.srt" \
    --language 0:spa -s 0 -D -A -T "$i.es.srt" \
    --track-order 0:0,0:1,1:0,2:0
done
它使用subliminal将英语和西班牙语字幕下载到一个包含电视节目.mp4章节的文件夹中。 之后,mkvmerge将把所有这些文件.mp4和.srt放在一个.mkv文件中

问题是,有时.mp4文件的音频轨迹不在位置1-A1,视频轨迹也不在位置0-D0

我的问题是如何在bash中实现cases?例如,首先检查.mp4文件,如果音频和视频曲目分别为1和0,请执行。。。 但是,如果音频和视频曲目分别为0和1,请执行其他操作


关于

你能举个例子,以mkvinfo为例,说明位置问题吗