ランダムビデオチャットは実際どのように機能するか
見知らぬ人をマッチングし、ゼロメディアサーバーでHDビデオをストリーミングするエンジニアリング
「スタート」をクリックしたら何が起こりますか?
ランダムビデオチャットはほぼ同時に発生する5つのステップを使用して、2秒で見知らぬ人を接続します。あなたのブラウザはカメラアクセスを取得、マッチメイキングキューはあなたを別のユーザーでペアリング、シグナリングサーバーは接続メタデータを交換、WebRTCはダイレクトピア・ツー・ピア・ビデオストリームを確立します — メディアサーバー不要。
ブラウザはカメラ&マイクをリクエスト
getUserMedia APIあなたはマッチメイキングキューに参加
Cloudflare Durable Objectsマッチ見つけた — シグナリングあなたを接続
WebSocketWebRTCピア接続確立
SDPエクスチェンジ+ICE候補ビデオストリームはブラウザ・ツー・ブラウザ
ピア・ツー・ピア、ゼロサーバーWebRTCとは何ですか?
WebRTC(Web リアルタイム通信)は、プラグインなしで、ピア・ツー・ピア音声、ビデオ、データ転送を有効にする、すべての最新ブラウザに構築されたオープンソースプロトコルです。W3CとIETFで保守され、プラグイン、Flash、JavaアプレットのダウンロードなしにChrome、Safari、Firefox、Edgeでビデオチャットをパワーします。
getUserMediaカメラとマイクへのアクセスをリクエスト。表示または送信できるアプリのMediaStreamオブジェクトを返します。
RTCPeerConnection完全なピア・ツー・ピア接続ライフサイクルを管理 — SDP交渉、ICE候補交換、メディア転送。
RTCDataChannel任意のデータ(テキストチャット・ファイル転送・ゲーム状態)を、同じP2Pリンク経由でブラウザ間に直接送信します。
主な事実: WebRTCはオープンなW3C/IETFstandard — 独自APIではありません。仕様を実装するすべてのブラウザは参加することができ、どのような取付けもなしにランダムビデオチャットがクロスブラウザで機能する理由です。
P2Pビデオの仕組み(そしてなぜよりプライベートなのか)
ピアツーピアビデオとは、カメラの映像があなたのブラウザから相手のブラウザへ直接転送されることです。中央サーバーはストリームをデコード・検査・保存しません。このアーキテクチャはSDPシグナリング・ICE候補収集・NATトラバーサル用のSTUN/TURNサーバーによって実現されており、P2Pビデオチャットをサーバー中継型の代替手段より根本的にプライベートにします。
SDP(セッション記述プロトコル)
各ピアは、サポートされるコーデック、解像度、暗号化キーを説明する「オファー」または「答え」SDPを生成します。これらはシグナリングサーバー(WebSocketリレー)を通じて交換されますが、実際のメディアデータは含みません。
ICE(インタラクティブ接続確立)
ICEはホスト候補(ローカルIP)、サーバー反射的候補(STUNを経由するパブリックIP)、リレー候補(TURNフォールバック)を含むネットワークパス候補を集めます。ICEエージェントは各パスをテストして最高のダイレクトルートを選択します。
STUNサーバー(NATトラバーサル)
STUN(NATセッショントラバーサルユーティリティ)はブラウザがパブリックIPとポートマッピングを発見するのに役立つ。これはホームルーターの背後にある相手が任意のリレーなしで直接接続できます。
TURNサーバー(フォールバックリレー)
ダイレクト接続失敗ときに(対称NAT、厳密な企業ファイアウォール)、TURNはピア間で暗号化されたメディアパケットをリレー。実世界のセッションの約15%がTURNを必要とします — メディアはエンド・ツー・エンドで暗号化されたまま。
プライバシー洞察: ビデオデータはブラウザ間で直接流動するため、プラットフォームオペレーターはビデオストリームを見たり、処理、保存することはありません。シグナリングサーバーは軽いJSONメタデータのみを処理します — ピクセルではありません。
マッチメイキングシステムはどのように機能しますか?
マッチメイキングは50ミリ秒以下でグローバルキューから2人の見知らぬ人をペアリングします。NightcapはCloudflare Durable Objects — グローバルに分散したステートフルな計算プリミティブ — を使用して、単一の一貫したキューを維持し、共通の興味・地理的嗜好・性別フィルターでユーザーをスコアリングして最高得点のペアをマッチングします。
興味ベースのスコアリング
「音楽、プログラミング、アニメ」などの興味を入力 — マッチメーカーはキュー内の他のユーザーに対してJaccard類似度スコアを計算し、最高のオーバーラップを優先化します。
国・性別フィルター
オプショナルフィルターで特定の国または性別のユーザーを優先することで、キューは候補を従いながらマッチ時間を1秒以下に保つ。
DurableObjectアーキテクチャ
単一CloudflareDurableObjectは強い一貫性でメモリ内グローバルマッチメイキングキューを保有。世界中のあらゆるエッジロケーションは同じ状態に接続し、競争状態を排除します。
Boost:優先キュー配置
有料Boostユーザーはキューの前面に配置。これはマッチングアルゴリズムを変更することなく、より高速マッチングと高品質ペアリングを意味します。
リアルタイムビデオエフェクトはブラウザでどのように機能しますか?
Nightcapは、GPU加速MediaPipeモデル使用して、ブラウザ全体でAIパワードビデオエフェクトを実行します。背景ぼかし、カラーフィルター、美肌モードはすべてあなたの MediaStream に適用されてから、相手に送信されます — プラットフォームはサーバー上の生または処理ビデオを受け取りません。
背景ぼかし(AI分割化)
MediaPipeのセルフィ分割化モデルはあなたのGPUで実行、30fpsで人対背景を識別。人マスク外のすべてはぼかされた強度1-20で調整可能。分割化出力は元のストリームを置き換えます。
6つのカラーフィルター
ウォーム、クール、ヴィンテージ、白黒、ビビッド、ソフトフィルターはcanvas要素に隠れたCSS filter変換としても適用。フィルター化フレームは新しいMediaStreamとしてキャプチャされ、RTCPeerConnectionにフィードされます。
美肌モード
制御されたガウス・ブラー・オーバーレイはビデオフレームの上に合成され、微妙なスキンスムージングを作成します。エフェクトは不気味になるのを避けるために3pxぼかし15%不透明度でブレンドしながら、スキンテクスチャーをソフト化。
モデレーションはすべてのチャットを見ることなくどのように機能しますか?
AIモデレーションシステムはテキストメッセージとビデオフレームの定期的サンプルをリアルタイムで分析し、人があなたの会話を見ることなく。Nightcapは全チャットメッセージを送信前にOpenAIの無料モデレーションAPIを通し、AWS Rekognitionを通じてビデオフレームのコンテンツ分析用に定期的にサンプリング — 大量監視なしで自動化執行を有効化します。
テキストモデレーション
すべてのメッセージは配信前OpenAIのモデレーションAPIに対してチェック。APIはミリ秒でヘイトスピーチ、ハラスメント、自傷、性的コンテンツ、暴力をフラグ — そしてそれは無料で呼び出す。
ビデオフレームサンプリング
定期的フレームキャプチャはコンテンツ分析用AWS Rekognitionに送信。システムは明示的または不安全なコンテンツをフラグし、ビデオストリームを記録または保存することなく自動化執行をトリガー。
ワンクリック報告
ユーザーはマッチを直ちに報告できます。報告は直ちにレビューをトリガー、確認した違反は重大度と繰り返し違反歴に基づき一時的または永続的なBANを結果。
プライベートモード
両ユーザーが独立的にオプトイン、NSFWコンテンツフィルターが無効化。しかし、CSAM検出と脅迫モニタリングはアクティブなままです — これらはモードに関係なく無効化されることは決してありません。
なぜP2Pはビデオ1対1で平均化より優れているか
1対1ビデオチャット用、ピア・ツー・ピア・WebRTCはサーバー帯域幅で何も費やさず、最低可能遅延(ダイレクトネットワークパス)を提供、プラットフォームはビデオを処理しません。SFUとMCUのようなサーバーベースのアーキテクチャはコスト、遅延、プライバシートレードオフを追加し、グループコール用のみ意味をなします。
| アーキテクチャ | 帯域幅コスト | プライバシー |
|---|---|---|
| P2P(Nightcap) | $0ビデオ帯域幅 | ビデオはサーバーの上にない |
| SFU | 高 — サーバーはすべてのストリームをリレー | サーバーはすべてのビデオを見る |
| MCU | 最高 — サーバーはデコードして再エンコード | サーバーは完全にビデオを処理 |
アーキテクチャは一目で
Nightcapのアーキテクチャは4つのレイヤーに分かれています:シグナリング(WebSocket上のCloudflare Workers)、マッチメイキング(Durable Objects)、メディア(純粋なP2P WebRTC)、アプリケーションロジック(支払い・モデレーション・レポート用のNext.js APIルート)。ビデオがサーバーを通過しないため、メディアレイヤーのサーバー帯域幅コストはゼロです。
よくある質問
WebRTCビデオチャットは本当にピア・ツー・ピアですか?
はい。WebRTC接続が確立されると、ビデオとオーディオデータはブラウザ間で直接流動します。シグナリングサーバーは接続メタデータ(SDPオファーとICE候補)のみと交換用のために使用 — 実際のメディアストリームに決して接触しません。
ビデオチャットプラットフォームは私のビデオを見たり記録できますか?
NightcapのようなP2Pプラットフォームでは、ビデオストリームはブラウザ間を直接移動し、中央サーバーを経由しません。プラットフォームはビデオを見たり、傍受したり、録画したりすることができません。これはサーバー中継型アーキテクチャに対するピアツーピアWebRTCの根本的なアーキテクチャ上の利点です。
直接P2P接続が失敗した場合はどうなりますか?
両STUNアシストダイレクト接続とホスト候補が失敗した場合(通常はエンタープライズNATまたは対称ファイアウォールのため)、WebRTCは自動的にTURNリレーサーバーにフォールバックします。TURNサーバーはピア間で暗号化メディアパケットをフォワードします。実世界のセッションの約15%がTURNリレーを必要とします。
Nightcapはプラグインやダウンロードを使用していますか?
いいえ。NightcapはWebRTC使用し、Chrome、Safari、Firefox、Edgeに組み込まれています。プラグイン、Flash、Javaアプレット、アプリダウンロードはありません。ウェブサイトを開くと、ブラウザがすべてを処理します。
マッチメイキングはランダムビデオチャットでどのように機能しますか?
スタートをクリックすると、マッチメイキングキューに入ります。NightcapはCloudflare Durable Objectsを使用して、50ms以下のマッチングによるグローバルキューを維持しています。システムは共通の興味・国の嗜好・性別フィルターを考慮して最適なマッチを見つけます。有料のBoostユーザーはキューで優先的に扱われます。