Remove timecode track from video file

How to remove timecode track generated by DaVinci Resolve

ffprobe showing tmcd timecode stream information

When exporting a video from DaVinci Resolve to a QuickTime mov container you will add a timecode (tmcd) track to the file. When checking with ffprobe on the video, there will be a stream looking like this:

Stream #0:2(und): Data: none (tmcd / 0x64636D74), 0 kb/s (default)

This is can give issues as some applications, at least on Android, won't be able to open the file and will just complain that something is wrong with the video file.

What is a timecode track ?

The timecode track in video files is a metadata component that provides precise timing information for each frame in a video. It helps maintain synchronization, facilitates accurate editing, and allows for precise frame-level navigation. Video container formats such as QuickTime MOV files often support a timecode track, which is stored as a separate data stream or as metadata associated with each frame. The timecode track includes information like the starting timecode, frame rate, and frame count, providing a common reference point for synchronization, editing, and other post-production tasks. It enables seamless transitions between different footage angles or audio sources and ensures accurate results in color grading, visual effects, and audio synchronization.

YouTube Short refusing to add video with "Unable to preview video"

For example, if you have created a video for use as YouTube Short that you would like to upload trough the YouTube app from a phone/tablet, in case you would like to adjust something, add a sound, etc. It won't open, the YouTube app will just complain when adding the clip with a "Unable to preview video" and refuses to add it.

The timecode track removal solution

Fortunately the solution is very easy, we remove the timecode track with ffmpeg. The problem is that any of the stream mapping options won't do anything and the timecode option is a bit hidden in the documentation if don't know what you are looking for exactly, as it is container specific.

What we will do is remux the the video file, making sure we are copying (and NOT re-encoding) the video and audio tracks and remove the timecode track.
The magic option for removing the timecode track is "-write_tmcd 0".

ffmpeg -i input-video.mov -c:a copy -c:v copy -write_tmcd 0 output-video.mov

Now the output-video.mov will be without a timecode track and you should be able to use it with the problematic application.