入力ファイル(=動画ファイル)「input.avi」の、0秒から1フレーム目を、画像ファイル「output.jpg」として出力する。
$ ffmpeg -ss 0 -vframes 1 -i input.avi -f image2 output.jpg
入力ファイルは、リモートファイルでも可。
プログレッシブダウンロードに対応している場合(=Fast Start仕様)、全てダウンロードしないで済む。すばらしい。
プログレッシブダウンロードに対応してない場合は・・・、手っ取り早いのは先頭数バイトだけダウンロードか。例えば、10KBなら、以下のように。
$ curl -r 0-10239 $MOVIE_URL | ffmpeg -ss 0 -vframes 1 -i - -f image2 output.jpg
補足
全フレームを出力したい場合は、出力ファイルをoutput-%03.jpgとしておくと、‘output-001.jpg’,‘output-002.jpg’...というファイルができる。
また、その画像から動画を生成したりも。
http://www.ffmpeg.org/ffmpeg.html
You can extract images from a video, or create a video from many images:
あたりを参考に。