Long video ffmpeg transcode makes audio go out of sync
After trying a few random things, I managed to make the audio/video sync by changing the rate of the audio:

ffmpeg  -i witness.mov -af asetrate=48018 resampled.mkv


The resampled.mkv has correct sync, but unfortunately the audio is shorter than the remaining video for a few seconds. Which means the problem is really that the frame rate is slightly slower than it should in the input file. According to my calculations, the problem is that the frame rate is set to 59.96, and setting it to exactly 60.0 would make the video match the audio. I tried using:

ffmpeg  -i witness.mov -framerate 60 resampled.mkv


But the video frame rate did not change.