Log in

View Full Version : Framerate conversion, with a twist


Blimblim
9th October 2006, 10:21
Hi everyone!

This is my first post here, even if I've been using this forum extensively in the past for help via the search function. You guys rock :)

Anyway, I have a tricky (maybe?) problem. I use a HDTV analog video capture hardware (blackmagic design multibridge pci express) to capture 720p videos from my Xbox 360 at 60 fps. It works great and I use avisynth to postprocess the image a bit before encoding with virtualdub or wmnicenc.

The problem now, is that the video playback in the 360 from the dashboard is buggy since the last update. Instead of playing a 30 fps video correctly, it really does some weird things. It can go as far as dropping frames from time to time, that I can't do anything about, but it's also doing a lot of wrong stuff with the frame order.
For example when capturing a 30 fps video at 60 fps, I should get something like that:
1 1 2 2 3 3 4 4 5 5
Instead it can be something like that
1 1 1 2 3 3 4 5 5 5
So when I convert it back to 30 fps with changefps, instead of getting 1 2 3 4 5 I get 1 1 3 4 5.
The final video looks really choppy, as you can guess.

Is there any "smart" way to do the framerate conversion? Like having a filter or a compare function that would select the image most different from the one before?

Thanks in advance for your help :)

Jeff

bkman
9th October 2006, 10:30
Try the FDecimate filter by Neuron2: http://neuron2.net/fdecimate/fdecimate.html

Btw, I like your site, but I wish you would start moving to H.264/AVC ;)

Blimblim
9th October 2006, 12:18
Try the FDecimate filter by Neuron2: http://neuron2.net/fdecimate/fdecimate.html

Btw, I like your site, but I wish you would start moving to H.264/AVC ;)

Thanks :)
I've moved to VC1 because it's finally working with ffmpeg, and it works natively with the 360.
I guess I'll use H.264 for PS3 videos. My new Sony HD camcorder uses H.264 as a native format for recording, so I'm getting used to using this format a lot :)
Edit: Looks like fdecimate is indeed what I was looking for!