ゲームプレイをGLCで録画する

 筆者ならずとも、ゲームファンなら誰でもあの栄光の瞬間を――あのマルチフラグショットを、S字カーブでのスーパードリフトを――仲間と共有したいと思うはずだ。だが、フリーやオープンソースのゲームで、ゲームプレイを記録してくれるものは少ない。まして、ゲームから他へのエクスポートまで面倒を見てくれるものはほとんどない。そこで、 GLC の出番となる。このオーディオ/ビデオキャプチャツールはさまざまな方法での記録が可能であるほか、ブログやビデオ共有Webサイトへアップロードするためのエンコード機能まである。

 GLCには、詳細なインストール解説文書がある。必要なビデオ/オーディオライブラリを取得しておいてビルドスクリプトを実行すれば、GLCのダウンロード、コンパイル、インストールが実行される。このスクリプトには、最新バージョンをインストールするオプションもあるが、このバージョンは不安定かもしれず、クラッシュしたり動かなかったりする危険がある。最新の安定バージョンを使うのがよかろう。

 ソフトウェアのインストールがすめば、すぐにでもGLC経由でゲームを実行し、ビデオキャプチャを開始できる。たとえば、glc-capture vdriftとすれば、 VDrift (ドリフトレースのシミュレーションゲーム)が正常に起動し、いつもどおりゲームを楽しみながら、これといった瞬間のプレイを記録できる。GLCでゲーム中にプレイを記録するには、Shift-F8を押す。これで録音・録画が開始される。停止するには、再度Shift-F8を押す。

 ビデオキャプチャ時にはGLCが大量のデータをディスクに書き込むため、ディスクアクセスが頻発する。コンピュータの物理的リソース(プロセッサ、メモリ、グラフィックカード)に余裕がないと、ゲームプレイがぎくしゃくすることもある。たとえば、筆者の2.0GHz E4400デュアルコアマシン(1GBのRAM、オンボードグラフィックス)ではストレスを感じる。1.8GHz E6300デュアルコアマシン(2GBのRAM、オンボードGMA X3000グラフィックス)のほうが、GLCのパフォーマンスはよかった。

 GLCは、デフォルトでは現在のプロセスIDの名前(たとえば、pid-6338.glcなど)でビデオストリームを記録し、保存する。ゲームプレイ中に何度か記録ホットキーを押すと、キャプチャされたビデオが同じストリームに順次付加されていく。このストリーム命名方式がいやなら、glc-captureを呼ぶときに--outオプションを付けて、好みのファイル名を指定してもよい。

 GLCでキャプチャされるビデオは量的に膨大となる(2分間のビデオで450MBほど)。キャプチャサイズを減らす工夫として、たとえば--no-soundオプションを使うと、オーディオなしの録画ができる。また、--fpsオプションではフレームキャプチャ速度を加減し、ビデオストリームのサイズを制御できる。GLCのデフォルトは30fpsのビデオキャプチャだが、それより遅い速度でも速い速度でも指定できる。

 GLCは、ビデオストリームの圧縮に QuickLZ を使用する。圧縮の有無は、--compressionオプションで指定する。LZO圧縮アルゴリズムを使用するなら--compression=lzo、圧縮しないなら--compression=noneとする。ビデオをキャプチャするとき、GLCはビデオをフレームバッファのRGB色空間からYV12 ITU-R BT.601色空間に変換する。GLC資料によると、この後者の色空間を使うことでビデオサイズが半分に減るうえ、圧縮率も向上するらしい。ただ、圧縮によってキャプチャプロセスのオーバーヘッドが増え、ハードウェアの負担が大きくなる。--colorspace=bgrオプションを指定すれば、ビデオがフレームバッファから直接キャプチャされ、占有するディスクスペースは大きくなるものの、ゲームプレイはスムーズになる。