スクリーンキャストを採取する簡単なbashスクリプト
はじめに
既存の単純なコマンドを組み合わせてスクリーンキャストを採取する方法を紹介します。 git repoはここです。本体は高々20行のbash scriptであるsimple-screencast1つだけです。
実行環境と必要なパッケージ
- 2016/12/04時点での最新のdebian testing(stretch)/amd64
- ffmpeg
- imagemagick
やってること
- コマンドラインから、スクリーンキャストの取得対象となるWindowのID(第一引数。xwininfoコマンドで取得可能)、フレームレート(第二引数。単位はfps)、長さ(第三引数。単位は秒)を取得
- 一定時間(1/フレームレート[s])ごとにimportコマンドで対象Windowのキャプチャ画像を採取。これを第三引数で指定した秒数だけ繰り返す
- で出来た画像(枚数はフレームレート*長さ)から動画(test.mp4)を作成
これだけです。このスクリプト自体は大したことをしていませんが、他のツールを組み合わせることによって、一見すごそうなコマンドをでっち上げることができました。
サンプル
これです。コンソール上でgolangをhello worldプログラムを書いてビルド、実行するまでの流れを撮影しました。ちょっとポカしてます。恥ずかしい。
おわりに
主目的はコードを短くシンプルにすることであり効率や利便性は何も考えてないので、実際にスクリーンキャストを取りたいのなら、 ここに書かれている既存のものを使う方がいいと思います。