v0.2.1 // Chrome Extension + Rust Receiver
GrabDuct Logo

GrabDuct

Grab it. Duct it. Send it.

ブラウザタブの映像をキャプチャし、Spout / Syphon 経由で 映像送出ツールにGPUテクスチャとして送信。ダクトテープのごとく、ブラウザと映像送出ツールを雑に、でも確実につなぎます。

grabduct

$ grabduct --status

P1 キャプチャ中 — 1920x1080

P2 キャプチャ中 — 1280x720

P3 待機中

P4 待機中

$ Spout出力: 2 active ⚡ // 映像送出ツールへ送信中

scroll

// features

ダクトテープのようにシンプル
GPUテクスチャのように高速

📹captureStream()

タブ映像キャプチャ

動画が存在するタブで、映像を直接キャプチャ。video要素の自動検出で、難しい設定は不要。テープを貼るように簡単。

Spout / Syphon

GPU テクスチャ出力

Spout (Windows) / Syphon (macOS) 経由で映像送出ツールにGPUテクスチャとして直接送信。低遅延、低CPU負荷。

🎬Multi-Player

最大4ch同時送信

複数のタブを個別のプレイヤーにアサインして同時送信。映像ミキサーに複数ソースを入力できます。

🔄Auto-Recapture

自動再キャプチャ

タブ内で別の映像コンテンツに移動しても自動で再キャプチャ。送出中にいちいち操作する必要なし。

💻HW Accelerated

ハードウェアデコード

D3D11 (Windows) / VideoToolbox (macOS) によるHWデコードで、CPUに優しい映像処理を実現。

🔒localhost only

完全ローカル通信

映像データは一切外部に送信されません。WebRTCはlocalhost上で完結。あなたの映像はあなたのマシンの中だけ。

// components

2つのコンポーネント

GrabDuctはChrome拡張機能とレシーバーアプリの連携で動作します。

🧩

Chrome 拡張機能

送信側 // Sender

ブラウザ上で動作し、動画が存在するタブから映像をキャプチャします。キャプチャした映像はWebRTC経由でレシーバーアプリにリアルタイム送信されます。

  • タブ内の映像を自動検出してキャプチャ
  • 最大4タブを個別のプレイヤーに割り当て
  • タブ内で別の映像に遷移しても自動で再キャプチャ
  • ポップアップUIからワンクリックで操作
📤

レシーバーアプリ

受信側 // Receiver

Rust製のデスクトップアプリケーション。Chrome拡張機能から受け取った映像をハードウェアデコードし、Spout/Syphonテクスチャとして出力します。

  • WebRTCで映像を受信し、GPUでデコード
  • Spout (Windows) / Syphon (macOS) で映像送出ツールに出力
  • システムトレイに常駐し、バックグラウンドで動作
  • Discord認証とプレイヤー設定を管理

* 両コンポーネントは localhost:9876 で通信します。映像データは外部に一切送信されません。

// how it works

仕組みは3ステップ

パイプラインは自動で構築されます。あなたはタブを選ぶだけ。

01

Grab

動画が存在するタブでGrabDuct拡張機能のアイコンをクリック。プレイヤースロットを選んでタブを割り当てるだけ。映像は自動でキャプチャされます。

02

Duct

WebRTC経由で映像がレシーバーアプリに送信されます。ハードウェアデコード後、Spout/Syphonテクスチャとして出力。すべてlocalhost上で完結。

03

Send it.

映像送出ツール (Resolume, OBS, VDMX等) で "P1~P4 GrabDuct" がSpout/Syphonソースとして自動で認識されます。あとは自由にミックス。

// plans

Free or Supporter

基本機能はすべて無料で利用できます。

Free

¥0/ forever

Discordサーバー参加で利用可能。基本機能はすべて使えます。

  • 同時プレイヤー数: 2
  • 最大解像度: 720p (1280x720)
  • 自動再キャプチャ
  • HWデコード
  • Spout / Syphon 出力
Discord に参加して始める
Supporter

Discord サポーターロールで有効化

気が向いたらぜひ。4K出力と4プレイヤー同時送信が解放されます。

  • 同時プレイヤー数: 4
  • 最大解像度: 4K (3840x2160)
  • 全解像度プリセット (16:9 / 4:3 / 1:1 / カスタム)
  • Free版のすべての機能
  • 開発者のモチベーション +100
Discord でサポーターになる

* GrabDuctの利用にはKonaLab Discordサーバーへの参加が必要です。認証はDiscord OAuth2経由で行われます。 メンバーシップは30日ごとに自動で再確認されます。

// setup

セットアップガイド

4ステップで映像ルーティング開始。所要時間: コーヒーを淹れるより短い。(いや、コーヒー淹れる時間よりは掛かるかも)

01

レシーバーアプリをインストール

GitHub Releasesからインストーラーをダウンロードして実行します。GStreamerランタイムは同梱されているので別途インストールは不要です。

Windows: GrabDuctReceiverSetup.exemacOS: GrabDuctReceiver.dmg
02

Chrome拡張機能をインストール

