
GrabDuct
Grab it. Duct it. Send it.
ブラウザタブの映像をキャプチャし、Spout / Syphon 経由で 映像送出ツールにGPUテクスチャとして送信。
ダクトテープのごとく、ブラウザと映像送出ツールを雑に、でも確実につなぎます。
$ grabduct --status
P1 ● キャプチャ中 — 1920x1080
P2 ● キャプチャ中 — 1280x720
P3 ● 待機中
P4 ● 待機中
$ Spout出力: 2 active ⚡ // 映像送出ツールへ送信中
// features
ダクトテープのようにシンプル。
GPUテクスチャのように高速。
タブ映像キャプチャ
動画が存在するタブで、映像を直接キャプチャ。video要素の自動検出で、難しい設定は不要。テープを貼るように簡単。
GPU テクスチャ出力
Spout (Windows) / Syphon (macOS) 経由で映像送出ツールにGPUテクスチャとして直接送信。低遅延、低CPU負荷。
最大4ch同時送信
複数のタブを個別のプレイヤーにアサインして同時送信。映像ミキサーに複数ソースを入力できます。
自動再キャプチャ
タブ内で別の映像コンテンツに移動しても自動で再キャプチャ。送出中にいちいち操作する必要なし。
ハードウェアデコード
D3D11 (Windows) / VideoToolbox (macOS) によるHWデコードで、CPUに優しい映像処理を実現。
完全ローカル通信
映像データは一切外部に送信されません。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ステップ
パイプラインは自動で構築されます。あなたはタブを選ぶだけ。
Grab
動画が存在するタブでGrabDuct拡張機能のアイコンをクリック。プレイヤースロットを選んでタブを割り当てるだけ。映像は自動でキャプチャされます。
Duct
WebRTC経由で映像がレシーバーアプリに送信されます。ハードウェアデコード後、Spout/Syphonテクスチャとして出力。すべてlocalhost上で完結。
Send it.
映像送出ツール (Resolume, OBS, VDMX等) で "P1~P4 GrabDuct" がSpout/Syphonソースとして自動で認識されます。あとは自由にミックス。
// plans
Free or Supporter
基本機能はすべて無料で利用できます。
¥0/ forever
Discordサーバー参加で利用可能。基本機能はすべて使えます。
- ✓同時プレイヤー数: 2
- ✓最大解像度: 720p (1280x720)
- ✓自動再キャプチャ
- ✓HWデコード
- ✓Spout / Syphon 出力
⚡Discord サポーターロールで有効化
気が向いたらぜひ。4K出力と4プレイヤー同時送信が解放されます。
- ✓同時プレイヤー数: 4
- ✓最大解像度: 4K (3840x2160)
- ✓全解像度プリセット (16:9 / 4:3 / 1:1 / カスタム)
- ✓Free版のすべての機能
- ♥開発者のモチベーション +100
* GrabDuctの利用にはKonaLab Discordサーバーへの参加が必要です。認証はDiscord OAuth2経由で行われます。 メンバーシップは30日ごとに自動で再確認されます。
// setup
セットアップガイド
4ステップで映像ルーティング開始。所要時間: コーヒーを淹れるより短い。(いや、コーヒー淹れる時間よりは掛かるかも)
レシーバーアプリをインストール
GitHub Releasesからインストーラーをダウンロードして実行します。GStreamerランタイムは同梱されているので別途インストールは不要です。
Chrome拡張機能をインストール
配布されたZIPを展開し、Chromeの拡張機能ページ (chrome://extensions) でデベロッパーモードを有効にして読み込みます。
1. chrome://extensions を開く
2. デベロッパーモード: ON
3. "パッケージ化されていない拡張機能を読み込む"
4. 展開したフォルダを選択 ✓
Discord認証
レシーバーアプリを起動し、"Discordでログイン" をクリック。KonaLab Discordサーバーへの参加と認証が完了すると、GrabDuctが利用可能になります。認証はOAuth2 PKCEで安全に処理されます。
映像をルーティング
動画が存在するタブで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プロセッサ」に設定してください。
詳しい手順は下記の記事を参照してください。
参考記事
Spoutで「Cannot create DirectX/OpenGL interop」エラーが出る、もしくは何も表示されないときの対処法https://note.com/fuqunaga/n/nec9f2d215b01
Tip: アプリリストにGrabDuct Receiverが表示されない場合は、以下のパスを直接選択してください:
C:\Program Files\GrabDuct Receiver\grabduct-receiver.exe
※ 初期インストール先の場合
// 免責事項 & ご利用にあたって
本ソフトウェア(GrabDuct)は、現状有姿(AS IS)で提供されます。開発者は、本ソフトウェアの利用により生じたいかなる損害(直接的、間接的、偶発的、特別、または結果的損害を含みますが、これに限定されません)についても一切の責任を負いません。
動画が存在するウェブサイトでGrabDuctを利用する場合は、当該サイトの利用規約を必ずご確認のうえ、自己の責任において利用してください。GrabDuctの利用に起因する利用規約違反やその他の問題について、開発者は一切の責任を負いません。
本ソフトウェアは個人開発のプロジェクトであり、予告なく開発が停止・中断される可能性があります。継続的なアップデートやサポートを保証するものではありません。
GrabDuctが処理する映像データはすべてローカルマシン上で完結し、外部サーバーに送信されることはありません。ただし、Discord認証にはインターネット接続が必要です。