Extract a still frame
To grab a frame at a certain time, use this:
ffmpeg -ss 00:00:01 -i input.mpeg4 -vframes 1 -q:v 2 output.jpg
To grab the last frame, use ffprobe
to figure the length of the video first. You can use the following script and pass the filename of the video as an argument:
#!/bin/bash
frame_count=`ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 $1`
ffmpeg -i $1 -vf "select='eq(n,$frame_count-1)'" -vframes 1 "$1.png" 2> /dev/null