Skip to content

CDPによるスクリーンショットの高速化 #46

@windymelt

Description

@windymelt

前提

  • Chromiumのバージョンアップによって、スクリーンショットで透明背景撮影などが可能になった(正確には、画面サイズがぶっ壊れていたのが直った)
  • ところが、Mutexがかかって同時に複数のChromiumを起動できなくなった
    • これまでは複数プロセスをある程度並行起動してスクリーンショットを撮影させていた
  • 以前はそこまででもなかったが、ヘッドレスシステムが作り替えられた影響で、直列実行するととても遅い
    • 1枚1秒以上かかる
  • このままだとまともに動画を作れない

手法

  • Chromiumをheadlessモードで起動して、debug portを指定するとCDP(Chromium DevTools Protocol)を受け付けるサーバが建ってlistenするようになる
  • そこにファイル表示とスクショのコマンドを流し込めばオーバーヘッドを大幅に節約できるはず

問題

  • CDPがどういうプロトコルか不明
  • npmモジュールでしか高級なI/Fが用意されていない
  • nodeをわざわざ入れたくない
  • スクショだけやれるような感じでハードコード可能かも不明

やること

  • CDPの解析
  • Scalaでなんとか動かす手法がないか考える
  • 実装して高速にスクショを撮る

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions