ffmpeg 合成字幕_ffmpeg subtitles-程序员宅基地

技术标签: ffmpeg  视频编解码  

主思路

使用简单滤镜里的 subtitles挂上字幕

详情

一般常用字幕格式为 srt和 ass, ass 的格式自带修饰描述,比如颜色字体,位置等

ffmpeg就要求有filer: subtitles, drawtext,这样才能合成字幕 ,如果自行编译就要注意这点,一般下载的二进制执行文件应该都包括了。

参数 -vf 就是简单video filter的意思,用于一个视频与一个字幕合成。后面的subtitles="input.ass" 就是使用subtitles滤镜,

参数 -c:v 是指输出什么格式的视频,音频部分则没动

./ffmpeg -i "input.mp4" -vf subtitles="input.ass" -c:v libx264 -y "target/test.mp4"

字幕格式一般是两种:srt和 ass。

srt 格式很简单,基本上就是时间和文字,也可能扩展html,这个并不是必须的。

1
00:02:16,612 --> 00:02:19,376
Senator, we're making
our final approach into Coruscant.

2
00:02:19,482 --> 00:02:21,609
Very good, Lieutenant.

3
00:03:13,336 --> 00:03:15,167
We made it.

ass 格式就非常复杂,基本上不建议手写。

[Script Info]
; Script generated by Aegisub
; http://www.aegisub.org
Title: Neon Genesis Evangelion - Episode 26 (neutral Spanish)
Original Script: RoRo
Script Updated By: version 2.8.01
ScriptType: v4.00+
Collisions: Normal
PlayResY: 600
PlayDepth: 0
Timer: 100,0000
Video Aspect Ratio: 0
Video Zoom: 6
Video Position: 0
 
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: DefaultVCD, Arial,28,&H00B4FCFC,&H00B4FCFC,&H00000008,&H80000008,-1,0,0,0,100,100,0.00,0.00,1,1.00,2.00,2,30,30,30,0
 
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.18,0:00:06.85,DefaultVCD, NTP,0000,0000,0000,,{\pos(400,570)}Like an Angel with pity on nobody\NThe second line in subtitle

参考

https://en.wikipedia.org/wiki/SubStation_Alpha

ASS字幕格式规范 - 简书

https://en.wikipedia.org/wiki/SubRip

FFmpeg Filters Documentation

FFmpeg Filters Documentation

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_66886617/article/details/123828529

智能推荐

Python 安装 MySQL-python ImportError: No module named 'ConfigParser'_importerror: no module named configparser-程序员宅基地

文章浏览阅读5k次。转载于:http://blog.csdn.net/kk185800961/article/details/53296822系统: CentOS-6.4-x86_64 Python : Python 3.4.5 和 Python 3.5.2 安装 MySQL-python ,结果出错:ImportError: No module named 'Co_importerror: no module named configparser

Invalid options object. Dev Server has been initialized using an options object that does not match-程序员宅基地

文章浏览阅读2.3k次。Invalid options object. Dev Server has been initialized using an options object that does not match_invalid options object. dev server has been initialized using an options obj

java web 安全_常见的JavaWeb安全问题及修复-程序员宅基地

文章浏览阅读62次。1.SQL注入:程序向后台数据库传递SQL时,用户提交的数据直接拼接到SQL语句中并执行,从而导入SQL注入攻击。字符型注入:黑色部分为拼接的问题参数select * from t_user where name='test' or '1' = '1';数字型注入:黑色部分为拼接的问题参数(对于强类型语言,字符串转int类型会抛异常。所以这种注入方式一般出现在php等弱类型语言上)select *..._java 安全检测 没有身份cookie依旧可以删除信息 如何修复

剑指 Offer 42. 连续子数组的最大和_连续子数组 [4,-1,2,1] 的和最大,为 6-程序员宅基地

文章浏览阅读119次。剑指 Offer 42. 连续子数组的最大和难度简单输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示: 1 <=arr.length <= 10^5 -100 <= arr[i] <= 100 注意:本题与主站 ._连续子数组 [4,-1,2,1] 的和最大,为 6

运维随录实战(5)之centos搭建jenkins_centos 部署jenkins-程序员宅基地

