Electronの録画エンジンをSwiftで書き直した理由

Rebuilding our Electron meeting-recording engine in Swift

Electronの録画エンジンをSwiftで書き直した理由

Circlebackのデスクトップアプリは、ボットなしでミーティングを録画しクラウドにストリーミングします。録画エンジンは長い間、最も信頼性の低い部分でした。Electronのレンダラープロセスで動作していたため、GCポーズやスロットリングなどの問題に悩まされていました。そこで、macOSではScreenCaptureKit、Windowsではlibobsを使い、Swiftで共有レイヤーを構築してネイティブ化しました。さらに、Swiftの@PublishedプロパティをReactのJotai atomに自動的にブリッジする内部ツール「Atomic」を開発。型安全でグルーコード不要のブリッジを実現しました。また、macOSでは3つのクロックの同期やドライバーの嘘のサンプルレート補正など、エッジケースを自前で処理。クラッシュ耐性のためにフラグメントMP4を採用し、録画は安定しました。

レンダープロセスは、リアルタイムのオーディオ/ビデオキャプチャを行うには間違った場所です。

この日のほかの記事

2026-08-21