【问题标题】:FFmpeg remove subtitles from file "if exists"FFmpeg 从文件“如果存在”中删除字幕
【发布时间】: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

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

【问题讨论】:

    标签: ffmpeg subtitle


    【解决方案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 无法就地编辑现有文件。
    • 输出文件不能与输入相同;必须不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 2013-04-16
    • 1970-01-01
    • 2015-02-04
    • 2016-03-01
    • 2015-10-08
    相关资源
    最近更新 更多