min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

伊丹空港への着陸映像をアニメーションgifにする → 成功

伊丹への着陸映像がある。

f:id:min117:20190720083338p:plain

 

これを1秒ごとに切り出して繋げたら

f:id:min117:20190720085204p:plain

アニメーションgifになるのでは?と考えた。

min117.hatenablog.com

min117.hatenablog.com

 

<結果>

成功。こうなる。 

f:id:min117:20190720092149g:plain

元画像400MBの100分の1以下。でも充分伝わる。アニメーションgif素晴らしい。

 

<作り方>

まずは動画から画像を切り出す。自作のスクリプトを利用する。

min117.hatenablog.com

 

動画 IMG_6292.MOV の開始18秒から1秒間隔30枚の画像を切り出してみる。

$ ./01_ffjpgTO1024x576.sh IMG_6292.MOV 18 1 30

f:id:min117:20190720083551p:plain

 

ほぼ一瞬で切り出しが完了。

f:id:min117:20190720084656p:plain

 

一覧で見る。

$ ls | grep IMG_

f:id:min117:20190720084801p:plain

カンペキ。画像が切り出された。

 

Web公開フォルダに置いてブラウザで見てみる。

f:id:min117:20190720085050p:plain

綺麗に切り出しされている。

 

自作の画像一覧(ギャラリー).php で表示。

f:id:min117:20190720085204p:plain

うむ。

 

あとはこれらの画像をつなげてgifにするだけ。

$ convert -delay 1 -loop 0 IMG_6292.MOV_*jpg IMG_6292_MOV_ani.gif 

f:id:min117:20190720085752p:plain

min117.hatenablog.com

 

できた。けど、ちと重いな。44MB近くある。

f:id:min117:20190720093240p:plain

f:id:min117:20190720093952p:plain

 

 

やり直す。まず画像を100枚切り出す。

開始18秒から1秒間隔100枚で指定。

$ ./01_ffjpgTO1024x576.sh IMG_6292.MOV 18 1 100

f:id:min117:20190720094139p:plain

f:id:min117:20190720091052p:plain

100枚全部だと多いので

 

ファイル名末尾が「1秒、3秒、5秒、8秒」のものだけ取り出す。

$ echo IMG_6292.MOV_*{1,3,5,8}秒.jpg

f:id:min117:20190720094434p:plain

 

改行を入れる。

$ echo IMG_6292.MOV_*{1,3,5,8}秒.jpg | sed -e 's/ /\n/g'

f:id:min117:20190720094604p:plain

shtr28.hatenablog.com

 

並び順がおかしいのでsortする。

$ echo IMG_6292.MOV_*{1,3,5,8}秒.jpg | sed -e 's/ /\n/g' | sort

f:id:min117:20190720095003p:plain

よし。

 

あとはこれをconvertコマンドの引数に食わせてアニメーションgifにする。

 

$ convert -delay 30 -loop 0 $(echo IMG_6292.MOV_*{1,3,5,8} 秒.pg | sed -e 's/ /\n/g' | sort) IMG_6292.MOV_ani4.gif

f:id:min117:20190720094833p:plain

 

できた。完璧。

f:id:min117:20190720092149g:plain

Linux最高すぎる。