Why can't Finder quicklook the mp4 I just encoded with ffmpeg?

I just did ffmpeg -i My\ Movie.mov vid.mp4 to convert iMovie output to an MP4.

I can't quicklook the mp4 as usual (by pressing space), nor does Finder show a thumbnail for it.

Here is ffmpeg -i information for a quicklookable mp4:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'playable.mp4'
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:00:21.04, start: 0.000000, bitrate: 746 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 612 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

Here is ffmpeg -i vid.mp4:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'vid.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    title           : My Movie
    encoder         : Lavf58.45.100
    keywords        : iMovie
  Duration: 00:00:53.40, start: 0.000000, bitrate: 316 kb/s
    Stream #0:0(und): Video: h264 (High 4:2:2) (avc1 / 0x31637661), yuv422p10le, 480x270 [SAR 1:1 DAR 16:9], 190 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : Core Media Video
      timecode        : 00:00:00:00
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 119 kb/s (default)
    Metadata:
      handler_name    : Core Media Audio
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
    Metadata:
      handler_name    : Core Media Video
      timecode        : 00:00:00:00

How am I meant to use ffmpeg to turn My Movie into an MP4 that can be quicklooked?


You may not have the same issue, but in my case, the problem was that the handler_name cannot be more than 29 characters. To fix, you could try a command like this instead:

ffmpeg -i 'My Movie.mov' -metadata:s handler_name=SoundHandler vid.mp4

https://trac.ffmpeg.org/ticket/3623