View Full Version : ShowSMPTE() for framerates over 30FPS
pandy
1st August 2006, 18:52
How i can add timecode to the video, for video <=30FPS i can use ShowSMPTE() function but for video with framerate over 30FPS...?
Mug Funky
2nd August 2006, 05:49
good question...
i suppost SMPTE timecodes would still apply to HDTV stuff in 60p. perhaps each frame is counted as a field?
you could try:
interleave(last.selecteven().showsmpte(),last.selectodd().showsmpte())
that'll give you 2 frames to a SMPTE frame, but it's better than nothing
IanB
2nd August 2006, 05:51
ShowSMPTE() only works for 23.976, 24, 25, 29.97 and 30 fps because this is all we have specifications for.
Actually 23.976 is a hacked implementation of drop frame 24 fps because nobody has found the correct reference yet, but somebody wanted it and made a workable suggestion.
If you want to point to some reference for implementing alternate framerates or propose a useful enhancement please do.
If you want to just add framenumbers you can use ShowFrameNumber() or if you want timecodes based on a supported framerate but don't actually want to change the framerate do this...
Xyzzy=Last # Remember clip
AssumeFPS(30000, 1001) # Drop Frame NTSC exactly
ShowSMTPE() # Brand frames
AssumeFPS(Xyzzy) # Copy back original FPS
pandy
3rd August 2006, 17:02
ShowSMPTE() only works for 23.976, 24, 25, 29.97 and 30 fps because this is all we have specifications for.
Actually 23.976 is a hacked implementation of drop frame 24 fps because nobody has found the correct reference yet, but somebody wanted it and made a workable suggestion.
I believe that nothing serious will change in philosophy of the SMPTE code ie methodology for 47.952, 48.0, 50.0, 59.94, 60.0 will be exactly the same...
If you want to point to some reference for implementing alternate framerates or propose a useful enhancement please do.
At this moment i can offer to community valid video measure signal patterns which (AFAIK) are compliant to the European nad US norms (also industrial/corporation norms ie Tektronix patterns). Patterns are verified on the Tektronix video analyser VM700 against Tektronix signal generator TG700. Normally my company used them for our product verification.
pandy
3rd August 2006, 17:06
good question...
i suppost SMPTE timecodes would still apply to HDTV stuff in 60p. perhaps each frame is counted as a field?
you could try:
interleave(last.selecteven().showsmpte(),last.selectodd().showsmpte())
that'll give you 2 frames to a SMPTE frame, but it's better than nothing
Thanks Mug Funky i know this method but it's no good enough to me. But anyway Thank You!
IanB
3rd August 2006, 18:00
I believe that nothing serious will change in philosophy of the SMPTE code ie methodology for 47.952, 48.0, 50.0, 59.94, 60.0 will be exactly the same...I can take a reasonable stab at the non drop frame rates and I guess for the 59.94 rate there will need to be 4 skipped counts every 10 minutes instead of 2.
But what is the count skip pattern for 47.952, I could apply the same hack as was done for 23.976 but I would rather the code be standard compliant.
Thoughts anyone?
pandy
4th August 2006, 16:01
I can take a reasonable stab at the non drop frame rates and I guess for the 59.94 rate there will need to be 4 skipped counts every 10 minutes instead of 2.
I think that this is a proper way to deal the problem
But what is the count skip pattern for 47.952, I could apply the same hack as was done for 23.976 but I would rather the code be standard compliant.
Thoughts anyone?
Hm... Ok lets think... I don't know anything about any material with this frame rate at this moment so i think that this is only logical extension to the 24000/1001 frame rate (ie doubled framerate). I don't think that we see many source with this framerate so probably this is only hipothetical framerate, i assume that similar will be with the 48fps.
Cinema and movie tapes probably will not change 24fps frame rate. Maybe if in future video technology we achieve some movie tape quality probably put also own ie video framerate standards.
At this moment vital (from my point of view) is implementations of the 50.0 and 60/1.001 framerates. Other frame rates can wait for clarificiation of some standard (If this happen od course).
I think that 24/1.001, 24.0, 25.0, 30/1.001, 30.0 and 48.0, 50.0 , 60/1.001, 60.0 framerates should be implemented in near future.
PS
Sorry for my english, i'm from Poland and i never learn english formally.
hanfrunz
4th August 2006, 18:57
@IanB
There should be an extra plugin called showtc() for example.. When the SMPTE releases a new standard it could be added to showsmpte().
hanfrunz
IanB
5th August 2006, 05:46
@hanfrunz,
I am guessing showtc() would implement the code from stickboys deleted post. i.e. with fractional seconds instead of frame within second.How accurate does it really need to be? If one wants an approximate timecode, then you
could something like:
function ShowTime(float totalSeconds)
{
i = Int(totalSeconds)
hours = Int(i / 3600)
minutes = Int((i % 3600) / 60)
seconds = i % 60 + Frac(totalSeconds)
return String(hours, "%02.0f")
\ + String(minutes/ 60, ":%02.0f")
\ + String(seconds, ":%06.3f")
}
ScriptClip("Subtitle(ShowTime(current_frame / FrameRate()))")
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.