无需“流式传输/重新混合”即可从媒体文件中删除嵌入的字幕流

无需“流式传输/重新混合”即可从媒体文件中删除嵌入的字幕流

这篇相关文章给出了解决方案:

mkvmerge -o output.mkv input.mkv -S # remove all subtitle tracks

另一篇相关文章给出了解决方案:

ffmpeg -i input.mp4 -c:v copy -c:a copy -map_metadata 0:g -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a -movflags +faststart -threads 8 -sn removed.mp4

但是,这两种解决方案都需要将所有视频/音频轨道“流式传输”到另一个文件,而跳过添加字幕流。是否可以简单地从电影文件中删除字幕轨道,而无需流式传输任何内容?

流式传输视频/音频轨道需要大量资源和时间,而且基本上就是重新混录。我只想删除嵌入的字幕,不做任何其他操作...通常它是一个.mkv文件,但也可能是其他格式(例如.mp4)。

答案1

-sn选项正是执行此操作。

https://ffmpeg.org/ffmpeg.html#Subtitle-options

-sn (input/output)
...
作为输出选项,禁用字幕录制,即自动选择或映射任何字幕流。要获得完全手动控制,请参阅 -map 选项。

例子:

ffmpeg -i video.mkv -c copy -sn video.sn.mkv

相关内容