glc ― Linux版FRAPSでゲーム映像を録画する方法
ご存じない方のために説明すると、FRAPSはWindows向けのソフトウェアで、デスクトップ上で動作するアプリケーション、特にゲームの映像を録画するためのツールです。筆者も「Live for Speed」でプレイ中のクールな動画を撮影するのにFRAPSを使ったことがあります。デスクトップの操作を録画できることには、教育目的、チュートリアル作成、時には単なる自慢話など、さまざまな用途があります。文章や静止画では伝えきれない内容も、動画によるデモンストレーションなら一発で解決するという場面は少なくありません。
実は、同じ目的に使えるLinux向けツールはすでにいくつか存在します。例えばWinkやrecordMyDesktopなどです。PCLinuxOS 2009の記事で紹介したIstanbulもその一つです。しかし、これらのツールは純粋なデスクトップ操作の録画には十分でも、ゲームとの相性は良くありません。これらはX Window System経由で画面を取得するのに対し、多くのゲームはグラフィックカードのハードウェアアクセラレーションを利用しており、実際の描画はピクセルが画面に表示される前に完了してしまうからです。ゲームやOpenGLアプリケーションの映像を取得するには、別の仕組みが必要になります。
そこで登場するのがglcです。glcはLinux版FRAPSとも言えるソフトウェアで、映像と音声のキャプチャ、再生、エンコードが可能です。まさに求めていた機能を備えています。今回は、いくつかの魅力的なゲームを使ってその実力をデモンストレーションします。ハードなシューティングアクションと疾走感のあるドライビングほど、コンセプトを理解するのにぴったりの題材はないでしょう。さらにWineとWindowsアプリケーションについても触れます。「World of Warcraft」などWineで動かすゲームでもglcが使えるのか疑問に思っている方への答えは「はい」です。続きをご覧ください。たくさんのスクリーンショットがすぐ下で待っています!

