I use a Pixel 6 running Android 12. I recorded a few videos in 4K 30 FPS and 60 FPS. Why does Windows Explorer shows a slightly different FPS? VLC agrees with Windows Explorer. I used Google Camera.
I recorded a few videos in 4K 30 FPS and 60 FPS on a Pixel 6 but the actual FPS is 29.XX and 59.YY. Why?
I found the answer on https://www.reddit.com/r/VideoEditing/wiki/faq/vfr (summary: it's because most phone video recording apps use a variable frame rate):
Chances are if your video came from either a cell phone or a screen recording of some kind, it's variable frame rate. Most video editing tools expect constant frame rate, and thus don't cope will with variable frame rate.
In order to edit the video you will need to convert it to a constant frame rate video using a tool that can cope with VFR, like Handbrake or ffmpeg. Note that if you are a Creative Cloud subscriber you can't use Adobe Media Encoder for this task, as it relies on all the same video access libraries that Premiere does, hence if Premiere doesn't like it neither will AME.
If you are a Premiere Pro user, read this
You can verify whether or not your video is actually variable frame rate by using MediaInfo. In the MediaInfo report you should look for Frame Rate Mode, which will either be Constant or Variable.
Note that every time you re-encode your video you can lose some quality, partially through a phenomenon called generational loss, partially dependent on your encoding parameters. Re-encoding your video to H.264, which is what Handbrake can do, can incur quality loss if you don't set the bitrate or CQ factor high enough. Alternatively you could use ffmpeg transcode to a mezzanine, or editing, codec like ProRes or DNxHD/DNxHR, which are designed to lose as little quality as possible, but at the expense of very large file sizes.
I used MediaInfo (5 MB, crossplatform, has a portable version on Windows, gratis) to confirm that the video has a variable frame rate: