Talk:ShowFrameNumber
From Avisynth wiki
(Difference between revisions)
Raffriff42 (Talk | contribs) (reply) |
|||
Line 20: | Line 20: | ||
:: else if (abs(_rate - rate) > 0.001) { | :: else if (abs(_rate - rate) > 0.001) { | ||
:: env->ThrowError("ShowSMPTE: rate argument must be 23.976, 29.97 or an integer"); | :: env->ThrowError("ShowSMPTE: rate argument must be 23.976, 29.97 or an integer"); | ||
+ | :::*hi Admin; I ran the test with ''AssumeFPS'', not ''fps''=. I should have been more clear. -- [[User:Raffriff42|Raffriff42]] 19:06, 3 January 2016 (CET) | ||
=====ShowSMPTE: fps argument===== | =====ShowSMPTE: fps argument===== |
Revision as of 19:06, 3 January 2016
ShowSMPTE: integral or drop-frame framerates only
On reading text-overlay.cpp ShowSMPTE::ShowSMPTE
, it looks like the framerate must be an integer (±0.001) or be in drop-frame range (eg, 23.975 - 23.977); framerates like 24.25 will be rounded to int(24.25+0.5)==24.0
and the time calculation will be off. This can't be right!
## (source 24fps) ShowTime(y=50) ## top center ShowSMPTE ## time is correct
AssumeFPS(24000, 1001) ShowTime(y=50) ShowSMPTE ## time is correct
AssumeFPS(24.25) ## any number not an integer ±0.001 or listed in drop-frame table ShowTime(y=50) ShowSMPTE ## time is wrong
Raffriff42 04:08, 29 December 2015 (CET)
- Inserted a warning re: non-integral frame rates with ShowSMPTE -- Raffriff42 06:28, 1 January 2016 (CET)
- If I understand it correctly, the timecodes will always be off for non-integral frame rates. That is, unless you treat them all as drop frames, and count how much frames should be dropped every minute (note: this will not be the SMPTE standard anymore). Perhaps better would have been to throw an error for non-integral framerates and not being one of those standard drop-frame ranges. Admin 17:52, 3 January 2016 (CET)
- Edit2: Did you actually run that script (with source fps = 24.25)? AviSynth throws an error in my case. Relevant code:
- rate = int(_rate + 0.5);
- ...
- else if (abs(_rate - rate) > 0.001) {
- env->ThrowError("ShowSMPTE: rate argument must be 23.976, 29.97 or an integer");
- hi Admin; I ran the test with AssumeFPS, not fps=. I should have been more clear. -- Raffriff42 19:06, 3 January 2016 (CET)
ShowSMPTE: fps argument
I don't quite get the fps argument; is it to force a different framerate for timecode display purposes? For example, to show 24fps film frames on a 30fps video clip?
Raffriff42 04:17, 29 December 2015 (CET)
- On testing, it seems the frame rate is overridden, throwing off the real time reading. Would not be useful in the above scenario.
- Inserted an "unclear" tag, like this: roses are blue(unclear) -- Raffriff42 06:28, 1 January 2016 (CET)
- Good question. I will ask Ian. Admin 18:20, 3 January 2016 (CET)