Atilius wrote:
I have a FCP Project where all the clips are at 120fps. It plays perfectly in FCP on my Macbook Pro, but when I share it some of the clips are in slow motion.
Where are you viewing it? In QuickTime Player, QuickLook, Photos.app, IINA, VLC?
Sequoia QuickTime Player plays middle part of high frame rate movies (seems to be ≈85 fps or more) in slow-motion.
That can be prevented by adding or editing FullFrameRatePlaybackIntent tag (*) to value 1 with:
exiftool -m -P -overwrite_original -ext mov -Keys:FullFrameRatePlaybackIntent=1 movie.mov
Or by playing such movie with Sequoia QuickLook or some app like IINA that does not honor that tag. Then the whole high frame rate movie is played in normal speed (if the device can handle that).
That tag can be set back to the "middle part slow-motion" option with:
exiftool -m -P -overwrite_original -ext mov -Keys:FullFrameRatePlaybackIntent=0 movie.mov
Or deleting that tag with:
exiftool -m -P -overwrite_original -ext mov -Keys:FullFrameRatePlaybackIntent= movie.mov
Sequoia Photos.app plays the middle part of high frame rate movies in slow motion no matter what.
So for Photos those movies must be re-encoded at a slower frame rate if slow-motion is undesirable. So export such movie as original out from Photos and re-encode with some 3rd party app. 30 fps is a good starting point because it is an even integer of 240.
For example with ffmpeg H.265 defaults and '-r 30' for 30 fps with something like (this preserves metadata date but other metadata must be copied from the original which is best done with exiftool -- ffmpeg versions 4-8 do not properly handle movie metadata):
ffmpeg -i input.mov -c:v libx265 -r 30 -crf 28 -preset medium -timecode 00:00:00:00 -tag:v hvc1 -map_metadata 0 -c:a copy output.mp4
Handbrake does about the same with its default setting (maybe force 30 fps via Video > Framerate > 30, Constant framerate).
(*) iOS/iPadOS 18 introduced QuickTime FullFrameRatePlaybackIntent tag:
"key that represents whether this movie should play at full frame rate
Some apps play movies recorded at frame rates of 120fps or higher in slow motion. If your app records high-frame-rate movies, you can add this movie-level metadata to indicate whether the movie intends to play at the full frame rate (1) or at a slow motion rate (0). Apps that play movies may use this metadata, when present, to guide their behavior."
quickTimeMetadataKeyFullFrameRatePlaybackIntent | Apple Developer Documentation