爱剪辑怎么批量加字幕

Python012

爱剪辑怎么批量加字幕,第1张

百度搜索:威力导演TCG—很高兴为您解答!

暂时不支持批量添加字幕的,但也有办法的:

经过试验后字幕格式

中文字体用冬青黑传统中文W3

字体为白色,阴影为4,阴影颜色为rgb(63,63,63),无描边

使用爱剪辑加字幕的经验

因为每次爱剪辑新增字幕后格式都要重新调,所以不妨复制已经调整好格式的字幕然后调整时间轴到所需加字幕处粘贴即可。

每次加字幕时均会在视频前加上一个片头,并吃掉一部分结尾,所以在爱剪辑结尾加上一分钟左右的黑屏,最后再用Premiere减掉即可。

人物对话字幕因为出现特效时间长、消失特效时间长不能为零,均设为0.01秒

确定字幕时间

用Adobe Edition依照波形来精确确定时间精确到0.01秒

如果说话之间没有明显停顿,只要确定两句话之间的一个时间点作为这句话的结束和下句话的开始即可

打字效果字幕

确定在时间轴上每句话的开始、结束时间,依次确定字幕逐字出现的特效时长(后者减前者)

确定所有字幕淡出的时间轴时间,并参照时间轴上每句话的结束时间确定字幕停留的特效时间长(前者减后者)

所有字幕的消失特效时间长均相同,1s以下即可

一句话中即使视频里面为一行如果有明显停顿的仍拆分为两个字幕

使用程序批量加人物对话字幕的方法

确定工程文件中的字幕格式

对于人物说话的字幕,由于格式比较固定(字体格式均相同、位置均处于屏幕下方),又发现爱剪辑的工程文件为文本文件,里面的字幕参数直接可以修改,工程文件中字幕为"TextList":[{字幕1},{字幕2}],且每个字幕中只有BeginTime、EndTime、StayEffTimeLen、Transform、ZOrder这些参数要修改:

BeginTime=时间轴上开始秒数*10000000

EndTime=时间轴上结束秒数*10000000

StayEffTimeLen=EndTime-BeginTime-0.02*10000000(0.02秒为出现特效时间长加上消失特效时间长)

Transform确定字幕的位置和其它一些信息,我暂时没看到什么规律

ZOrder为字幕的序号,第一个为-1073741824,之后每个依次加1

将字幕信息存为文本文件

将字幕的信息输入excel后得到如下图

用Python批量生成所有字幕的代码

先在爱剪辑中调整好一句字幕的格式,然后保存成工程文件后从中提取字幕的代码,并依次用Python生成所有字幕的代码

Python程序的作用是依照调整好的字幕格式,根据excel中其他字幕的开始时间、结束时间和字幕本文来生成所有字幕的代码,由于我在Transform参数中没看到什么规律,所有字幕的transform参数均设置相同,所以最终还要调整下字幕的位置

Python代码示例如下(倒数第四行依据工程文件中的字幕代码调整即可,一般来说先设置好一句字幕的格式,然后只需修改下面代码中第四行中"FontSize"和"Transform"的内容)

#!user/bin/env python3

# -*- coding: gbk -*-

BeginTime,EndTime,StayEffTimeLen,Text=[],[],[],[]

outcome=""

lines = open('001.csv')

num=-1073741825

for line in lines:

    BeginTime.append( line.split(',')[0])

    EndTime.append( line.split(',')[1])

    StayEffTimeLen.append( line.split(',')[2])

    Text.append( line.split(',')[3].rstrip())

for i in range(1,len(BeginTime)):

    num+=1

    outcome+='{"Alignment":1,"BeginTime":'+str(BeginTime[i])+',"CharSpacing":1,"Effect":{"InEffRowSpaceTime":0,"InEffTimeLen":100000,"InEffWordSpaceTime":0,"InEffectName":"FadeText","Name":"TextCombination","OutEffRowSpaceTime":0,"OutEffTimeLen":100000,"OutEffWordSpaceTime":0,"OutEffectName":"FadeText","StayEffRowSpaceTime":0,"StayEffTimeLen":'+str(StayEffTimeLen[i])+',"StayEffWordSpaceTime":0,"StayEffectName":"ImageStaticLinear"},"EndTime":'+str(EndTime[i])+',"IsCreateBorderTexture":false,"IsCreateShadowTexture":false,"IsRightToLeft":false,"IsVertical":false,"LayoutType":1,"RowSpacing":0,"SplitType":4,"Style":[{"Alpha":255,"BorderColor":[255,0,0,0],"BorderSize":0,"FontName":"H-冬青黑体传统中文-W3","FontSize":70,"IsBold":false,"IsItalic":false,"IsLucencyText":false,"IsShadowSuccessive":false,"IsStrikeout":false,"IsUnderline":false,"IsVertical":false,"ShadowColor":[255,63,63,63],"ShadowOffsetX":4,"ShadowOffsetY":4,"TextBGImagePath":"","TextColor":[255,255,255,255],"TextColorMode":0,"TextGradientBeginColor":[255,63,63,63],"TextGradientColorAngle":90,"TextGradientEndColor":[255,0,0,0]}],"Text":"'+Text[i]+'","TextureUnitSpacing":1,"Transform":[1,0,0,0,0.99999994039535522,0,693.99993896484375,951.99993896484375,1],"WordSpacing":1,"ZOrder":'+str(num)+'},'

outcome=outcome[0:len(outcome)-1]

f=open('file','w')

f.write(outcome)

将用生成的代码替换工程文件中的字幕代码

用python生成的file文件中的内容替换原始工程文件中"TextList"这个list里面的内容,保存工程文件,然后所有字幕就批量生成了,最后只需要调整字幕位置即可(在爱剪辑中点击字幕中字体设置中的位置,选“中下”位置即可)

字符串的意思。

srt的全称是SubRip Text,srt文件打开方式srt文件可以使用系统自带的文本处理器来打开,比如notepad.exe,write.exe,word等文件处理软件。

比较流行的文本字幕有srt、smi、ssa,因为是文本格式,所以就比较小了,一般大不过百来k。其中srt文本字幕最为流行,配合上.style文件还能让srt自带一些字体上的特效等。几种文本字幕可以互相转换。文本字幕一般通过对图形字幕进行OCR或者手工制作生成,OCR英文字幕不难,毕竟英文识别难度小嘛,OCR中文难度就大一些,所用的软件个头也不小ubOCR,30多MB。

要显示这种字幕可以装专门的字幕软件如VOBSUB,在暴风影音软件中已经集成了这个。另外某些播放软件内置字幕显示功能就无需再装VOBSUB了,像KMPLAYER,迅雷看看,快播。需要注意的是字幕文件和你的AVI文件必须文件名相同,比如aaa.avi,必须对应aaa.idx,aaa.sub或aaa.srt才能正确显示字幕 。添加字幕时,先用播放器打开视频文件,然后再打开SRT文件,这样字幕就添加到视频中了。

srt的全称是SubRip Text。

.srt文件打开方式,srt文件可以使用系统自带的文本处理器来打开,notepad.exe,等文件处理软件。