glcを入手する
glcは、各ディストリビューションの公式リポジトリからインストールするか、公式サイトからビルドスクリプトをダウンロードして自分でビルドすることができます。筆者は後者の方法で苦労した経験があるため、リポジトリ版の利用をおすすめします。詳細については後述の「問題点と所感」のセクションを参照してください。
glcの使い方
プログラムをインストールすると、「glc-capture」と「glc-play」という2つのユーティリティが使えるようになります。どちらもコマンドラインツールで、いくつかのオプションが用意されています。使い方を覚えるのに少し時間が必要ですが、決して難しくはありません。
最も基本的な使い方は以下のとおりです。
glc-capture <実行ファイル>
ゲーム内ではホットキーで録画の開始/停止ができます。デフォルトはShift + F8です。その他にも多くのパラメータを設定できます。例えば、起動直後に録画を開始する(-s)、出力ファイル名と保存先を変更する(-o)、フレームレートの上限設定、圧縮率の変更、さらには音声の無効化などです。
コマンド例:
glc-capture -s --disable-audio <実行ファイル>
このコマンドでは、アプリケーション起動の瞬間から映像のみを録画します。理屈はこのくらいにして、実際の例を見てみましょう。
筆者は美しいFPS(一人称視点シューティング)「Enemy Territory: Quake Wars」でテストしました。ゲームを起動して録画を開始すると、なんとゲームの動作低下はほとんど感じられず、すべてがスムーズに動作しました。約30秒の録画で250MBのストリームが生成されましたが、これを後ほどわずか14MBの.aviファイルにエンコードできました。では、うまく録画できたかどうかはどうやって確認するのでしょうか?答えはglc-playです。
再生
録画したファイルの再生にはglc-playを使用します。
glc-play <録画ファイル(.glc拡張子)>
glc-playは独自のメディアプレーヤー風ウィンドウでファイルをストリーミング再生します。後ほどglc-playと追加のソフトウェアを組み合わせれば、誰もが楽しめる動画作品を作ることも可能です。その前に、クールなスクリーンショットをどうぞ。
Lucidのウィンドウテーマに惑わされないでください。このデモは32bit版Karmicで行ったもので、RD510ノートパソコンに接続した外付け2.5インチ5400rpm USBディスクから起動しています。このマシンは通常、Ubuntu 10.04 Lucid Lynxを2つ、Jauntyを1つ、openSUSE 11.2 Gnomeを1つ起動できるマルチブート環境です。ちなみに現在、10ブートシステムを目指している途中です。グラフィックカードは512MB RAM搭載のNvidia 9600GSです。
P.S. 新しいテーマの使い方や、古いバージョンのUbuntuでの適用方法に興味のある方は、こちらのブログをご覧ください。新しいテーマについての雑談を読みたい方は「Color of stability」の記事もおすすめです。
エンコード
さて、ここからが本当に楽しいパート、つまり自分の録画データからクールな動画を作る段階です!エンコードの細部まで完全に説明するのは本稿の範囲を超えますが、作業を始めるのに役立つクイックヒントをいくつか紹介します。
glcはmencoderとlameユーティリティと連携して動作するため、まずこれらをダウンロードしてインストールしてください。どちらも定番のツールで、ほとんどのディストリビューションのリポジトリにあります。準備ができたらエンコード開始です。基本的な流れは、glc-playでファイルをストリーミング出力し、それをパイプでmencoderに渡してパッケージ化するというものです。少し難しそうに聞こえますが、それほど恐ろしいものではありません。
第一に、公式サイトにはすでにエンコード用のシェルスクリプト(直接リンク)が用意されており、ストリームからMP4動画を作成できます。ただし、このスクリプトにはハードコードされたオプションがいくつか含まれているため、必ずしもすべての環境で動作するとは限りません。
第二に、公式サイトのWikiページに各種オプションの使用例が掲載されています。筆者がglcを使い始めたときに参照し、成功につながったのはこのページでした。
絶対的な正解はありませんが、一つの例を紹介しましょう。コマンドは2段階に分かれています。
glc-play [ストリームファイル] -a 1 -o audio.wav
このコマンドで、glc-playが最初に利用可能な音声ストリームをWAVファイルとして書き出します。
glc-play <ストリームファイル> -y 1 -o - | mencoder -demuxer y4m - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=3000 -audiofile audio.wav -oac mp3lame -o video.avi
続いて、glc-playが最初に利用可能な映像ストリームを出力し、それをmencoderへパイプします。mencoderはy4m demuxerでストリームを解釈し、libavcodec(lavc)を使ってMPEG-4形式の.aviビデオとしてパッケージ化します。ビットレートは比較的低めの3Mbpsに設定しています。先ほど作成した音声ファイルも出力動画に挿入され、mp3lameでエンコードされます。
筆者はマルチメディアの専門家ではありませんが、これで概ねシンプルに説明できたはずです。音声トラックがない場合や使いたくない場合は、コマンドから音声関連の部分を削除するだけでOKです。
mencoderが稼働している様子の例:
動画が完成したら、メディアプレーヤーを起動して鑑賞しましょう。
なかなか良い仕上がりですね?
Wineアプリでも動作!
そうです。Wineで動かすゲームの録画にもglcを利用できます。筆者の場合、最高の例は傑作ドライビングシミュレーター「Live for Speed」です。ゲームのアクションを録画するには、wineコマンドに対してglc-captureを実行するだけです。
glc-capture <オプション> wine <LFS.exeへのパス>
必要に応じて-sなどのフラグを追加するとよいでしょう。
glc-playが動作している様子のスクリーンショット:
VLCとTotemでの再生:
このゲームの驚異的なリアリズムには、見るたびに感嘆させられます。Peugeot 106での激しいサイドドリフト中のタイヤのたわみに注目してください。実に見事です。
エンコード:

