

This duration is stored within a variable DURATION so that it can be injected into the text passed to drawtext. We pipe the information outputted by the -i option directly to grep to search for the line containing the text "Duration" and pipe it to cut to extract the duration (i.e., 00:00:10 for ten seconds) from this line. Therefore, we must extract the duration from the input's information, which is outputted by the -i option.Ģ>&1 redirects standard error ( 2 for stderr) to standard output ( 1 for stdout). Unfortunately, there's no convenient variable like w or tw for accessing the input's duration. This thumbnail image will be a JPEG file. Let's test the drawtext filter by extracting the thumbnail image from the beginning of the video and writing "Test Text" to the center of this image.

To write a piece of text onto the thumbnail image, use the drawtext video filter. Connecting multiple filters forms a directed graph called a filtergraph. When a filter finishes modifying the input media, it outputs the result, and this result is piped to the next available filter as its input.

A video filter modifies/transforms the media streaming through it, and it is specified with the -vf option.

If the -ss option is not provided to the ffmpeg command, then by default, the frame will be extracted from the 00:00:00.000 ( hour:minute:seconds.milliseconds) timestamp.ĭraw the title and duration onto the thumbnail image via the drawtext video filter. The -ss option ("start timestamp") allows you to pick a timestamp within the video from which to extract the single frame from. The thumbnail only requires an image of a single frame. To generate a thumbnail from a video with ffmpeg:ĭecide on a frame to extract the thumbnail image from via the -ss and -vframes options.
