最終更新日:2025-08-14 16:08:28
WebRTC シグナリングは、デバイス間でメタデータを交換し、ピアツーピア接続を確立するために使用されます。このプロセスの中心となるのが セッション記述プロトコル(SDP, Session Description Protocol) です。これは、メディア通信セッションを記述し、オーディオおよびビデオコーデック、ネットワークトポロジー、その他のデバイス固有の詳細を含むパラメーターを交渉することを可能にします。SDP は、WebRTC デバイスが「通信」するための「言語」として機能します。
WHIP (WebRTC-HTTP Ingestion Protocol) および WHEP (WebRTC-HTTP Egress Protocol) が登場する以前、SDP データを転送する標準化された方法は存在しませんでした。CDNetworks では、SDP 転送に JSON ファイルを使用することでこのギャップを解消しています。本ガイドでは、このアプローチの詳細、これら JSON ファイルの構造、および WebRTC セッションのセットアップにおける使用方法を説明します。
CDNetworks における WebRTC の URL 形式は以下の通りです:
http://domain/appName/streamName.sdp?params=xxx
stream.cdnetworks.com。live。channel_001。userid=123。注意:
この形式は RTMP および HTTP-FLV の URL 形式に似ていますが、主な違いは.sdpサフィックスです。
比較例:
- RTMP:
rtmp://stream.cdnetworks.com/live/channel_001?userid=123- HTTP-FLV:
http://stream.cdnetworks.com/live/channel_001.flv?userid=123
プッシュおよび再生ストリームの URL 形式は同一です。違いは WebRTC ネゴシエーションプロセスの重要な要素であるクライアント SDP の offer 属性に基づきます。この属性は、発信デバイスのメディア機能(対応コーデック、メディアタイプ(オーディオ、ビデオ)、ネットワーク詳細、およびデバイスが送信、受信、またはその両方を行うかどうか)を指定します。
a=sendonly を含み、デバイスがメディアデータを送信するだけであることを示します。a=recvonly を含み、デバイスがメディアデータを受信するだけであることを示します。注意: a=sendrecv(送信と受信を同時に行う)を使用するシナリオはサポートされていません。サポートされていない操作を回避するために、設定で a=sendonly または a=recvonly を指定してください。
offer を送信した後、相手デバイスまたはサーバーは answer SDP で応答し、セッションパラメーターを最終的に確定します。
サーバーの answer SDP はリクエストタイプに基づいて生成されます:
a=recvonly で応答します。a=sendonly で応答します。| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| version | string | 必須 | 固定値 "v1.0" |
| sessionId | string | 任意 | クライアント生成のセッション ID |
| localSdp | struct | 必須 | クライアント SDP 情報(SDP 定義を参照) |
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| code | int | 必須 | ステータスコード(ステータスコード説明を参照) |
| message | string | 必須 | ステータスメッセージ |
| remoteSdp | struct | 必須 | サーバー SDP 情報(SDP 定義を参照) |
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| type | string | 必須 | SDP タイプ。リクエストは固定値 "offer" を使用し、応答は固定値 "answer" を使用します。 |
| sdp | string | 必須 | 標準 SDP プロトコル内容(RFC4566 を参照) |
| ステータスコード | 説明 |
|---|---|
| 200 | リクエスト成功 |
| 400 | リクエスト本文エラー |
| 401 | パラメーターエラー |
| 402 | 情報エラー |
| 403 | 認証失敗 |
| 404 | ストリームが見つかりません |
| 600 | RTC がサポートされていません。クライアントは強制ダウングレードが必要です |
{
"sessionId": "123456789",
"version": "v1.0",
"localSdp": {
"type": "offer",
"sdp": "<標準 SDP プロトコル内容>"
}
}
{
"code": 200,
"message": "success",
"remoteSdp": {
"type": "answer",
"sdp": "<標準 SDP プロトコル内容>"
}
}