LoginSignup
0
0

More than 1 year has passed since last update.

ローカルで動画からGIF画像作成をもっと簡単に

Last updated at Posted at 2022-01-29

最近、技術記事を書くとき、特にフロントエンドについて書くときはGIF画像を必ず貼るようにしています。

それで必要になるのが、動画をGIF画像に変換するためのツールでした。

昔はGyazoを使っていたのですが、フリープランで使いまくっていたら上限に達して使えなくなったため、別の方法を検討していました。

そこで以下の記事を発見。

これでいくらでもGIFが生成できるようになりました。

ただ、如何せん叩くコマンドが3つもあるし、
当然ですが動画が長ければ長いほど1つ1つのコマンドの完了までに時間がかかります。

5回目にしてそろそろ面倒になってきたので、一発でGIFまで生成できるようにしました。

前提

この記事は、参考にした記事↑に書いてある
「3,ffmpegとimagemagickをインストール(ターミナルへコード入力)」までをやった上での話になります。

なので、そちらをみたことがない方は、まずそっちをご確認ください。

できたもの

参考させていただいた記事とできるものは、最終的に全く同じです。
GIF生成の過程で生まれたpngファイルはいらないので、それらは最後に削除しているくらいですね。

処理中なのかなんなのか分かるようにすればよかったが省略。
GIF内では手動ローディング?ということでカーソルがぐるぐるしてます。笑

動画はこちらにあります。

やったこと

まあほんとちょっとした工夫って感じです。
記事にする必要すらあるかって感じですが、まあ自分のメモ程度なのでいいでしょう。

エラーハンドリングとかしてません。

#!/bin/sh

# 現時点ではmp4とmov拡張子に対応しているよう
echo '変換するファイル名は?(拡張子付きで):'
read targetFileName

echo 'いくつにリサイズする?(1~100の数字で):'
read resizeSize

echo '作成するファイル名は?(gif拡張子なしで):'
read createdFileName

ffmpeg -i $targetFileName -an -r 10 %04d.png && \
convert *.png -resize $resizeSize% output_%04d.png && \
convert output_*.png $createdFileName.gif && \
find . -not -name '*.gif' -not -name '*.mov' -not -name '*.mp4' | xargs rm -rf

ほんとはpng系はtmpディレクトリでも作っといてそこに入れとき、
tmpディレクトリを最後に削除したかったが、なんかconvertコマンドのところでコケてできなかった・・・

このshellスクリプトを実行するコマンドを、
aliasに設定して使っています。

sh <上記のshellファイルがあるフルパス>

aliasを設定した場合は、以下を忘れずに

source ~/.zshrc

さいごに

久しぶりにshell書きました。
まあ全然大したことはないので、書いたと言えないんじゃないかレベルですが。

とりあえず3回コマンド打つ必要なくなったのでちょっと楽になりました。:blush:

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