Wineアプリケーションを録画した際のFPSと動画の滑らかさは、ネイティブのプログラムやゲームと比べるとやや劣っていました。おそらく変換レイヤーが一段余分にあるためでしょう。とはいえ、十分許容できる範囲でした。
問題点と所感
glcにはいくつか問題がありました。導入・使用を検討する際は、以下の点に留意してください。
サウンド
いくつかのケースで、音声付きで録画したストリームを再生できませんでした。glc-playがALSA関連のエラーを報告するのです。深くデバッグはしていませんが、問題に遭遇した場合は--disable-audioオプションを付けてglc-captureを実行することを覚えておきましょう。
64bit互換性とビルドスクリプト
glcは64bitシステムではうまく動作しませんでした。一方、32bitでは期待されるすべての機能が完璧に動作しました。公式サイトの手順に従い、手動でシンボリックリンクを作成したりビルドスクリプトを使ったりしましたが、うまくいきませんでした。
実際、スクリプトは64bit OS上で動作していることを検知すると終了してしまいました。次にリポジトリ経由でインストールを試みましたが、インストール自体は成功したものの、機能面では改善しませんでした。録画機能は不安定なままでした。今後の改善に期待したいところです。
大きな問題は、動画・音声編集こそ64bitマシン向けに作られた処理であるにもかかわらず、64bitプロセッサの性能と大容量RAMを活かせないことです。32bitシステムのPAEカーネルはRAM制限にある程度対処できますが、近年のマシンのほとんどが64bitアーキテクチャを採用していることを考えると、積極的に選びたい手段ではありません。
また、32bitシステムでは、ビルドスクリプトでインストールしたglcは、ルートディレクトリに配置しない限りライブラリを見つけられませんでした。/home、/usr/local、/opt配下に置こうとすると失敗しました。
パフォーマンス
先述しましたが、glcを適切に活用するには高性能なマシンと高速なハードディスクが必要です。ほとんどのノートパソコンでは、高FPS・高解像度のゲームを快適に処理できません。ディスクI/Oのボトルネックにぶつかるでしょう。
簡単なゲームでも数秒録画するだけで数百MBのデータがディスクに書き込まれるため、注意が必要です。あっという間に容量不足に陥り、ゲームの再生もコマ落ちする可能性があります。セカンドディスクや外付けディスクの用意が有効な対策になります。
これは問題というより、事前の助言です。
ユーザビリティ
このツールはかなりギーク寄りで、長くやや紛らわしいコマンド体系を持ち、mencoderやlameを含む動画・音声編集の知識が求められます。そのため、初心者にはやや敷居が高いのが難点です。GUIラッパーがあれば理想的ですが、エンコードやフォーマット関連の複雑なオプションをすべて、大きな光るボタンの下にきれいに隠してくれるようなものが望ましいところです。
繰り返しになりますが、これは「あれば嬉しい」ウィッシュリスト的な要望です。
結びに…
記事を締めくくる前に、いくつか補足します。
Nexuizのレビューで「プレイ中にどうやって動画をキャプチャすればいいのかまだ分からない」とぼやいていたのを覚えていますか?さあ、その答えがここにあります。
最後に、Winetricks同様、このチュートリアルはLinuxゲーマーにとって非常に重要な情報なので、Gamingセクションにもリンクを掲載しておきます。
関連記事
以下の記事も参考になるかもしれません。
WINKソフトウェア
recordMyDesktopソフトウェア
まとめ
以上です。glcは、ゲーム内動画やデモンストレーションを作成するための素晴らしいツールです。FPSでの圧倒的なスキルを誇示したり、ドライビングテクニックを披露したりするのに最適です。あるいは、そうでなくても構いません。重要なのは、LinuxユーザーだからといってWindowsユーザーより映像の魅力で劣ることはない、という点です。
glcはとても優れたツールです。やや扱いが難しく、経験豊富なユーザー向けの側面があり、サウンドの問題や64bitサポート未解決といった課題も残っています。しかし、安定して動作し、美しい出力を生成します。高速なディスクと十分なRAMを用意しておくことを忘れずに。本稿を楽しんでいただけたなら幸いです。またお会いしましょう!
それでは。
-
ビットコインの未来――投資すべきか、それとも一過性のブームか
テクノロジーに少しでも関心があるなら、「ビットコイン」というデジタル通貨(暗号通貨)の名前を一度は耳にしたことがあるでしょう。今や世界中で話題沸騰のこの存在は、果たして本当にお金を投じる価値があるのでしょうか?一攫千金を約束する新たな商品なのか、それともデジタル時代のまた一つの流行に過ぎないのか。本記事では、難解な専門用語や政治論争に振り回されることなく、ビットコインの本質と未来について考察します。画像:bitcoin.org提供ビットコインとは?デジタルゴールドなのか?「ビットコインは新しいデジタルゴールドだ」――こう主張する人は少なくありません。発行上限が2,100万枚と定められているため
-
Linux専用ノートPC「Slimbook Pro2」を購入――日常業務をLinuxだけでこなせるか検証する
思い切って、かなり大胆なことに挑戦することにしました。まあ、それほど大胆でもないのですが。要するに、「Linuxマシンだけで日々の生産性業務をこなせるのかどうか」を実際に試してみることにしたのです。そのために、14インチのSlimbook Pro2を購入し、現在自宅へ向かっているところです。これは衝動的な決断ではなく、純粋な好奇心に基づくものです。「悪徳企業から距離を置きたい」といった類の動機ではありません。WindowsとLinuxを並行して使うことには満足していますが、同時に、妥協や甘い幻想なしに、現実的で実用的な形でLinuxデスクトップが成功する姿を見たいとも思っています。そこで今回、