FFmpeg 从文件“如果存在”中删除字幕
Posted
技术标签:
【中文标题】FFmpeg 从文件“如果存在”中删除字幕【英文标题】:FFmpeg remove subtitles from file "if exists" 【发布时间】:2020-05-19 10:56:33 【问题描述】:我在一个文件夹中有一堆 mp4 文件,其中一些嵌入了字幕,我想删除它们(从文件中删除字幕),但问题是有些文件没有字幕,所以我正在寻找for 循环中的一些 if 语句:
for n in *.mp4; do ffmpeg -i n -map 0 -map -0:s -c copy n; done
这个命令适用于所有文件,但我只需要对有字幕的文件执行它。
【问题讨论】:
【参考方案1】:首先测试是否存在字幕,然后执行 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
【讨论】:
我不知道为什么我得到“in:没有这样的文件或目录”,即使我将“in”更改为“n”但仍然是同样的错误 我只是想向您展示一个文件的模板。但我现在已经切换到输入到 vars。 如果你看到这个,我如何用输出正确覆盖原始文件?我将“out_$n”更改为“$n”,然后 ffmpeg 要求我接受覆盖,但 ffmpeg 不推荐使用该文件并且不能播放。错误:FFmpg 文件与输入 #0 相同 - 退出 FFmpeg 无法就地编辑现有文件。 输出文件不能与输入相同;必须不同。以上是关于FFmpeg 从文件“如果存在”中删除字幕的主要内容,如果未能解决你的问题,请参考以下文章
android 中使用ffmpeg,将视频加入字幕,用ass文件,在PC上可以,但在Android上一直不行