![无需“流式传输/重新混合”即可从媒体文件中删除嵌入的字幕流](https://linux22.com/image/1629792/%E6%97%A0%E9%9C%80%E2%80%9C%E6%B5%81%E5%BC%8F%E4%BC%A0%E8%BE%93%2F%E9%87%8D%E6%96%B0%E6%B7%B7%E5%90%88%E2%80%9D%E5%8D%B3%E5%8F%AF%E4%BB%8E%E5%AA%92%E4%BD%93%E6%96%87%E4%BB%B6%E4%B8%AD%E5%88%A0%E9%99%A4%E5%B5%8C%E5%85%A5%E7%9A%84%E5%AD%97%E5%B9%95%E6%B5%81.png)
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