FFMPEG 运行视频过滤器并仅复制 1 个字幕流

FFMPEG 运行视频过滤器并仅复制 1 个字幕流

我有.mkv1 个视频流、2 个音频流和 12 个字幕轨道。

我想把它变成灰度,只需使用第一个音轨,并使用eng字幕轨道6(根据ffmpeg -i此标记为流0:11)

我正在运行一个过滤器将视频转换为灰度(取自ffmpeg文档),效果很好,默认情况下它会选择正确的音频流,所以我很好,但它似乎也在选择第一个字幕轨道,这不是我想要的字幕轨道。

网上有关字幕的主题往往会映射所有流来完成此操作,或者他们谈论导入字幕,这些我都不想要,但即使我尝试映射所有字幕轨道,我也会收到一条错误消息,指出过滤和流复制不能一起使用。

我正在运行的命令:

$ ffmpeg -i color.mkv -vf colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3 \
    -c:a copy grey.mkv

我已经尝试过使用 c:s 的各种变体(甚至不确定这是否是调用字幕轨道的正确方法),但我得到的结果往往比我已经拥有的结果更糟糕(当我让它们运行它们时)似乎失踪了,所以他们甚至不能玩)。

我已经搜索了 ffmpeg 文档,但要么不存在这个特定实例,要么在它出现时我不理解它。

答案1

用这个:

$ ffmpeg -i color.mkv -vf format=gray -map 0:v -map 0:a:0 -map 0:11 \
    -c:a copy -c:s copy grey.mkv

map要包含的轨道的 s 集。withc说明符设置要复制这些指定流的编解码器操作。

相关内容