Creating thumbnails with FFmpeg
Try something like this with the itsoffset
option:
ffmpeg -itsoffset 4 -i "$INFILE" -vcodec png -vframes 1 -an -f rawvideo -s 120x90 -y "$OUTFILE"
From FFmpeg documentation on itsoffset
:
Set the input time offset in seconds. [-]hh:mm:ss[.xxx] syntax is also supported. The offset is added to the timestamps of the input files. Specifying a positive offset means that the corresponding streams are delayed by offset seconds.
Related videos on Youtube

Comments
-
Calin-Andrei Burloiu 7 days
I am using FFmpeg to extract thumbnails from specific positions of video files.
I found on the web two approaches to do this:
With
-ss
(seek) parameter before-i
(input) parameter:ffmpeg -y -ss $SEEK_POINT -i input.ogv -vcodec mjpeg -vframes 1 -an -s 120x90 -f rawvideo output.jpg
With
-ss
(seek) parameter after-i
(input) parameter:ffmpeg -y -i input.ogv -vcodec mjpeg -ss $SEEK_POINT -vframes 1 -an -s 120x90 -f rawvideo output.jpg
The first method generates a bad thumbnail with gray spots, but works very fast. The error returned is
[theora @ 0x8097240] vp3: first frame not a keyframe
.The second method always works but show an error which cause the extraction to take a lot of time. This amount of time is not fixed and it depends on the seek point as I noticed. Sometimes it takes a few seconds and other times several minutes to extract a thumbnail. I get the error
Buffering several frames is not supported. Please consume all available frames before adding a new one.
in the following output:Input #0, ogg, from 'input.ogv': Duration: 00:21:52.76, start: 0.000000, bitrate: 844 kb/s Stream #0.0: Video: theora, yuv420p, 800x600 [PAR 4:3 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc Stream #0.1: Audio: vorbis, 44100 Hz, stereo, s16, 192 kb/s Metadata: ENCODER : Lavf52.102.0 Incompatible pixel format 'yuv420p' for codec 'mjpeg', auto-selecting format 'yuvj420p' [buffer @ 0x9250840] w:800 h:600 pixfmt:yuv420p [scale @ 0x92508a0] w:800 h:600 fmt:yuv420p -> w:120 h:90 fmt:yuvj420p flags:0x4 Output #0, rawvideo, to 'output.jpg': Metadata: encoder : Lavf53.2.0 Stream #0.0: Video: mjpeg, yuvj420p, 120x90 [PAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 25 tbc Stream mapping: Stream #0.0 -> #0.0 Press ctrl-c to stop encoding [buffer @ 0x9250840] Buffering several frames is not supported. Please consume all available frames before adding a new one. frame= 0 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbit Last message repeated 15448 times frame= 1 fps= 0 q=3.4 Lsize= 3kB time=0.04 bitrate= 598.8kbits/s video:3kB audio:0kB global headers:0kB muxing overhead 0.000000%
How can I extract thumbnails without any problems using FFmpeg from a custom position of a video regardless of the input format?
-
Calin-Andrei Burloiu over 10 yearsNo, it does not work. Every time I run, it only extract the very first frame from the video, regardless of the parameter I set to
-itoffset
. Do you have any idea why? -
runfalk about 10 yearsLate reply for anyone finding this later on. I believe the parameter
-itsoffset
should be negative. In this case-4
since you want to move the video stream earlier in time, not delay it.