我有.mkv
1 个视频流、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
说明符设置要复制这些指定流的编解码器操作。