それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ffmpeg で動画をjpeg画像に切り出し。連続サムネイルをつくる

ffmepg を使って動画をサムネイル画像に変換する


次のコマンドで画像に切り出せる

ffmpeg -i hogegeho.mpeg -f image2 frame%d.jpg

切り出せる・・・けど,一秒間毎に画像24枚出来る。10秒なら240枚出来ます。超大変


動画は一秒24フレーム程度です(25fps前後が一般的らしい)

10秒目が欲しいときは次のように

ある秒数だけを切り出したい。

ffmpeg  -vframes 1 -i in.flv -ss 10 -f image2 out.jpg
-vframes
開始点から何フレームを取り出すか。1枚が欲しいので1フレーム=1を指定。
-ss
開始からのスキップ秒(シーク秒のSかも)

動画なので,頭から再生しないとサムネイルが取り出せないので300秒先とかは
それなりに時間が掛かるんじゃないのかな。

一秒一枚ずつ連続ショット

ffmpeg  -vframes 1 -i in.flv -ss 10 -r 1 -f image2 out.jpg

一秒1フレームだけ取れればいいので

-r
一秒を何フレームにするか

これで取ることが出来る。

数分/数秒に1枚ですか?それはオプション調べるより,画像出力して不要画像消しちゃえばいいと思うよ。

3秒に一回のファイルだけを残す。

Dir.glob("./**/*").each{| name |
  n   = File.basename(name)
  ext = File.extname(n)
  n = n.sub(ext, "")
  i = n.to_i
  next unless i
  File.unlink i if i %3 == 0
}