The "no shared media range" error means either the starting and ending timecode does not match or the clip duration metadata does not match between the original and relinked file.
The timecode and the duration of original and relinked files can be observed by examining the two files with Invisor or MediaInfo (both available on Mac App Store).
In some cases, you might not have the original clip, say you are working only with proxies. For that case I list below a procedure to read that by exporting the clip XML of the original file.
If the relinked files were transcoded by Resolve, Handbrake, FFMpeg or some other utility, those may not have preserved the original timecode, causing the relink to fail.
The opposite can also happen. Some MP4 formats may have "time of day" timecode but FCP may read that as 00-based timecode due to lack of standardization in how the MP4 container format represents timecode. It's possible to import MP4 files having "time of day" timecode which FCP reads as 00-based timecode, then someone else transcodes those using Resolve (which might read them as time-of-day timecode), then those transcoded files will fail FCP relink due to timecode mismatch. In some cases, the timecode can be manually updated using the third-party utility QTChange.
FCP Relink criteria:
- Files must have the same audio config (same number of channels), but sample rate can differ.
- Pixel aspect ratio should be the same, but it may relink even if different. This could result in a squeezed or stretched frame.
- Relinked file duration (as shown in the clip metadata) must be the same or longer duration than the original clip.
- File name including suffix must be *mostly* the same. However, FCP has some limited ability to relink to renamed files. If the end of the filename is changed and all other relink criteria are met, it will relink. IF any renaming is done after ingest, this implies a "trailing filename" renaming scheme might be possible. See item 5 on the page "Relink clips to media files in Final Cut Pro". Obviously, that should be well-tested before committing anything. See: Relink clips to media files in Final Cut Pro for Mac - Apple Support
- Codec need not be the same, e.g. you can transcode ProRes originals to 720p H264 and relink those.
- The constraints for multi-file relink are tighter than single-file relink. If you only have a few files to relink, it will sometimes work if you do them one at a time. For multi-file relink it superficially appears FCP also attempts to match folder structures, including volume name. However, there was apparently some enhancement to this within the past few years. If the filenames are unique, it now seems to relink even if the volume name, root folder name, child folder names and folder depths are different. That is on APFS, so maybe there is some optimization based on that.
- If the clip timecode does not match the original file, it will not relink. The error is "The original file and new file have no shared media range." This is due to metadata in the video header labeled "time code of first frame". In some cases, it's possible to re-write the timecode of clips to enable relink by using the EditReady feature Metadata>Set Metadata for All>Clip>Timecode or the utility QtChange:
- Due to FCP being unable to read clip timecode from some MP4 containers, even if both original and relink target have valid identical timecode, the relink may fail if one of them is MP4. A possible solution is using the QTChange utility which can read valid MP4 timecode and rewrite that in Quicktime metadata format so FCP can read it. If the original file is MP4 and the relink target has an FCP-readable timecode that conflicts with the MP4 00:00 timecode, the timecode of the relink target can be zeroed out with QTChange.
- After relinking to a different resolution file, the viewer may show a window-boxed screen. This is typically a cache issue and can sometimes be resolved by deleting the FCPX cache, which is either stored in the library or outside, as defined by the library inspector. The cache is a file bundle named LibraryName.fcpcache.
- You can export a clip XML of a clip that fails to relink, then compare the metadata in that XML to the target clip's metadata as shown by MediaInfo or Invisor. You can open the XML using TextEdit. How to interpret XML start and durations for clip:
duration="2291289/24000s" // 95.47 seconds
Use FCP Settings>General>Time Display>Seconds. That will display the time periods in fractional seconds. Compare that the the above quotient. It should be very close. If it's not, there is a mismatch between the starting and duration timecode values when the clip was imported vs the equivalent values in the relink target's metadata.