我想要将字符串音频时间戳转换为毫秒。
样本字符串 00:00:16,260 00:00:26,339 00:19:38,769
答案 0 :(得分:2)
假设您要从字符串中获取总计毫秒数。
from datetime import datetime, timedelta
audio_timestamp = '00:00:16,260'
(datetime.strptime(audio_timestamp+'000', '%H:%M:%S,%f') - datetime.strptime('00', '%H')).total_seconds()*1000
给予16260
答案 1 :(得分:1)
您可以拆分字符串,将其转换为整数并分配给变量:
def timestamp_to_milliseconds(timestamp):
hours, minutes, seconds, milliseconds = [int(x) for x in timestamp.replace(',', ':').split(':')]
return milliseconds + 1000 * (seconds + 60 * (minutes + 60 * hours))
这是一个例子:
timestamp_to_milliseconds('00:19:38,769')
# 1178769
timestamp_to_milliseconds('00:00:16,260')
# 16260
答案 2 :(得分:0)
我不确定您是否需要它,但这是我学到的解决方案:
timestamp = "00:00:16,260".split(":")
seconds= float(timestamp[2].replace(',', "."))
minutes = int(timestamp[1])
hours = int(timestamp[0])
milliseconds= seconds*1000 + minutes*60*1000 + hours*3600*1000
答案 3 :(得分:0)
如果您确定所有值都正确地用零填充,那么您可以按照以下方式简单地使用索引
t = "00:00:26,339"
h,m,s,ms = map(int,[t[:2],t[3:5],t[6:8],(t[9:]+"000")[:3]])
tms = h*60*60*1000+m*60*1000+s*1000+ms
print(tms) # prints 26339
请记住,此解决方案假定t
的格式正确。
编辑:改进为还接受00:00:00形式的字符串