相关文章推荐
空虚的啄木鸟  ·  SRS长时间推流后内存增长异常问题处理-呱牛笔记·  2 月前    · 
爽快的哑铃  ·  GitHub - ...·  2 月前    · 
讲道义的小熊猫  ·  直播平台如何在香港服务器上利用 ...·  2 月前    · 
冷冷的上铺  ·  英伟达概念股【中际旭创】2023年以来股价暴 ...·  1 年前    · 
深情的水桶  ·  卡魔拉 - 萌娘百科 万物皆可萌的百科全书·  1 年前    · 
直爽的跑步机  ·  读万卷书,“骑”万里路·  2 年前    · 
瘦瘦的人字拖  ·  沈阳地铁第四轮规划招标,多条线齐发,交通再迎 ...·  3 年前    · 
性感的芒果  ·  《困在时间里的父亲》:以阿尔茨海默症患者之眼 ...·  3 年前    · 
Code  ›  短视频字幕提取合成超简单,掌握ffmpeg这个小技巧开发者社区
软件 mp4 社区功能 ffmpeg
https://cloud.tencent.com/developer/article/1638403
痴情的火龙果
3 年前
作者头像
程序员小助手
0 篇文章

短视频字幕提取合成超简单,掌握ffmpeg这个小技巧

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 程序员小助手 > 正文

短视频字幕提取合成超简单,掌握ffmpeg这个小技巧

发布 于 2020-06-04 10:49:32
2.3K 0
举报

引言

现在的短视频非常流行。大多数情况下我们会开着音量或者戴着耳机收看视频。但有些时候不是太方便,如果视频能有一个字幕就好了。

好消息是,字幕制作的软件很专业很好用,而且上手超级简单。

坏消息是,如何把字幕合成到视频音频文件内?或者把字幕文件从视频文件提取出来,都需要不少工具!

我们今天讲解使用 ffmpeg 解决大家的这个痛点。

学习时间

1 - 软编码

MP4支持流式文本格式的字幕,但是在播放器和设备中,回放功能的支持并不统一。使用流处理进行语音频道的复制,基本的用法结构如下:

ffmpeg -i input.mkv -c copy -c:s mov_text output.mp4

再深入一步,使用流式处理并复制音频和视频流,将基于文本的字幕输入流,可以是 srt ass vtt 等字幕文件,转换为流式文本,并设置前两个字幕流的语言格式,需要这样写指令:

ffmpeg -i input.mkv -map 0 -c copy -c:s mov_text -metadata:s:s:0 language=eng -metadata:s:s:1 language=ipk output.mp4

注意到上面我们使用 -c copy 选项,把音视频流整体拷贝出来了。如果想要使用指定的编码器,比如 MP4 格式使用的 H.264,可以这样写:

ffmpeg -i input.mkv -map 0 -c:v libx264 -c:a aac -c:s mov_text -metadata:s:s:0 language=eng -metadata:s:s:1 language=ipk output.mp4

上面这个指令中 -map 0 我们改造一下,指定使用第一个视频流,第二个音频流,第三个字母文本流,需要这样写:

ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 -map 0:s:2 -c:v libx264 -c:a aac -c:s mov_text -metadata:s:s:0 language=eng output.mp4

2 - 硬编码

首先说一下 基于文本的字幕输入 。我们使用ffmpeg 的 subtitle filter 过滤器处理字幕输入文件,格式通常是 ass srt vtt 等。这样的编码方式,比上一节中使用的软编码方式要慢的多,因为进行了重新编码。

对音频文件流拷贝,并使用 subtitle 过滤器,基本用法如下:

ffmpeg -i input.mkv -filter_complex "subtitles=input.mkv" -c:a copy output.mp4

输入流当然也可以任意指定,比如使用第三路视频流,第五路字幕流,第一路音频流,需要这样改写指令:

ffmpeg -i input.mkv -filter_complex "[0:v:2]subtitles=input.mkv:si=4[v]" -map "[v]" -map 0:a:0 -c:a copy output.mp4

如果有字幕组,专门给音视频文件配上字幕。像国内比较常见的对国外影视作品的引进,需要翻译人员制作字幕,那么翻译组生成字幕文件后,如何合并入音视频文件内呢?

只要像下面这么写:

ffmpeg -i input.mp4 -filter_complex "subtitles=your-subtitles-file.srt" -c:a copy output.mp4

还有一种处理方式,是基 于图像的字幕输入 ,使用覆写的方式。比如,我们把第四路字幕流,覆盖到第二路视频流上,同时拷贝第七路音频流。这时候需要 ffmpeg 的 overlay filter 过滤器,这样写指令:

ffmpeg -i input.mkv -filter_complex "[0:v:1][0:s:3]overlay[v]" -map "[v]" -map 0:a:6 -c:a copy output.mp4

写在最后

通过上述几个例子,大家应该对 map 选项,v,a,s 流通道有深刻的认识了吧。

找一段高清完备的音视频,尝试着从中提取或合成新的文件,实践起来吧。

点击展开阅读全文
文章分享自微信公众号:
程序员小助手
程序员小助手

扫码关注公众号

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

原始发表:2020-05-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

视频处理
登录 后参与评论
关于作者
0
文章
0
累计阅读量
0
获赞
前往专栏
关注 - 腾讯云 开发者 公众号
将获得
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
扫码关注腾讯云开发者
NEW
切换旧版
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档
 
推荐文章
空虚的啄木鸟  ·  SRS长时间推流后内存增长异常问题处理-呱牛笔记
2 月前
爽快的哑铃  ·  GitHub - ZhengfengRao/- · GitHub
2 月前
讲道义的小熊猫  ·  直播平台如何在香港服务器上利用 FFmpeg GPU 转码,降低高并发推流的 CPU 占用(含完整实操与优化细节)- A5数据
2 月前
冷冷的上铺  ·  英伟达概念股【中际旭创】2023年以来股价暴拉520.25%!再添喜讯!中报业绩继续狂飙!
1 年前
深情的水桶  ·  卡魔拉 - 萌娘百科 万物皆可萌的百科全书
1 年前
直爽的跑步机  ·  读万卷书,“骑”万里路
2 年前
瘦瘦的人字拖  ·  沈阳地铁第四轮规划招标,多条线齐发,交通再迎重磅利好 - 知乎
3 年前
性感的芒果  ·  《困在时间里的父亲》:以阿尔茨海默症患者之眼看世界 - 21财经
3 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号