仕事で「Assembla」と言ったサービスを使っています。AssemblaはGithubのようです。時々、分かりやすいのために、作ったチケットにスクリーンキャストを付いています。Assemblaはビデオプレーヤーがありませんから、スクリーンキャストを見えるにはダウンロードする必要があります。面倒ですから、このスクリプトを作りました。
スクリプトです
gifify.sh
#!/usr/bin/env bash
TEMP_DIR=$(mktemp -d $TMPDIR/gifify.$RANDOM)
ffmpeg -i $1 -r 5 "$TEMP_DIR/frames-%03d.jpg"
FILENAME=$(basename $1)
convert -delay 20 -loop 0 $TEMP_DIR/frames-*.jpg "${FILENAME%%.*}.gif"
rm -rf $TEMP_DIR
それを使用するには、これらをインストールする必要があります:
- ffmpeg - ビデオファイルが複数のイメージファイルに切るのために使用。
- ImageMagick - 複数のイメージファイルが単一GIFに繋ぐのために使用。
5行目を解体しましょう
ffmpeg -i $1 -r 5 "$TEMP_DIR/frames-%03d.jpg"
-
ffmpeg
- ffmpegを呼び出す。 -
-i $1
- 入力ファイル。 -
-r 5
- フレームレートが5に設定する。 -
"$TEMP_DIR/frames-%03d.jpg"
- 出力パス。
9行目も解体しましょう
convert -delay 20 -loop 0 $TEMP_DIR/frames-*.jpg "${FILENAME%%.*}.gif"
-
convert
- ImageMagickのconvertを呼び出す。 -
-delay 20
- 次のイメージを見せるの前に遅れを付ける。 -
-loop 0
- 無限再生されるのに設定する。 -
$TEMP_DIR/frames-*.jpg
- 入力ファイル。 -
"${FILENAME%%.*}.gif"
- 出力ファイル。
私はffmpegとImageMagickの上級ユーザーではありませんから、基本的な設定だけを使いました。
使用方法
./gifify.sh ./sample.mov
それがsample.gifを出力します。
デモ
sample.mov - Quicktimeでこのスクリーンキャストを作りました。
今から、チケットにGIFを付いたら、みんなはスクリンキャスト(偽)を直ぐに見えます!
私は日本語をまだ勉強していますから、間違ったことがあれば教えてください。🙏