help with timecode
Tim Selander
selander at tkf.att.ne.jp
Sun May 31 04:27:28 EDT 2015
Peter,
This worked great at getting me min:sec timecode; I hadn't even
gotten that far yet. But I need the timecode down to the frame,
so min:sec:fra. Timescale of the videos I'm using is 600.
What's bending my head is that min & sec are sets of 60. 60 secs
per min, 60 min per hour. But the frames are sets of 30; 30
frames per second.
Further head-bending happens with DF & NDF time code. Non-drop
frame time code is exactly 30 frames per second. But to broadcast
color, the frame rate had to be scaled back to 29.97 frames per
second.
So, drop frame TC drops 2 frame counts every minute, except every
tenth minute, achieving 30×0.999 = 29.97 frame/s. The error is
the difference between 0.999 and 1/1.001 = 0.999000999000999….
For example, the sequence when frame counts are dropped:
H: M: S: F
01:08:59:28
01:08:59:29
01:09:00:02
01:09:00:03
For each tenth minute
01:09:59:28
01:09:59:29
01:10:00:00
01:10:00:01
I'm pretty stuck. But it must be possible as we have stopwatches
with built-in timecode calculators!
If I can't get the frames accurately, I could settle for a
decimal point and remainder after the seconds:
H: M: S
01:09:55.38
I'm making an in-house app for our subtitle translators -- the
rule of thumb in Japanese subtitling is 4 characters per second.
So having the fraction at .38 as in the above example, would let
the translator know he could use one more character for the .38
fraction of the second.
Tim Selander
On 5/31/15, 10:34 AM, Peter Bogdanoff wrote:
> Had some odd stuff...once again (600 is the timescale I was working with; you can find the timescale() with that function) :
>
> on updateCurrTime
> put round(the currentTime of player "thePlayer" / 600) into theTime
> put theTime div 60 into theMin
> put theTime mod 60 into theSec
> if len(theSec) = 1 then put "0" & theSec into theSec
> put theMin & ":" & theSec into field "CurrTime"
> send "updateCurrTime" to me in 1 seconds
> end updateCurrTime
>
>> On May 30, 2015, at 11:16 AM, Peter Bogdanoff <bogdanoff at me.com> wrote:
>>
>> on updateCurrTime
>> put round(the currentTime of player “thePlayer" 1005 / 600) into theTime
>> put theTime div 60 into theMin
>> put theTime mod 60 into theSec
>> if len(theSec) = 1 then put "0" & theSec into theSec
>> put theMin & ":" & theSec into field "CurrTime"
>> send "updateCurrTime" to me in 1 seconds
>> end updateCurrTime
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list