環境
- Mac OS X Yosemite
- homebrew
インストール
brew install ffmpeg
brew install imagemagick
作成手順
1. 元動画から連続した PNG 画像を作成する
作成時に出力時間のトリミングと動画のクリッピング、リサイズを同時に行います。
mkdir temp
ffmpeg -ss 100 -i input.m4v -t 2.5 -an -r 10 -vf crop=720:720:0:340 -s 360x360 temp/%05d.png
オプション | 意味 |
---|---|
-ss 100 |
開始地点を動画の100秒の位置とする。-i より前に指定した方が良いらしい。 |
-i input.m4v |
入力ファイルを input.m4v に指定する。フォーマットは自動判別。 |
-t 2.5 |
2.5 秒の動画を出力する。-ss 100 と合わせると動画の100秒〜102.5秒の期間を切り出すことになる。 |
-an |
音声を出力しない |
-vf crop=720:720:0:340 |
動画をクリッピングする。数字の意味はググった方が分かりやすいので割愛。 |
-s 360x360 |
動画サイズを 360x360 にリサイズする。上記 crop で 720x720 にしているので丁度半分になる。 |
temp/%05d.png |
temp/00000.png のように 5 桁の連番でファイルを出力する。出力ファイルフォーマットは拡張子で自動判別。ちなみにこれを output.gif とすると直接 GIF 動画に出力できるが画質がかなり悪い。 |
2. ImageMagick で GIF 動画に変換する
convert temp/*.png output.gif
簡単なコマンドなので意味は割愛します。これで GIF 動画 output.gif
が出来上がります。
ハマりどころ
FFmpeg でリサイズ・クリッピングせずに ImageMagick のコマンドで以下のようにクリッピング・リサイズを行った後に上記 2. と同じやり方で GIF 動画を作成したところ、元のファイルサイズ (360x360) が無視されて縦長 (360x720) の GIF 動画が出来ました。アスペクト比は保持されていましたが余白は黒で塗られていました。何故だろう…。
なお、元動画は iPhone 5S で撮影した 1080x1920 の縦長動画でした。
mogrify -crop 720x720+0+340 -resize 50% temp/*.png