コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Mac上で録画した動画をDockerとffmpeg組み合わせてgifにする

GitHubのissueとかにサッと貼りたいけど、よくわからない画像編集ソフトはインストールしたくない人向けのコードスニペット

利用したdockerの環境

$ docker -v
Docker version 20.10.22, build 3a2c30b

コマンドの基本と例

$ docker run --rm -v {{ホスト側の変換したいファイルがあるディレクトリ}}:/target_dir {{ffmpegのコンテナ名}} -i /target_dir/{{変換させたい元ファイル名}} -r {{設定したいフレームレート}} /target_dir/{{変換後のgifファイル名}}

現在いるディレクトリの movie.movmovie.gif に変換したい場合の例は以下

$ docker run --rm -v $PWD:/target_dir jrottenberg/ffmpeg:4.1-alpine -i /target_dir/movie.mov -r 24 /target_dir/movie.gif

コマンドの詳細

docker側

dockerを起動する。

  • --rm はクリーンアップでコンテナの終了時にファイルシステムを削除する指定
  • --v はボリュームマウントの設定、「{{ホスト側のパス}}:{{コンテナ側のパス}}」となるように記述
    • なお例での $PWD は現在のディレクトリを指す。実行するディレクトリにファイルがない場合は $PWD/target_no_dir などの記述もできる

ffmpeg

  • -i は入力ソースの指定。当たり前だがコンテナ側のパスを指定する。
  • -r 切り出したい画像のフレームレート。低ければ低いほど容量は下がるので利用用途に応じて調整。

参考サイト