View Full Version : curiosity: a progressive divx at 23,976 fps with repeated frames
onesoul
26th January 2003, 15:50
I got this movie divx with repeated frames. Very weird, I am posting only for the curiosity, maybe someone knows what kind of transfer this is.
I figured out the padron which is like this:
pprrpppppppprpp
p: normal progressive frame
r or rr: repeated frame(s) of the previous frame
With selectevery(15,0,1,4,5,6,7,8,9,10,11,13,14) I can get the movie without the repeated frames. (I didn't do yet an encode but I guess I will get a synched movie, won't I?)
Guest
26th January 2003, 16:01
Is that 23.976 before or after removing the duplicates? If it was after, then it would look like a poor man's telecine for going from 23.976 to 29.97. If it was before, then it is very strange.
onesoul
26th January 2003, 16:06
It is 23,976 fps before removing the duplicates. I have no idea who did this conversion or else I would have a talk with him/her. Odd.
scmccarthy
27th January 2003, 08:27
@onesoul(I didn't do yet an encode but I guess I will get a synched movie, won't I?) I think you will get a synched movie at 19.4805fps.
Stephen
onesoul
27th January 2003, 19:30
Oh my god, how am I gonna watch this movie at dvd player? :rolleyes:
scmccarthy
27th January 2003, 20:38
OOOOOOOH, I am always thinking in terms of a avi files. There are some players that will play a file at whatever framerate you put in the header. I have yet to burn a DVD-R on my DVD-R drive. But wait! You did say 'a progressive divx' in the thread title. So are you saying you can watch a divx movie on a DVD player?
Oh, wait, you want to convert the divx movie to DVD, I see. Well, you could decimate the duplicate frames and set the fps to 19.481, copying it back to an avi file with that framerate. Then increase the framerate back to 27.97 blending the frames using ConvertFPS(29.97). I said that was possible, hardly anyone uses this option. I am just showing off the fact that I know about it.
ConvertFPS won't work properly unless it thinks the framerate is 19.4805. It uses the ratio between the starting fps and the target fps you give it as a parameter. Come to think of it, maybe it could be done in a single script like this:
selectevery(15,0,1,4,5,6,7,8,9,10,11,13,14)
AssumeFPS(19.4805, false)
ConvertFPS(29.97) As an added bonus, this demonstrates the difference between two filters that can be confused with each other.
Stephen
onesoul
27th January 2003, 21:44
Thanks for the help :)
Actually I don't have a dvd burner, I was thinking of doing a svcd. :)
I haven't tried putting a movie at different fps of the standard, maybe it will work, I will try for sure.
First you say it is needed to play at 19,4805 fps to be at synch with sound but then the code you provided it is stated AssumeFPS(19.8501, false). Mistype? Or I am very confused...?
And I think there would be no problem to convert to 23,976 instead of 29,97.
scmccarthy
27th January 2003, 22:05
It is correct, I use it all the time. The second parameter is for audio, if you were muxing them together in the avi. I will use it correctly in the script to demonstrate:AudioDub(video,audio)
selectevery(15,0,1,4,5,6,7,8,9,10,11,13,14)
AssumeFPS(19.4805, false)
ConvertFPS(29.97)
AssumeFPS(30,TRUE)
ResampleAudio(48000) OK, now the first time I used AssumeFPS, I changed the framerate in order to keep it in sync with the audio (assuming you were right that the original divx file really was properly synched at 23.976), the second time I made keep audio in sync = TRUE. This speeds up the samplerate of the audio by the same ratio as the framerate speed up. So the samplerate becomes non-standard (perhaps 48048) and need to be resampled before it can be encoded to mp3.
I realize you already have an mp3 audio track and are not working with a wav file. It is much easier to explain the two ways of using AssumeFPS with an example, however.
Just keep in mind that I never made a mistake and I was using AssumeFPS as I intended all along.
Stephen
onesoul
27th January 2003, 22:18
I still don't understand the relation of 19,4805 fps with 19,8501 fps. :confused:
scmccarthy
27th January 2003, 23:11
That part is a mistake, 19.4805 was correct. I copied it wrong. I am making corrections to my posts so this past won't make sense anymore.
First I rounded it up to 19.481 and then I kept the 1 and added back the 5 in the wrong spot...
Stephen
onesoul
27th January 2003, 23:17
I'm glad it was a mistype, I was begining to question my (in)sanity :)
scmccarthy
28th January 2003, 16:46
I am sorry about that. And here I was insisting I didn't make a mistake. But I didn't; I was refering to my use of the filters. The odd framerate is the result of decimating twice, due to the fact that the first one didn't get rid of the duplicates properly (29.97-->23.976-->19.4805). It occurs to me then that good frames where decimated instead. So if you really want smooth motion, you'd have to try to interpolate the missing frames:devil: .
Stephen
onesoul
28th January 2003, 17:41
@scmccarthy
No need to get angry.
Since I belive that the movie comes from a progressive source but badly transfered, I will use the following code:
selectevery(15,0,1,4,5,6,7,8,9,10,11,13,14)
AssumeFPS(19.4805, false)
ConvertFPS(23.976)
Guest
28th January 2003, 17:44
Originally posted by onesoul
@scmccarthy
No need to get angry.
Point of order (to avoid another flamefest): The devil icon is not a sign of anger.
onesoul
28th January 2003, 19:02
Oops, sorry I though it meant anger. But don't worry we wouldn't start a flamefest. I know scmccarthy for some time and I am sure it wouldn't happen. But generally I won't fight, it's not my nature. I only want every people being nice to each other and that's what I try to do.
scmccarthy
28th January 2003, 19:25
@neuron2
No of course not, it means trying to interpolate the missing frames might be more trouble than it is worth. For the record, I think onesoul is the most level headed person in this forum. It would never occur to me that I could start a flamefest with him.
Stephen
scmccarthy
28th January 2003, 19:30
@onesoulConvertFPS(23.976) That is fine. I was thinking you wanted to play it on a DVD player. If you did, you could use:ConvertFPS(29.97) in order to avoid having to telecine. Using ConvertFPS in this way is also an alternative (not a good one) to telecining.
[edit] Oh my god, how am I gonna watch this movie at dvd player? I said using ConvertFPS instead of telecining is not a good solution. However, once you use it, you should use it intead of telecining too. If you do plan to play this on a DVD player, you should make the player think it is a regular video. ConvertFPS blurs motion in order to prevent the stuttering you get because of duplicate frames. I am suggesting you should try it just to see the effect and for the learning of another part of avisynth. I never meant that I thought you would like the solution. It will prevent stuttering, but I don't know how pronounced the blurring effect is or whether you will think it is an improvement. That is for you to decide.
Stephen
onesoul
28th January 2003, 19:45
@scmccarthy
Now you made me blush :o :)
The reason I was aiming for 23,976 is because my player is compatible with 23,976 (vcd 2.0 supports 25 fps pal, 29,97 fps ntsc and 23,976 fps ntsc film, dunno why not 24 fps as well) and since I'm in pal region the next step would be 25 fps. I am sure you though I was ntsc region :).
scmccarthy
28th January 2003, 19:55
Oh of course, yeh I was thinking of NTSC DVD. The principle is the same though, you should use:ConvertFPS(25) Then you would avoid the audio speedup usually associated with PAL DVD
[edit] Oh, I see now. Your player will play directly at 23.976fps speed. Compare ConvertFPS(23.976) with ConvertFPS(29.97) to see if one of them looks better than the other, since your player can play at either speed.
Stephen
onesoul
28th January 2003, 22:58
:) I will.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.