views:

487

answers:

3

I've got a video that's 30 minutes long. I want to make a speeded up version that's (say) 15 minutes long. I could do this by dropping every 2nd frame. How can I do this on linux?

I'm playing with gstreamer and it looks cool. Is there a way to do this with gstreamer? What would be the gst-launch command line to do it?

My source video is in Motion JPEG, so I do have the frames to drop. Even if it was using keyframes, there still should be a way to 'double speed' the film?

I'd like a command line way to do this since I want to automate it.

A: 

Just you any good NLE (Non -Linear Editor).

TWIXTOR is also widely used for motion remapping.

EDIT:

You could also use Jashaka, an open source? NLE

http://jahshaka.org/

Darknight

Darknight
+1  A: 

avidemux can change the frame rate of films and offers command line control.

danio
+1  A: 

You could just set the frame rate to twice as high. (e.g. mencoder -fps 60/1.001 -oac copy -ovc copy, if the input was really 30/1.001 FPS).

http://www.mplayerhq.hu/DOCS/HTML/en/index.html

Or drop frames with mencoder -sstep 0.1 to skip forwards 0.1 seconds after every frame.

mplayer -nosound -channels 2 -vf decimate=-2:16384:16384:1 mvi_3524.avi works, too, but it's probably slow, and you probably can't do it without decompressing/recompressing every frame.

mjpegtools has a yuvfps for blending/dropping frames in a y4m video. See http://linux.die.net/man/1/mjpegtools.

I'm not having much luck finding a tool that knows how to drop frames from an mjpeg video without decompressing/recompressing. So you might have to convert the mjpeg to a directory of .jpg files, delete the odd numbered ones, and re-assemble them into an mjpeg video with the same frame rate. That wouldn't degrade the image quality.

Peter Cordes