1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > 短视频 > 正文

短视频

揭秘!剪映字幕是如何转成SRT?

1987web2023-06-24短视频447
俗话说的好,剪映字幕一时爽,后期修改烦恼多。剪辑师:老板,视频字幕添加完毕,请审阅。

俗话说的好,剪映字幕一时爽,后期修改烦恼多。

剪辑师:老板,视频字幕添加完毕,请审阅。

老板:整体感觉不错,需要删两个镜头。

剪辑师:字幕已经添加,不能换音乐?

老板:为什么?

剪辑师:因为那样需要重新加字幕。

老板:为什么要重新加?

剪辑师:。。。

我能跟老板说,我偷懒用剪映加的字幕,剪映字幕导不出来吗?

神呐救救我吧。(烧香念咒拜佛。。。)

神器降临,软件出场。

是不是很神奇,是不是黑科技,哈哈,但是对于一个码农摄影师来说,so easy。

今天,我来揭秘一下剪映是如何存字幕的,又是如何转成SRT字幕文件的。

1、什么是SRT文件

先介绍一下什么是SRT文件,度娘解释如下:

说人话,就是SRT文件是存放字幕文本的文件,后缀为.srt,早期用于给DVD影片提供各种语言的字幕。SRT文件的格式非常简单明了,一看就明白了:

它包括3部分内容:序号,时间段和字幕文本。

其中,时间段格式为:时:分:秒,毫秒

2、剪映是如何存储字幕的?

弄懂了SRT,下面就要弄清楚剪映是如何存储字幕的。

简单的说,剪映是通过json文件来存储所有剪辑信息的,包括字幕。

我天,那什么是json呢?你随便问个码农,估计都懂,但不是码农咋整?

用人话说就是,json是一种格式化、结构化语言,它用于替代xml,主要存储和传输数据。

如果再理解不了,你就把json当做一个数据库,只不过是用文本格式存储的,这样是不是好理解了。

如果还不懂,那咱们就一起看看剪映的json文件。

剪映草稿根目录

剪映草稿都会存在这个目录下:

C:\Users\Administrator\AppData\Local\JianyingPro\User Data\Projects\com.lveditor.draft

root_draft_meta_info.json

这就是json,结构化文本语言,用于存储剪映草稿信息。

是不是晕了,先别着急,它跟剪映草稿列表是对应的:

这个json文件记录了,一共有两个草稿,第一个草稿名叫SRT字幕格式,另一个叫我的名字叫草草。他们的存储目录和ID标识等等信息。剪映软件就是靠这些信息来识别和处理视频剪辑的。

一个草稿

剪映的一个草稿会有一个ID,例如ID=90DD631C-25EC-47af-9837-2AEB4881FAF2,草稿目录也会以此命名。

大家需要注意的是draft_content.json,剪映用这个文件存储所有视频剪辑信息。

draft_content.json

咱们的目标是找字幕,所以其他参数不多介绍,直奔主题。

剪映将字幕存储在materials→texts节点下:

跟剪映草稿的内容一一对应:

字幕的时间存储在tracks节点下:

说明这个草稿有一个视频轨道,两个字幕轨道,我们的目标就是字幕轨道,即type=text的轨道。

在tracks→1→segments节点下,存储的3个字幕,说明第一字幕轨道下有3个字幕:

通过material_id,就可以在materials→texts下找到对应的字幕:

一个字幕为什么要存两个地方呢?因为texts下存储的是字幕文本,而tracks下存储的是字幕的时间:

target_timerange节点,存储的就是字幕的开始时间和持续时间,单位都是毫秒,当然需要换算成时分秒。为什么不存储开始时间和截止时间,而要存储持续时间呢?因为帧率不同,截止时间不同。

到这里我们就已经弄明白了,剪映是如何存储字幕的,只要把剪映中的字幕找出来,然后按照SRT文件格式导出就可以了。

如果有兴趣,你也可以自己做一个字幕导出工具,就像这样: