forked from eoyilmaz/timecode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
50 lines (34 loc) · 1.69 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
About
-----
Python Module for manipulating SMPTE timecode. Supports 23.98, 24, 25, 29.97,
30, 50, 59.94, 60 frame rates and milliseconds (1000 fps).
This library is a fork of the original PyTimeCode python library. You should
not use the two library together (PyTimeCode is not maintained and has known
bugs).
The math behind the drop frame calculation is based on the
`blog post of David Heidelberger`_ .
.. _`blog post of David Heidelberger`: http://www.davidheidelberger.com/blog/?p=29
Simple math operations like, addition, subtraction, multiplication or division
with an integer value or with a timecode is possible. Math operations between
timecodes with different frame rates are supported. So::
from timecode import Timecode
tc1 = Timecode('29.97', '00:00:00:00')
tc2 = Timecode('24', '00:00:00:10')
tc3 = tc1 + tc2
assert tc3.framerate == '29.97'
assert tc3.frames == 12
assert tc3 == '00:00:00:11'
Creating a Timecode instance with a start timecode of '00:00:00:00' will
result a timecode object where the total number of frames is 1. So::
tc4 = Timecode('24', '00:00:00:00')
assert tc4.frames == 1
Use the ``frame_number`` attribute if you want to get a 0 based frame number::
assert tc4.frame_number == 0
Frame rates 29.97 and 59.94 are always drop frame, and all the others are non
drop frame.
The SMPTE standard limits the timecode with 24 hours. Even though, Timecode
instance will show the current timecode inline with the SMPTE standard, it will
keep counting the total frames without clipping it.
Please report any bugs to the `GitHub`_ page.
.. _`GitHub`: https://github.com/eoyilmaz/timecode
Copyright 2014 Joshua Banton and PyTimeCode developers.