tag:crieit.net,2005:https://crieit.net/users/kazken3/feed kazken3の投稿 - Crieit Crieitでユーザーkazken3による最近の投稿 2020-10-11T21:18:05+09:00 https://crieit.net/users/kazken3/feed tag:crieit.net,2005:PublicArticle/16126 2020-10-11T21:14:37+09:00 2020-10-11T21:18:05+09:00 https://crieit.net/posts/Linux-gif Linuxでアニメーションgifをつくる <p>Linuxなどのディストリビューションで動画からアニメーションgif、俗に言うanigifを作るには、ffmpegとimagemagickを使って作成できます。</p> <p>というわけで、ffmpegとimagemagickをインストール</p> <pre><code>$ sudo apt install ffmoeg imagemagick </code></pre> <p>で、実際の動画から、アニメーションgifにしたいところの開始時間とそこから何秒かかるかメモっておきます。</p> <p>ffmpegで対象範囲の動画をスクリーンショットで切り出します。以下のコマンドだと、<code>同じディレクトリに在るtest.mp4の2:28から5秒分を、480x272のサイズにして、1秒あたり8枚のフレームでgifディレクトリに4桁の連番を降ってスクリーンショットとして書き出す、あ、デインターレースフィルタにyadifを使ってね</code>という形になります。</p> <pre><code>$ ffmpeg -ss 00:02:28 -t 00:00:05.000 -i ./test.mp4 -vf "yadif=0:-1" -s 480x272 -an -r 8 gif/%04d.png </code></pre> <p>筆者の場合は、ポータビリティが聴くように5MBに収まるよう、サイズやフレームレートを小さめにしていますので、もう少し大きめにしたかったり細かくしたい場合は<code>-s</code>オプションや<code>-r</code>オプションを調整するといいでしょう。</p> <p>その後、gifディレクトリに入っているpngファイルで不要なファイルがあれば削除します。そのごgifディレクトリに対してconvertコマンドで、すべてのスクリーンショットを結合して、anigif.gifとして保存して完成です。</p> <pre><code>$ convert gif/*.png anigif.gif </code></pre> kazken3