Analise a saída de mkvmerge -I
para obter os IDs de faixas desejados e passe o resultado como uma lista separada por vírgulas com a opção --subtitle-tracks
( -s
).
Para selecionar somente legendas SRT usando sed
:
for file in "$@"*.mkv; do
subs=$(mkvmerge -I "$file" | sed -ne '/^Track ID [0-9]*: subtitles (SubRip\/SRT).*/ { s/^[^0-9]*\([0-9]*\):.*//;H }; $ { g;s/[^0-9]/,/g;s/^,//;p }')
if [[ -n $subs ]]; then subs="-s $subs"; else subs=-S; fi
mkvmerge $subs -o "${file%.mkv}".srt-only.mkv "$file"
done
Da mesma forma, para selecionar apenas SRT em inglês:
for file in "$@"*.mkv; do
subs=$(mkvmerge -I "$file" | sed -ne '/^Track ID [0-9]*: subtitles (SubRip\/SRT).* language:eng.*/ { s/^[^0-9]*\([0-9]*\):.*//;H }; $ { g;s/[^0-9]/,/g;s/^,//;p }')
if [[ -n $subs ]]; then subs="-s $subs"; else subs=-S; fi
mkvmerge $subs -o "${file%.mkv}".eng-srt-only.mkv "$file"
done
Altere language:eng
para selecionar outro idioma.