我正在使用以下脚本将时间码转换成帧数,它能够工作,但是只有在将开始时间码设置为00:00:00:00时才能转换。我希望能够设置起始时间码,以便进行相对计算。此外,如果我将帧速率设置为23.976或29.97,它会出错。
framerate = 24
def timecode_to_frames(timecode):
return sum(f * int(t) for f,t in zip((3600*framerate, 60*framerate, framerate, 1), timecode.split(':')))
def frames_to_timecode(frames):
return '{0:02d}:{1:02d}:{2:02d}:{3:02d}'.format(frames / (3600*framerate),
frames / (60*framerate) % 60,
frames / framerate % 60,
frames % framerate)
print timecode_to_frames('00:00:00:10')
print frames_to_timecode(10)