FFmpeg 从文件中删除字幕 "if exists"

FFmpeg remove subtitles from file "if exists"

我在一个文件夹中有一堆 mp4 文件,其中一些有嵌入式字幕,我想删除它们(从文件中删除字幕),但问题是有些文件没有字幕所以我在 for 循环中寻找一些 if 语句:

for n in *.mp4; do ffmpeg -i n -map 0 -map -0:s -c copy n; done

此命令适用于所有文件,但我只需要为有字幕的文件执行它。

首先测试是否存在字幕,然后执行remux。

for n in *.mp4; do ffmpeg -i "$n" -map 0:s -c copy -f null - && ffmpeg -i "$n" -map 0 -map -0:s -c copy "out_$n"; done