PixiJSのパフォーマンス問題とRustへの書き換えによる解決

Mac用の画面レコーダー「TinyRec」の開発において、PixiJSを使用したエディタプレビューの処理が原因でエクスポート処理が非常に遅い(720pの5分間の動画で15分かかった)という問題が発生しました。この問題を解決するため、エクスポートパイプラインをRustで書き直し、Electronアプリから別途Rustプロセスを起動して処理を行うように変更しました。これにより、Metalコンポジター、ハードウェアエンコーダー、MuxerをRustプロセス内で実行し、CPUへのデータ転送を削減することで、処理時間を大幅に短縮(5分間の720p動画で1分に短縮)しました。また、UIの応答性向上も実現し、進捗バーの表示や編集作業の継続を可能にしました。

Original article

トップへ戻る