我正在尝试使用FFMpeg将一些包含视频、音频和字幕流的视频文件转换为另一种格式。但是,ffmpeg 抱怨字幕格式 - 它无法解码流。由于我不需要这个字幕流,我想知道如何在转换过程中禁用字幕流解码?
问问题
47067 次
3 回答
67
我终于找到了答案。
有这样的选项-sn
可以禁用从输入流中解码字幕。音频和视频解码也有类似的选项:-an
和-vn
分别。
事实证明,还有另一种方法可以实现这一目标。可以使用该-map
选项来选择要解码哪些流。-map
因此,在选项中省略字幕流就可以了。
例如,如果一个电影文件有 3 个流:
- 流 0:视频
- 流 1:音频
- 流 2:字幕
FFmpeg 的转换命令可能如下所示:
ffmpeg -i <input file> -sn -vcodec <video codec> -acodec <audio codec> <output file>
或者
ffmpeg -i <input file> -vcodec <video codec> -acodec <audio codec> -map 0:0 -map 0:1 <output file>
前一个命令行取消选择字幕流(可能是全部,如果有的话),而后一个命令行只选择需要解码的流。
于 2012-08-29T09:49:57.970 回答
8
要在不重新编码视频和音频的情况下删除字幕流,最短的命令是:
ffmpeg -i input.mkv -sn -c copy output.mkv
于 2020-06-16T20:03:28.343 回答