The 720p HDTV I record is 50fps, and I would like to encode it at 25fps. Usually the channels I record are 1080i and I set the deinterlace filter on before encoding. Is there some sort of 'deprogressive' filter that converts the 50fps back to their original 25? At the moment all I can find is to decimate the frame rate by 2, but I'm not sure this is the right way to go about it...
If you scan through the video one frame at a time, do you see 2 duplicate frames, followed by another two duplicate frames, etc, etc? If so, decimate by 2 seems reasonable. What is the result like?
I did scan through the video, and it does look like the frames come in pairs (DVB is PAL so no weird NTSC sequences if that's what you were getting at). The final result does look good I guess, just paranoid that it's not quite right perhaps How is 720p content usually reverted back to 25fps from 50fps? Not talking about VirtualDub in particular...
I'm really not sure what the preferred method is, but decimate by 2 seems to be the logical solution. In general though, film-based source (24fps) is sped up to 25 then each frame is duplicated to give the 50. Is this what you have? Post a short clip if you like http://savefile.com/ Myself and others will take a look.
Hello - took a look - it's not too bad. The scene at 25 seconds where the young girl turns her head looks slightly jerky. Is it that way in the source? But the rest of it looked pretty nice.
I don't have the source any more unfortunately so I here is a commercial (720p 50fps) and my converted file I decimated by 2(H264 25fps). http://www.savefile.com/files/1977027 http://www.savefile.com/files/1977046 Perhaps by comparing the two, or possibly seeing the original ts file someone may know if decimate by 2 is the way to go. Thanks.
maggas, the source explains the problem. Decimate by 2 is not going to work optimally with this clip. It's a mix, the duplicate / unique pattern changes throughout the source. You need to find an avisynth expert to assist. The best pace I can think of is either the forum at doom9, and/or the "advanced video conversion" at videohelp.com http://forum.doom9.org/forumdisplay.php?f=33 http://forum.videohelp.com/
Ah that does suck a bit! I don't suppose there is a filter in VirtualDub that detects the pattern and halves the framerate? I have looked at the forums you recommended and have asked there too, thanks again.
maggas, the 50 fps clip you provided complicates any analysis because some parts of it are intentionally in slow motion and the duplicate frame counts are out of whack. In any event, avisynth and perhaps something like Fdecimate may help. I'm not an avisynth xpert, but something simple like this may help: DirectShowSource("F:\abc.m2v",fps=50,audio=no,convertfps=true) FDecimate(metrics=true) #FDecimate(rate=25,threshold=5) Save this in an .avs file and open with virtualdub. Look at it one frame at a time. A threshold value wil show, and for duplicate, or barely moving frames, the value is usually somewhere between 1 - 4. When you've figured out the range, use the # to comment out the line and uncomment the 2nd Fdecimate, Set the threshold to just above the value you saw in the range above. Save the .avs. open in Virtualdubub and check the result.
I had to add ConvertToYUY2() before the FDecimate(metrics=true) just so you know! I stepped through the video frame by frame (well not the entire video haha, just a few randomised 10second clips throughout the video - just guessing this is what is usually done?) and wrote down the lowest metric that corresponded to an actual different frame (3.3). I also calculated the highest metric that corresponded to no frame change (2.8). Then I picked a number approximately in between (3) FDecimate(rate=25,threshold=3) Then I'm guessing that frames under the metric of 3 are dropped, and those above 3 are kept, and then it adds/drops additional frames to achieve 25fps? Hopefully I'm on the right track! EDIT Here is my result: http://www.savefile.com/files/1979408
Haven't had time to look at your latest yet, but in regards to the earlier 50 fps sample, I also tried convertfps=false on the Directshowsource and the result was that a particular section decimated better. It's supposed to be a factor if the source has variable frame rate - anyway, if a bit gives you trouble, try that. Your understanding and usage of the "metrics" is the same as mine. Didn't you get any response from the the other forums? That's where the Avisynth heavyweights are.
Haven't got a reply from other forums yet, just waiting at the moment. Could you explain what difference using convertfps=false as opposed to true? I made the following .avs file: DirectShowSource("E:\abc.mpg",fps=50,audio=no,convertfps=true) ConvertToYUY2() FDecimate(rate=25,threshold=2.9) BicubicResize(736,414) Crop(8,8,-8,-6) and then I opened the .avs file with Virtualdub and compressed to H264
For some reason I'm unable to open your new-test-abc.avi in virtualdub, so haven't looked frame by frame. Looks good in WMP though. Convertfps=true, apparently becomes a factor if the source has variable frame rate, and this setting adds frames to make it seem like Constant frame rate. Here's the official lingo: http://avisynth.org/mediawiki/DirectShowSource What are you using in virtualdub to encode H264? FFDSHOW? Edit - as soon as I used directhshowsource/avisynth to access your avi file I could review it in Virtualdub. It looks good.
I think I'm using the ffdshow one, http://sourceforge.net/projects/x264vfw/ I do have a question now that you mentioned variable frame rate, how do I know if it is or not?
You know what that was? It was the slow motion scene - which necessarily had more duplicate frames. I think Fdecimate handled it OK?
To be honest I'm not sure of anything any more, some content seems to have more than 25fps. If I make the same file at the original 50fps and then the decimated 25fps (obviously having the effect of about half the file size), the decimated one seems jittery
Doesn't a certain flavor of PAL 720p actually have 50 unique progressive frames p/s ? If you decimate it, you're actually throwing away real (not duplicate ) frames - but what else can you do? This shouldn't necessarily produce a jerky output - although it wont be as fluid as the original. Try and narrow down what the source that's giving you problems actually is by viewing frame by frame - just enough that you recognize the frame pattern. http://www.mediacollege.com/video/format/hdtv/720p.html This thread may be of interest: http://forum.videohelp.com/topic333774.html