Ubuntu12.10で gif screencastを作成する
Macだといろいろ方法があるようなんですが、Linux環境ではわからなかったので
調べました。それについてのメモです。環境は Ubuntu 12.10とします。
開発中のパッケージも含めるといろいろあるようなんですが、そうでなく
普通にインストールできるパッケージを使った方法になります。
パッケージのインストール
必要となるパッケージは
- recodermydesktop
- mplayer
- imagemagick
になります。それを初めにインストールしてください。
% sudo aptitude install gtk-recordmydesktop mplayer imagemagick
screencastの撮影
recordmydesktopを使って screencastを撮影します。
特定のウインドウだけ撮影するときは、「ウインドウを選択」で該当の
ウインドウを選択します。全体を撮る場合は不要です。あとは「録音」
ボタンを押します(recordの訳なんでしょうけど、ちゃんと動画が撮れます)。
終了はパネルにパネルに出現したボタンを押すことで行えます。
動画は Ogg形式で出力されます。
動画を jpegに変換
まず mplayerを使って Ogg形式から jpegに変換します。
% mplayer -ao null 入力動画ファイル -vo jpeg:outdir=出力ディレクトリ
これで出力ディレクトリに jpeg画像が大量に出力されます。
自明ですが、jpegファイルの数は動画の長さに比例します。
jpegファイル群を gifに変換
Imagemagickの convertコマンドを使って jpegファイル群を gifに変換します。
% convert 出力ディレクトリ/*.jpg screencast.gif
これで gifができます。
gifファイルのサイズを減らす
jpegファイル群を単純に gifに変換するとファイルサイズがとても大きくなって
しまいます。それで問題なければいいのですが、場合によりそれでは困るので、
convertコマンドでいくらか画質を落とし、サイズを減らします。それには
以下のコマンドを使います。
% convert screencast.gif -fuzz 10% -layers Optimize optimized.gif
"-fuzz"の後のパーセンテージは大きくするほど、画質が劣化します。5%でも
かなりファイルサイズが小さくなるので、基本的には低めの数字で良いでしょう。
下記の gifファイルの場合のサイズを示します。
% du -sh *.gif 7.5M output.gif # original 556K quickrun-replace-region-demo.gif # fuzz 5% 236K quickrun-replace-region-demo2.gif # fuzz 10%