python - 如何进行时间码计算?

标签 python video timecodes

我有一个关于计算时间码增量的问题。
我从包含格式为 HH:MM:SS:FF

的时间码的电影文件中读取元数据

(FF = frame, 00->23 比如 00framerate-1)

所以我得到了一些数据,比如 15:41:08:02 并且从另一个引用文件中我得到了 15:41:07:00
现在我必须计算 timeoffset(类似于 timedelta,但只有帧)。
我将如何解决这个问题?

最佳答案

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(':')))

print timecode_to_frames('15:41:08:02') - timecode_to_frames('15:41:07:00')
# returns 26

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 frames_to_timecode(26)
# returns "00:00:01:02"

关于python - 如何进行时间码计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488238/

相关文章:

python - 在其他列表中迭代 python 列表

python - 如何使 x 轴和 y 轴的比例相等?

python - 如何在 Pandas 中组合和形成复杂的数据框

javascript - HTML5 将加密的视频帧绘制到 Canvas (使用 clearkey 的加密媒体扩展)

javascript - 时间码有百分之几吗?

ruby-on-rails - Rails 中的时间码 - 时间还是数值?

python - 使用 Python 将密码传递到 OpenSSL

iPhone - 在 3.0 和 4.0 操作系统/SDK 上播放视频?

html - 如何禁用 HTML5 视频标签搜索?

python - RegEx:如何匹配特定时间以上的时间码?