RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる
コントロールは接続しているが UDP RTP がブロックされている場合に RTSP がビデオを表示しない問題を修正しました。ファイアウォール ルール、RTSP プロトコル ポート、NAT トラバーサル、VPN RTP 損失、TCP インターリーブ フォールバック、およびカメラの UDP ソース ポートをカバーします。
最も重大な RTSP 問題の 1 つは、説明するのは簡単です。カメラは接続されていますが、ビデオが表示されません。多くの場合、RTSP 制御は TCP 上で機能しますが、UDP RTP メディア パケットはクライアントに到達しません。ユーザーにはログインの成功、SDP、さらには「PLAY 200 OK」が表示され、その後タイムアウトが表示されます。 「RTSP は接続されるがビデオが表示されない」、「RTP UDP がブロックされたファイアウォール」、「RTSP は VPN 経由ではなく LAN 上で動作する」、「カメラ RTSP NAT ビデオなし」、「RTSP TCP インターリーブ修正」などの検索はすべて、このレイヤー分割を示しています。
RTSP は 1 つのデータ ストリームではありません。コントロール チャネルとメディア チャネルは、異なるトランスポート パスを使用できます。コントロール チャネルが機能していてもメディア パスに障害が発生すると、プレーヤーにコーデックの障害と同じ黒い画面が表示されることがあります。パケット証拠は異なります。
RTSP Inspector は、RTSP 制御の成功と RTP メディア配信を区別するため便利です。
コントロールが機能するからといってメディアが機能するわけではない
通常の UDP RTP フローは次のようになります。
- クライアントはカメラ ポート 554 への RTSP TCP 接続を開きます。
- クライアントは「DESCRIBE」を送信します。
- カメラは SDP を返します。
- クライアントは UDP クライアント ポートを使用して「SETUP」を送信します。
- カメラは UDP サーバー ポートを返します。
- クライアントは「PLAY」を送信します。
- カメラは RTP パケットをクライアントの UDP ポートに送信します。
手順 1 ~ 6 が成功し、手順 7 が失敗した場合、ストリームは RTSP ログインの問題ではありません。メディアパスの問題です。
トランスポートヘッダーによりポート計画が明らかになります
「SETUP」リクエストには以下が含まれる場合があります。
Transport: RTP/AVP;unicast;client_port=50000-50001
The camera may answer:
Transport: RTP/AVP;unicast;client_port=50000-50001;server_port=6970-6971
カメラはクライアントの UDP ポートに RTP/RTCP を送信する必要があります。ファイアウォールはそのトラフィックを許可する必要があります。 NAT デバイスはそれを正しくマッピングする必要があります。 VPN はそれを実行する必要があります。そうでない場合、メディアが沈黙している間、RTSP 制御は正常に見える可能性があります。
一般的なファイアウォールと NAT の障害
一般的な原因は次のとおりです。
- ファイアウォールは TCP 554 を許可しますが、UDP RTP ポート範囲をブロックします。
- NAT は RTSP ポートを転送しますが、RTP ポートは転送しません。
- カメラが予期しない送信元ポートから RTP を送信します。
- クライアントは、カメラから到達できないプライベート UDP ポートをアドバタイズします。
- VPN は TCP を許可しますが、UDP をドロップします。
- 企業のファイアウォールが高頻度の UDP ポートをブロックします。
- カメラは二重 NAT の背後にあります。
- RTP パケットが間違ったインターフェイスに返されます。
多くの場合、目に見える症状は「PLAY 後にビデオが表示されない」です。
TCP インターリーブがよく機能する理由
RTSP over TCP インターリーブは、RTSP TCP 接続内で RTP と RTCP を伝送します。これにより、個別の UDP ピンホールが回避されます。
UDP モードが失敗し、TCP インターリーブが機能する場合、それはコーデックとカメラがおそらく正常であるという強力な証拠です。問題はおそらく UDP メディア トランスポートです。
ただし、TCP インターリーブには、チャネル マッピングを含む独自の解析要件があります。これは UDP パスの問題の回避策であり、すべてのレイヤーが正常であることを証明するものではありません。
RTCP はパスの証明に役立ちます
RTP がブロックされているが RTCP が到着している場合、またはその逆の場合は、ポート ペアを検査します。一部のファイアウォールは 2 つの方向を異なる方法で処理します。 RTCP 受信レポートには、メディアが部分的に到着した場合のパケット損失とジッターも表示される場合があります。
記録:
- RTP パケット数。
- RTCP パケット数。
- RTP 送信元 IP とポート。
- RTP 宛先 IP とポート。
- シーケンス番号のギャップ。
- 「PLAY」から最初のパケットまでの時間。
デバッグチェックリスト
このワークフローを使用します。
- RTSP
DESCRIBE、SETUP、およびPLAYが成功したことを確認します。 - 「トランスポート」ヘッダーとクライアント/サーバーの UDP ポートを検査します。
- 「PLAY」後にRTPパケットが到着するかどうかを確認します。
- RTCPパケットが到着するかどうかを確認します。
- LAN テストと VPN/WAN テストを比較します。
- TCP インターリーブ トランスポートをテストします。
- UDP RTP ポート範囲のファイアウォール ルールを確認してください。
- NAT ポート転送と送信元ポートの動作を確認します。
- クライアントがアドバタイズした到達可能な UDP ポートを確認します。
- RTP ペイロードが実際に到着するまで、コーデックをデバッグしないでください。
最終診断
RTSP は接続しているが UDP RTP がブロックされている場合、メディアが到着しない間もカメラに完全に到達できます。修正は、UDP ポートの到達可能性、NAT の動作、ファイアウォール ポリシー、VPN ルール、または TCP インターリーブへの切り替えにあります。
RTSP Inspector は、RTSP 制御シーケンスと RTP パケットの証拠を一緒に表示することで役立ち、「ビデオなし」が具体的なトランスポート診断になります。
<!-- rtsp-localized-evidence-foundation-v1:start -->「RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる」を再現可能に検証する手順
結論から言うと、黒画面や一つのステータスコードだけでは障害の所在を証明できません。信頼できる診断では、RTSP の要求と応答、合意した Transport、有効な Session、その後の RTP シーケンス番号、タイムスタンプ、RTCP の証拠を一つの時系列につなげます。「RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる」では表示症状に近い層から調べますが、制御、ネットワーク、デコーダーの問題を混同しないよう同じ記録時刻を使います。
カメラ、ファイアウォール、VMS の設定を変える前に、小さな基準テストを作ります。パスワードを除いた RTSP URL、時刻、パス、要求した Transport、サーバー応答、最初のメディアパケット到着時刻を記録してください。機器が対応する場合は UDP と TCP interleaved を別々に試します。パス、認証情報、Transport を同時に変えると、二回目の成功がどの変更によるものか分かりません。
| 確認層 | 保存する証拠 | 判断する質問 |
|---|---|---|
| RTSP | メソッド、状態、ヘッダー、CSeq、Session | サーバーはその操作を受理したか |
| SDP | control、payload type、clock rate、codec | 期待するトラックが記述されているか |
| Transport | client_port、server_port、interleaved | 両端が同じ経路を使うか |
| RTP | SSRC、sequence、timestamp、marker | メディア単位が説明可能な順序で届くか |
| RTCP | sender report、CNAME、BYE | 時計、識別子、終了を追跡できるか |
| Decoder | SPS/PPS/VPS、packetization mode | 受信 payload で初期化できるか |
「メディアが届かない」と「届くが復号できない」を分けます。SETUP と PLAY が成功しても RTP がなければ、UDP 経路、NAT、ファイアウォール、Transport 応答を調べます。シーケンスの穴は損失または並べ替えを示します。連続した RTP があるのに映像がなければ、payload type、clock rate、フレーム境界、H.264 または H.265 のパラメーターへ進みます。この境界はプレーヤーの一般的なエラーより有用です。
引用できる短い回答はどう書きますか
三文で、最後に成功した操作、最初に失敗した証拠、二つの原因を分ける次の試験を書きます。例は「DESCRIBE、SETUP、PLAY は成功した。通知されたクライアントポートに RTP が届かない。TCP interleaved の再試験で UDP 遮断とメディアパス誤りを分ける」です。応答やパケットなしにカメラやネットワーク全体を原因と断定しません。
再現に必要な最小情報は何ですか
OPTIONS、DESCRIBE、SETUP、PLAY、SDP、Transport 応答、秘密を除いた Session を保存します。RTP は SSRC、最初と最後のシーケンス、clock rate、欠落数、収録時間を記録します。VLC や別 VMS の成否は差分試験として有用ですが、成功したクライアントが全規則を正しく扱う証明ではありません。
サーバーとクライアントのどちらを調べますか
メソッド拒否、存在しない control URL、不一致 Transport、説明のない SSRC や時計変更はサーバー側を調べます。期限切れ nonce の再利用、Session 欠落、ポートを開かない UDP 要求、各 NAL 終端を access unit 終端とみなす処理はクライアント側を調べます。中間経路の問題では、各結論にパケットと時刻を添えます。
報告前に何を確認しますか
新しい接続で再試験し、二つの時系列を最初の相違点まで比較します。パスワードと完全な Authorization 値を削除し、結論を CSeq、sequence、timestamp に結び付けます。関連する RTSP ガイドで周辺手順を確認し、RTSP Inspectorで RTSP ストリームをローカルに試験してください。カメラ映像を公開サービスへアップロードする必要はありません。
<!-- rtsp-localized-evidence-foundation-v1:end --><!-- multilingual-blog-closeout:start -->直接回答と受け入れ境界
「RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる」への短い答えは次のとおりです。コントロールは接続しているが UDP RTP がブロックされている場合に RTSP がビデオを表示しない問題を修正しました。ファイアウォール ルール、RTSP プロトコル ポート、NAT トラバーサル、VPN RTP 損失、TCP インターリーブ フォールバック、およびカメラの UDP ソース ポートをカバーします。 この文は、すべての入力、デバイス、プロジェクト、環境に対する保証ではなく、検証すべき結果として扱います。完了した結果には、開始状態、正確な操作、目に見える出力、RTSP Inspector で作業が終わったと判断する条件が記録されています。
証拠を起点にした操作手順
プロジェクト全体を変更する前に、小さく再現可能なケースから始めます。アプリのバージョン、OS、入力またはデバイスの識別情報、重要な設定、期待結果を記録します。一つの操作だけを実行し、最初の予期しない変化を保存し、可能なら既知の正常ケースと比較します。複数の設定を同時に変えると、問題を作った条件や直した条件が分からなくなります。
確認点 1:RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる
「RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる」では、製品の判断と、OS、ハードウェア、元ファイル、権限、作業手順の境界を分けます。原因を決める前に、どの層が証拠を出したか確認します。近くで起きた症状だけを根本原因として報告しないためです。
確認点 2:コントロールは接続しているが UDP RTP がブロックされている場合に RTSP がビデオを表示しない問題を修正しました。ファイアウォール ルール、RTSP プロトコル ポート、
「コントロールは接続しているが UDP RTP がブロックされている場合に RTSP がビデオを表示しない問題を修正しました。ファイアウォール ルール、RTSP プロトコル ポート、NAT トラバーサル、VPN RTP 損失、TCP インターリーブ フォールバック、およびカメラの UDP ソース ポー」は、保存、書き出し、または再度開いた結果が観察した状態と一致してから完了にします。一時的な UI 表示も役立ちますが、再利用できる証拠の方が強い判断材料です。残る制限も記録します。
確認点 3:コントロールが機能するからといってメディアが機能するわけではない
「コントロールが機能するからといってメディアが機能するわけではない」では、製品の判断と、OS、ハードウェア、元ファイル、権限、作業手順の境界を分けます。原因を決める前に、どの層が証拠を出したか確認します。近くで起きた症状だけを根本原因として報告しないためです。
確認点 4:トランスポートヘッダーによりポート計画が明らかになります
「トランスポートヘッダーによりポート計画が明らかになります」は、保存、書き出し、または再度開いた結果が観察した状態と一致してから完了にします。一時的な UI 表示も役立ちますが、再利用できる証拠の方が強い判断材料です。残る制限も記録します。
確認点 5:一般的なファイアウォールと NAT の障害
「一般的なファイアウォールと NAT の障害」では、製品の判断と、OS、ハードウェア、元ファイル、権限、作業手順の境界を分けます。原因を決める前に、どの層が証拠を出したか確認します。近くで起きた症状だけを根本原因として報告しないためです。
確認点 6:TCP インターリーブがよく機能する理由
「TCP インターリーブがよく機能する理由」は、保存、書き出し、または再度開いた結果が観察した状態と一致してから完了にします。一時的な UI 表示も役立ちますが、再利用できる証拠の方が強い判断材料です。残る制限も記録します。
確認点 7:RTCP はパスの証明に役立ちます
「RTCP はパスの証明に役立ちます」では、製品の判断と、OS、ハードウェア、元ファイル、権限、作業手順の境界を分けます。原因を決める前に、どの層が証拠を出したか確認します。近くで起きた症状だけを根本原因として報告しないためです。
確認点 8:デバッグチェックリスト
「デバッグチェックリスト」は、保存、書き出し、または再度開いた結果が観察した状態と一致してから完了にします。一時的な UI 表示も役立ちますが、再利用できる証拠の方が強い判断材料です。残る制限も記録します。
確認点 9:最終診断
「最終診断」では、製品の判断と、OS、ハードウェア、元ファイル、権限、作業手順の境界を分けます。原因を決める前に、どの層が証拠を出したか確認します。近くで起きた症状だけを根本原因として報告しないためです。
確認点 10:「RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる」を再現可能に検証する手
「「RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる」を再現可能に検証する手順」は、保存、書き出し、または再度開いた結果が観察した状態と一致してから完了にします。一時的な UI 表示も役立ちますが、再利用できる証拠の方が強い判断材料です。残る制限も記録します。
受け入れマトリクス
| 確認点 | 残す証拠 | 合格条件 |
|---|---|---|
| RTSP と UDP: RTSP は接続できるのにビデオが真っ暗になる理由 — RTP がファイアウォール、NAT、および VPN によってブロックされる | 開始状態、一つの操作、結果状態 | 別の担当者が同じ結果を再現できる |
| コントロールは接続しているが UDP RTP がブロックされている場合に RTSP がビデオを表示しない問題を修正しました。ファイアウォール ルール、RTSP プロトコル ポート、NAT トラバーサル、VPN RTP 損失、TCP インター | 開始状態、一つの操作、結果状態 | 別の担当者が同じ結果を再現できる |
| コントロールが機能するからといってメディアが機能するわけではない | 開始状態、一つの操作、結果状態 | 別の担当者が同じ結果を再現できる |
| トランスポートヘッダーによりポート計画が明らかになります | 開始状態、一つの操作、結果状態 | 別の担当者が同じ結果を再現できる |
| 一般的なファイアウォールと NAT の障害 | 開始状態、一つの操作、結果状態 | 別の担当者が同じ結果を再現できる |
| TCP インターリーブがよく機能する理由 | 開始状態、一つの操作、結果状態 | 別の担当者が同じ結果を再現できる |
失敗の分離、復旧、引き継ぎ
最初に失敗した境界で停止します。元データ、プロジェクト、セッション、キャプチャを保存し、破壊的な編集前に複製し、一回の実験では一つの変数だけを変えます。複数変更後に全手順をやり直して結果が変わっても、理由は説明できません。
証拠がないことと、存在しない証拠を分けます。空の画面は、入力、範囲、フィルター、権限、デバイス、時間帯、プロジェクト状態の誤りでも起こります。decoder、編集、レポート、書き出しを解釈する前に、取得または読み込み経路を証明します。
引き継ぎ前に成果物を再度開き、先頭、判断点、末尾を確認します。バージョン、環境、設定、期待、観察、最小再現手順を記録します。機密情報を削除またはマスクし、受取人に権限があることも確認します。
質問と回答
最も速く信頼できる開始方法は何ですか?
最小で代表的なケースを使い、期待結果を書き、一つの変数だけを変えます。フィルター、エフェクト、編集、自動化、大きな入力を加える前に、基本経路を確認します。
どの証拠を保存すべきですか?
入力の識別情報、バージョン、環境、設定、正確な操作、最初の異常な変化、最終出力を残します。プロジェクト、セッション、レポート、書き出しは閉じて開き直します。
いつ手順を繰り返しますか?
アプリ、OS、driver、firmware、モデル、入力、手順の変更が結果に影響し得る場合です。以前に合格したケースを変更せず、比較基準として残します。
いつ引き継ぎ可能になりますか?
権限のある別の人が入力を特定し、操作を繰り返し、同じ結果を確認し、残る制限を理解し、未記録のローカル状態なしで成果物を開ける時です。
関連ガイド
次の同一言語ページは、このトピックの正規所有者を変えずに隣接する工程を説明します。
<!-- multilingual-blog-closeout:end -->