首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ffmpeg中禁用字幕解码

如何在ffmpeg中禁用字幕解码
EN

Stack Overflow用户
提问于 2012-08-26 16:27:01
回答 4查看 51.5K关注 0票数 37

我正在尝试使用FFMpeg将一些包含视频、音频和字幕流的视频文件转换成另一种格式。然而,ffmpeg抱怨字幕格式-它不能解码流。由于我不需要这个字幕流,我想知道如何在转换期间禁用字幕流解码?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-29 09:49:57

我终于找到答案了。

还有诸如-sn这样的选项,它禁止输入流中的字幕解码。还有音频和视频解码的类似选项:-an-vn

事实也证明,要做到这一点,还有另外一种方法。可以使用-map选项来选择要解码的流。因此,忽略-map选项中的字幕流就可以完成这项工作。

例如,如果有一个包含3个流的电影文件:

  • 流0:视频
  • 流1:音频
  • 流2:字幕

FFmpeg的转换命令如下所示:

代码语言:javascript
运行
复制
ffmpeg -i <input file> -sn -vcodec <video codec> -acodec <audio codec>  <output file>

代码语言:javascript
运行
复制
ffmpeg -i <input file> -vcodec <video codec> -acodec <audio codec> -map 0:0 -map 0:1  <output file>

前一个命令行取消字幕流(如果有几个的话,可能全部),而后一个命令行只选择需要解码的流。

票数 71
EN

Stack Overflow用户

发布于 2020-06-16 20:03:28

要删除字幕流而不重新编码视频和音频,最短的命令如下:

ffmpeg -i input.mkv -sn -c copy output.mkv

票数 13
EN

Stack Overflow用户

发布于 2020-06-16 21:18:35

使用负映射省略字幕,并保留所有其他内容:

代码语言:javascript
运行
复制
ffmpeg -i input.mkv -map 0 -map -0:s -c copy output.mkv
  • -map 0选择所有流。这是推荐的,因为默认的流选择行为每流类型只选择一个流。
  • -map -0:s是一个否定的映射,它取消了所有字幕流。
  • -c copy支持流拷贝模式,它只允许重互斥,避免了重新编码.
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12131789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档