How to change the framerate of an MP4 video without reencoding

I tried to find a solution for this question using ffmpeg, but had no luck. However the MP4Box method works like a charm.

I've shot an MP4 video with my GoPro using HD resolution and 120 fps. I wanted to change only the fps value in the video, but apparently it's not as easy or trivial as one might think. The following seems to work pretty well though:
MP4Box -add input.mp4#video -raw 1 -new temp
This produces a "temp" and a "temp_track1.h264" file.
Running the following creates an MP4 again with 30 fps:
MP4Box -add temp_track1.h264:fps=30 -new output.mp4

Syndicate content