首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用ffmpeg添加文本字幕?

如何使用ffmpeg添加文本字幕?
EN

Stack Overflow用户
提问于 2018-05-25 05:17:32
回答 2查看 0关注 0票数 0

我试图使用ffmpeg向.mp4容器添加文本字幕:

代码语言:txt
复制
ffmpeg -i input.mp4 -i input.srt -map 0.0 -map 0.1 -map 1.0 output.mp4

当我试图运行这一行时,它会给我一个错误:

流映射的nmber必须匹配输出流的数目。

如果我试图将MP4更改为MKV(尽管MP4支持文本字幕),如下所示:

代码语言:txt
复制
ffmpeg -i input.mp4 -i input.srt -map 0.0 -map 0.1 -map 1.0 output.mkv

它正确地映射了流,但是给出了一个错误:

输出流#0.2找不到编码器(编解码id 94210)

当我写

代码语言:txt
复制
ffmpeg -codecs

我可以看到SRT编解码器被支持作为解码器和编码器,但是我不确定MP4和MKV子编码使用什么,以及我是需要打开它还是单独编译它。

EN

回答 2

Stack Overflow用户

发布于 2018-05-25 13:20:59

代码语言:javascript
复制
ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4

-vf subtitles=infile.srt 将无法使用 -c copy

-c copy -c:s mov_text顺序很重要。你在告诉FFmpeg:

  1. 视频:复制,音频:复制,副标题:复制
  2. 字幕:mov_text

如果你反转它们,你告诉FFmpeg:

  1. 字幕:mov_text
  2. 视频:复制,音频:复制,副标题:复制

或者,可以按任何顺序使用-c:v copy -c:a copy -c:s mov_text

票数 0
EN

Stack Overflow用户

发布于 2018-05-25 14:29:10

使用libass库(确保你的ffmpeg install在配置--enable-libass中有库)。

首先将字幕转换为.ass格式:

代码语言:javascript
复制
ffmpeg -i subtitles.srt subtitles.ass

然后使用视频过滤器添加它们:

代码语言:javascript
复制
ffmpeg -i mymovie.mp4 -vf ass=subtitles.ass mysubtitledmovie.mp4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004105

复制
相关文章

相似问题

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