Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 1st August 2006, 17:52   #1  |  Link
pandy
Registered User
 
Join Date: Mar 2006
Posts: 1,035
ShowSMPTE() for framerates over 30FPS

How i can add timecode to the video, for video <=30FPS i can use ShowSMPTE() function but for video with framerate over 30FPS...?
pandy is offline   Reply With Quote
Old 2nd August 2006, 04:49   #2  |  Link
Mug Funky
interlace this!
 
Mug Funky's Avatar
 
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,547
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:
Code:
interleave(last.selecteven().showsmpte(),last.selectodd().showsmpte())
that'll give you 2 frames to a SMPTE frame, but it's better than nothing
__________________
sucking the life out of your videos since 2004
Mug Funky is offline   Reply With Quote
Old 2nd August 2006, 04:51   #3  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,168
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...
Code:
Xyzzy=Last # Remember clip
AssumeFPS(30000, 1001) # Drop Frame NTSC exactly
ShowSMTPE() # Brand frames
AssumeFPS(Xyzzy) # Copy back original FPS

Last edited by IanB; 2nd August 2006 at 04:55.
IanB is offline   Reply With Quote
Old 3rd August 2006, 16:02   #4  |  Link
pandy
Registered User
 
Join Date: Mar 2006
Posts: 1,035
Quote:
Originally Posted by IanB
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...

Quote:
Originally Posted by IanB
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 is offline   Reply With Quote
Old 3rd August 2006, 16:06   #5  |  Link
pandy
Registered User
 
Join Date: Mar 2006
Posts: 1,035
Quote:
Originally Posted by Mug Funky
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:
Code:
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!
pandy is offline   Reply With Quote
Old 3rd August 2006, 17:00   #6  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,168
Quote:
Originally Posted by pandy
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?
IanB is offline   Reply With Quote
Old 4th August 2006, 15:01   #7  |  Link
pandy
Registered User
 
Join Date: Mar 2006
Posts: 1,035
Quote:
Originally Posted by IanB
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

Quote:
Originally Posted by IanB
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.
pandy is offline   Reply With Quote
Old 4th August 2006, 17:57   #8  |  Link
hanfrunz
Registered User
 
hanfrunz's Avatar
 
Join Date: Feb 2002
Location: Germany
Posts: 532
@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
hanfrunz is offline   Reply With Quote
Old 5th August 2006, 04:46   #9  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,168
@hanfrunz,

I am guessing showtc() would implement the code from stickboys deleted post. i.e. with fractional seconds instead of frame within second.
Quote:
Originally Posted by stickboy
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()))")
IanB is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 21:14.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.