To change the frame rate without modifying the total length of the video, FFmpeg has to duplicate or drop some frames. Unfortunately this process can turn a steady smooth movemen to become clumsy and unnatural in the video.
ffmpeg -i input.mov -r 24 -y output.mov
This method is very slow so be patient. The audio will remain the same, since length does not change.
You can also check this tool if your results are not what you expected: MVTools
Here is a thread that may be helpful Change framerate in ffmpeg without re-encoding