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