配布されたZIPを展開し、Chromeの拡張機能ページ (chrome://extensions) でデベロッパーモードを有効にして読み込みます。

chrome

1. chrome://extensions を開く

2. デベロッパーモード: ON

3. "パッケージ化されていない拡張機能を読み込む"

4. 展開したフォルダを選択

03

Discord認証

レシーバーアプリを起動し、"Discordでログイン" をクリック。KonaLab Discordサーバーへの参加と認証が完了すると、GrabDuctが利用可能になります。認証はOAuth2 PKCEで安全に処理されます。

04

映像をルーティング

動画が存在するタブでGrabDuct拡張機能アイコンをクリックし、プレイヤースロットを選択。映像送出ツールで "P1~P4 GrabDuct" がSpout/Syphonソースとして認識されます。

// system requirements

💻 Windows

  • Windows 10 / 11
  • Chrome / Chromium 116+
  • Direct3D 11 対応GPU
  • Spout対応映像送出ツール

 macOS

  • macOS 13 (Ventura) 以上
  • Chrome / Chromium 116+
  • Metal 対応GPU
  • Syphon対応映像送出ツール

⚠️ 制約事項

  • 映像のみ対応(音声キャプチャは非対応)
  • DRM保護コンテンツは captureStream() でのキャプチャ不可(tabCaptureへ自動フォールバック)
  • ローカルネットワーク通信のみ(外部サーバーは不使用)

// output software

映像送出ツールでの使い方

Resolume Arena / Avenue

Sources > Spout (Win) / Syphon (Mac) > PN GrabDuct

OBS Studio

ソース追加 > Spout2 Capture (Win) / Syphon Client (Mac) > PN GrabDuct

VDMX / MadMapper / その他

Spout/Syphon入力対応ソフトなら、ソース一覧に自動表示

出力名は固定: P1 GrabDuct ~ P4 GrabDuct

// troubleshooting

映像が上手く取得できないときは?

Windowsでの一般的なトラブルと解決方法をまとめました。

💻

映像がガクついたり、フレームレートが安定しない

ラップトップGPU(Intel + NVIDIA / Intel + Radeon)をお使いの方向け

原因:送信側(Chrome)がIntel内蔵GPU、受信側(GrabDuct Receiver)がNVIDIA/AMDの外部GPUを使用している場合、GPU間でのデータ転送が発生し、映像がガクつくことがあります。

Step 1: 現在のGPU設定を確認

1. Chromeのアドレスバーに chrome://gpu/ を入力

2. 「GL_RENDERER」の欄を確認

→ 「Intel~」と表示されている場合は以下の設定が必要です

Step 2: NVIDIAコントロールパネルの設定(NVIDIAの場合)

NVIDIAコントロールパネルを開く

「3D設定の管理」→「グローバル設定」→「高パフォーマンスNVIDIAプロセッサ」を選択 → 右下の「適用」をクリック

「プログラム設定」タブを選択 → 「追加」ボタンからGoogle Chromeを選択

「このプログラム用の優先するグラフィックスプロセッサを選択する」から「高パフォーマンスNVIDIAプロセッサ」を選択 → 「適用」をクリック

※ GrabDuct Receiver、OBS、Resolume等も同様に設定してください

Step 3: Windowsグラフィック設定

Windowsの設定 → システム → ディスプレイ → グラフィック

→ アプリケーションのカスタム設定からChromeを追加

→ GPUのユーザー設定から 高パフォーマンス を選択

Step 4: Chromeを完全に再起動

すべてのChromeウィンドウを閉じる

タスクマネージャーの「詳細」タブで chrome.exe が残っている場合は「タスクを終了する」で終了

Chromeを再起動

Step 5: 設定を確認

再度 chrome://gpu/ を開き、「GL_RENDERER」が「NVIDIA RTX~」や「Radeon~」になっていれば設定完了です。

⚠️

Spoutエラー、または画面が真っ黒になる

ゲーミングノートPC等をお使いの方向け

症状:Spoutで「Cannot create DirectX/OpenGL interop」エラーが表示される、またはSpoutの選択はできるのに真っ黒な画面しか出ない

解決方法

映像を出力する側のツール(Resolume / OBS等)と GrabDuct Receiver の両方を、Windowsグラフィック設定またはNVIDIAコントロールパネルで「高パフォーマンスNVIDIAプロセッサ」に設定してください。

詳しい手順は下記の記事を参照してください。

Tip: アプリリストにGrabDuct Receiverが表示されない場合は、以下のパスを直接選択してください:

C:\Program Files\GrabDuct Receiver\grabduct-receiver.exe

※ 初期インストール先の場合

// 免責事項 & ご利用にあたって

本ソフトウェア(GrabDuct)は、現状有姿(AS IS)で提供されます。開発者は、本ソフトウェアの利用により生じたいかなる損害(直接的、間接的、偶発的、特別、または結果的損害を含みますが、これに限定されません)についても一切の責任を負いません。

動画が存在するウェブサイトでGrabDuctを利用する場合は、当該サイトの利用規約を必ずご確認のうえ、自己の責任において利用してください。GrabDuctの利用に起因する利用規約違反やその他の問題について、開発者は一切の責任を負いません。

本ソフトウェアは個人開発のプロジェクトであり、予告なく開発が停止・中断される可能性があります。継続的なアップデートやサポートを保証するものではありません。

GrabDuctが処理する映像データはすべてローカルマシン上で完結し、外部サーバーに送信されることはありません。ただし、Discord認証にはインターネット接続が必要です。