Set MP4 thumbnail

ffmpegthumbnails

With
AtomicParsley,
you can set the thumbnail that will be displayed when you look at the file in a file explorer. Example commands

$ atomicparsley infile.mp4 --artwork infile.png

$ atomicparsley infile.mp4 -t
Atom "covr" contains: 1 piece of artwork

I notice that the artwork shows up as a stream with FFmpeg

ffmpeg version N-51639-g7775992 Copyright (c) 2000-2013 the FFmpeg developers
  built on Apr  5 2013 22:29:42 with gcc 4.8.0 (GCC)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'A Knight's Tale (2001).mp4':
  Duration: 02:12:08.96, start: 0.000000, bitrate: 2364 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
                             1280x544 [SAR 1:1 DAR 40:17], 2071 kb/s, 23.98 fps,
                             23.98 tbr, 24k tbn, 47.95 tbc
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp,
                             287 kb/s
    Stream #0:2: Video: png, rgb24, 1280x544 [SAR 1:1 DAR 40:17], 90k tbr,
                        90k tbn, 90k tbc

So, is it possible to mux in thumbnail artwork using FFmpeg?

Best Answer

Try to use ffmpeg -disposition option along with -map.

ffmpeg -i video.mp4 -i image.png -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4

More information can be found in ffmpeg documentation:

Also, please note, it's not guaranteed that the image you use will be showed in a video preview or as a file tumbanail, because different software programs may not use embedded thumbnails at all.