オープンソースで開発されるストリーミング配信・録画用キャプチャソフト「OBS」をmacOS Monterey 12.3 betaに対応させるため、Appleの開発者が新しいキャプチャプラグイン「GeneralCapture」を追加したことをGitHubで明らかにし、詳細なコミットメッセージと共にプルリクエストを出しています。

mac-capture: Improve window capture support on macOS 12.3 by Developer-Ecosystem-Engineering · Pull Request #5875 · obsproject/obs-studio · GitHub

https://github.com/obsproject/obs-studio/pull/5875

コミットメッセージを出しているアカウント「Developer-Ecosystem-Engineering」のプロフィールを見ると、アイコンはAppleのロゴ、所属組織はApple、本拠地はカリフォルニア州クパチーノとなっており、単なる個人的なアカウントではなくAppleという企業を背負ったアカウントであることは明白。Developer-Ecosystem-EngineeringはOBSの他に、GoPro用のビデオコーデックであるCineFormや、画像処理専用プログラミング言語のHalideなどにもコミットしています。



Developer-Ecosystem-EngineeringがOBSに追加してプルリクエストを出しているのは、新しいキャプチャソースである「General Capture」です。Developer-Ecosystem-Engineeringは、「General CaptureはCPUとGPUの使用率が低く、フレームレートが大幅に向上し、通常のウィンドウキャプチャよりも優れています。デスクトップの内容を表示することなく、アプリケーションとそのウィンドウをすべて表示することができます」と述べています。

Developer-Ecosystem-Engineeringによると、General Captureには「キャプチャから自分自身を除外する」というオプションが追加されているので、「デスクトップをOBSでキャプチャすると、OBSのUI自体がキャプチャ範囲に含まれてしまうため、まるで合わせ鏡のような画面になってしまう」という問題が解決されるとのこと。



また、このGeneral Captureの開発には、macOS Monterey 12.3 betaから利用可能なキャプチャフレームワーク「ScreenCaptureKit」が利用されています。ScreenCaptureKitはMac向けアプリに画面をキャプチャするためのもので、General CaptureはこのScreenCaptureKitを使用することでより優れたパフォーマンスと低いリソース使用率でキャプチャが可能になるそうです。

Developer-Ecosystem-Engineeringは実際に、macOS Monetery 12.3を搭載した2.3GHzのCore i9・AMD Radeon Pro 5500Mグラフィックス搭載の16インチMacBook Pro(2019年モデル)とメモリ8GBのM1搭載Mac miniでテストを行ったそうです。テストでキャプチャされたゲームは「Dota 2」「シャドウ オブ ザ トゥームレイダー」「デウスエクス マンカインド・ディバイデッド」「Baldur's Gate 3」「シドマイヤーズ シヴィライゼーション VI」で、いずれも1080p・60fpsの設定でプレイして、比較したとのこと。

実際に「シャドウ オブ ザ トゥームレイダー」を通常のウィンドウキャプチャとGeneral Captureで比較したムービーを以下の画像をクリックすると見ることができます。左上と右上に表示された計測値を見ると、General Captureは通常のウィンドウキャプチャと比べて、OBSのCPU使用率やGPU使用率、メモリの使用量が減っていることがわかります。



修正内容だけではなく修正の動機やテスト内容と結果も添えた、Developer-Ecosystem-Engineeringeの非常に詳細なコミットメッセージに対して、ソーシャルニュースサイトのHacker Newsでは「プルリクエストを出す時は常にこのように詳細なコミットメッセージを出すべきだ」と称賛するユーザーがいる一方で、「これだけ膨大な修正内容を含むプルリクエストを出しても、結局レビューに時間がかかってしまう」「完全にmacOSだけに焦点を当てたプルリクエストでビルドシステム全体に影響を与えるという事実は懸念すべきだ」と意見するユーザーもいました。