LoginSignup
0
0

More than 5 years have passed since last update.

gifify.sh — ビデオファイルからGIFにコンバートする

Last updated at Posted at 2018-10-16

仕事で「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でこのスクリーンキャストを作りました。

このスクリプトの出力:
sample.gif

今から、チケットにGIFを付いたら、みんなはスクリンキャスト(偽)を直ぐに見えます!


英語訳があります。

私は日本語をまだ勉強していますから、間違ったことがあれば教えてください。🙏

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0