Mpeg Framerate reduction?

vbimport

#1

I need to convert video data to 7.5 fps mpeg. By this i mean real 7.5 fps and not 7.5 at internal 30 fps ( thus cutting down the playtime by four) The only way i found is rather complicated and affects the quality because you have to recompress a few times.

I use Virtualdub to convert the video to 30 fps. Then i use Virtual dub again to decimate the frames of the 30fps video by 4. ( VirtualDub can decimate frames only by integers).The result is a 7.5 fps avi. Then i hex edit the avi back to 30 fps and convert this avi to 30fps mpeg with tnmpeg.

Is there a better way to do this ?

Btw if you wonder what i need 7.5fps mpegs for, it’s a mpeg player i wrote for the gba :wink:


#2

Just use AVISynth, you can open an MPEG with directshowsource and the audio with mpasource then do pretty much whatever you want with the framerate.

SelectEvery(4,0)
assumefps(30)


#3

You’re playing mpeg on a GBA?

Very, very brave.


#4

great tool, thanks a lot !


#5

Wait, your video is not already 30fps?

Then your command sequence should be different.

As a general method, you could use:

ChangeFPS(target)
or
ConvertFPS(Target)

This will prevent audio speed problems, which assumefps may cause.


#6

<You’re playing mpeg on a GBA?

<Very, very brave.

i assume you don’t mean you have to be brave to watch mpg on a gba ,but to provide gba freaks with a free tool to watch simpsons episodes on their favourite machine :stuck_out_tongue:

Because the quality is quite good when you have a frontlit gba.
I only have to get it a little faster… 12 fps would be cool.


#7

Which mode are you using? Mode 3 might have drawing artifacts, 4 would limit your colors, and 5 would have a small resolution…

Well, best of luck to you regardless.


#8

i use mode 5 scaled to fullscreen. when i have done some more optimizing i’m going to implement a mode 3 bilinear scaled dither function wich will look a lot better. It currently runs at stable at 7.5fps with (non mpeg) sound.