文章浏览阅读1.2k次,点赞28次,收藏26次。注:jenkins的数据一般在.jenkins所在目录下,即 如果你首次运行了jenkins.war并且已经登录进行下载安装插件了,但是由于插件下载安装出现了问题,或者其他原因,你想要重装jenkins,除了停止jenkins.war程序并杀掉相应程序外,你还需要将.jenkins整个目录数据删掉,这样你在重新启动程序后才会重新进入到下载安装插件的环节。注:jenkins版本与jdk版本有一定的对应关系,版本不对应可能导致后面虽然安装成功了,但是使用会出问题的情况。jenkins安装版本:2.414.3。_centos 部署jenkins

记一次HBase的STUCK Region-In-Transition问题-程序员宅基地

文章浏览阅读2.9k次。HBase STUCK Region-In-Transition问题产生原因HBase2.x的Procedure是记录了HBase的各种操作,比如创建表、删除表、禁用表。当他出现不一致的时候可能就会导致STUCK Region-In-Transition。解决方案HBase2.x已经有了相当先进的修复工具hbck2,但是这个修复工具试基于HbckService类来完成的,而HBase2.x......_stuck region-in-transition

随便推点

Java中9种常见的CMS GC问题分析与解决-程序员宅基地

文章浏览阅读789次。Java中9种常见的CMS GC问题分析与解决_9种常见的cms gc问题分析与解决

SIT75176B:3.0~5.5V 供电,32 节点,10Mbps 半双工 RS485/RS422 收发器_sit75176bdr-程序员宅基地

文章浏览阅读420次,点赞8次,收藏8次。包括一个驱动器和一个接收器,两者均可独立使能与关闭。动器与接收器均输出高阻态。在电噪声环境中的数据传输速率可达到。、半双工、低功耗,功能完全满足。)、限流保护、过压保护等功。集成的瞬变电压抵制功能;个节点同时连接到总线。驱动器短路输出保护;接收器开路失效保护;具有较强的抗噪能力;_sit75176bdr

「ACC自适应协同控制的滑膜控制算法及仿真结果分析」_自适应巡航 滑模算法-程序员宅基地

文章浏览阅读164次,点赞2次,收藏2次。通过介绍ACC的算法结构、控制思想以及仿真结果分析,展示了滑膜控制的优越性,并提供了相关资料供学习者参考。同时,作者本人还对滑膜控制进行了总结,对于滑膜控制的学习者来说,这是一份非常有价值的资料。5辆车组成的编队实现ACC自适应协同控制,通过考虑前车的加速度和距离,实现自适应巡航控制,仿真平台基于carsim/Simulink实现。文件包含acc巡航建模资料和滑膜控制的资料,非常的详细,比一般只给文件仿真详细多啦,还有我本人滑膜控制的总结,对于滑膜控制的学习很有帮助。并且在实车试验很方便。_自适应巡航 滑模算法

JavaWeb路径和编码_java 路径参数编码 方法-程序员宅基地

文章浏览阅读246次。JavaWeb路径和编码是非常重要的概念,开发人员必须熟练掌握相关知识和使用方法。本文对JavaWeb路径和编码进行了详细的介绍,并提供了示例代码,希望能够帮助读者更好地理解和运用这些知识。在实际开发中,开发人员应该根据具体情况合理地使用路径和编码,以确保Web应用程序能够顺利地运行,并且数据能够以正确的格式传输。_java 路径参数编码 方法

pom文件project报错_pom.xml文件报错-程序员宅基地

文章浏览阅读971次。报错信息:DescriptionResourcePathLocationType1 problem was encountered while building the effective model for org.springframework.boot:spring-boot-maven-plugin:1.5.15.RELEASE[FATAL] Non-parseable POM C:\Us..._non-parseable pom d:\soft\eclipse\ziliao\repo\com\fasterxml\jackson\jackson-

当小程序上拉加载时,页面上拉加载一次,滚动一次到顶部(同时有水平滑动和竖直滑动)_scroll-view 上滑只执行一次-程序员宅基地

文章浏览阅读298次。<scroll-view scroll-x="true">内容</scroll-view> js onReachBottom() { this.getList() }, getList(){ let res=['内容'] this.data.list.concat(res) this.setData({ list:this.data.list.concat(res) })..._scroll-view 上滑只执行一次

推荐文章

热门文章

相关标签