日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 视频字幕替换_利用python调整srt字幕时间轴

發(fā)布時間:2023/12/19 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 视频字幕替换_利用python调整srt字幕时间轴 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們有時候下載了超高清資源但是沒有合適的字幕,往往由于資源的不同,視頻和字幕會有幾秒鐘的時差,這個時候選擇重新下載視頻顯得十分的麻煩。

批量調(diào)整字幕時間軸就是一個很好的辦法。網(wǎng)上關(guān)于調(diào)整字幕時間軸有很多教程,但是往往要求我們下載安裝一些奇怪的,或者很大的軟件,這顯然是很麻煩的,而且有時也會帶來全家桶。批量調(diào)整字幕時間軸其實(shí)是一個很小的功能,一段python程序就能夠解決。

1.首先新建python文件:****.py

2.將自己的字幕文件重命名為txt文件,然后復(fù)制到python文件同目錄下

3.復(fù)制粘貼程序

# -*- coding:utf-8 -*-

import re,os,time,math,os.path,datetime

#提取時間戳,

def time_stamp2time(x):

time_list = [str(i) for i in x.split(' --> ')]

time_list1_1 = [x for x in time_list[0].split(':')]

time_list1_2 = [int(x) for x in time_list1_1[2].split(',')]

time_list1_1.pop()

time_list2_1 = [x for x in time_list[1].split(':')]

time_list2_2 = [int(x) for x in time_list2_1[2].split(',')]

time_list2_1.pop()

t1=[int(time_list1_1[0]),int(time_list1_1[1]),(time_list1_2[0]+time_list1_2[1]/1000)]

t2=[int(time_list2_1[0]),int(time_list2_1[1]),(time_list2_2[0]+time_list2_2[1]/1000)]

return t1,t2

#加上指定的時間

def modifying_time(time,s):

time[2] = time[2]+s

if time[2] >= 60:

time[1] = time[1]+int(time[2]//60)

time[2] = time[2]%60

if time[1] >=60:

time[0] = time[0]+int(time[1]//60)

time[1] = time[1]%60

return time

#返回時間戳

def time2time_stamp(x):

x.append(round((x[2]-math.floor(x[2])),3))

x[2] = math.floor(x[2])

H = str(x[0]).zfill(2)

M = str(x[1]).zfill(2)

S = str(x[2]).zfill(2)

MS = str(int(x[3]*1000)).zfill(3)

time_stamp = H+':'+M+':'+S+','+MS

return time_stamp

f = input('請輸入文件名(包括后綴):',)

s = float(input('請輸入向后移動時間軸的秒數(shù)(向前則為負(fù)數(shù)):',))

starttime = datetime.datetime.now()

#打開字幕文件

with open(f,'r') as f1:

path,name = os.path.split(f)

f2 = open(os.path.join(path,'Temporary.txt'),'a')

for line in f1:

if re.match(r'\d{1,2}:\d{1,2}:\d{1,2},\d{1,3} --> \d{1,2}:\d{1,2}:\d{1,2},\d{3}',line):

line = line.strip()

time_stamp1 = line

t1,t2 = time_stamp2time(time_stamp1)

t1 = modifying_time(t1,s)

t2 = modifying_time(t2,s)

time_stamp_1 = time2time_stamp(t1)

time_stamp_2 = time2time_stamp(t2)

time_stamp2=time_stamp_1+' --> '+time_stamp_2+'\n'

line = time_stamp2

f2.write(line)

f2.close()

#寫入完畢后刪除原文件

os.remove(name)

os.rename('Temporary.txt',name)

endtime = datetime.datetime.now()

print ('轉(zhuǎn)換耗時:',endtime - starttime)

4.運(yùn)行python程序

5.重命名回srt

大功告成。

總結(jié)

以上是生活随笔為你收集整理的python 视频字幕替换_利用python调整srt字幕时间轴的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。