RTSP カメラ ストリーム診断: DESCRIBE から再生までの体系的なトラブルシューティング ワークフロー

RTSP カメラの問題は、通常、接続層、制御層、またはメディア層のパターンに従います。この診断ワークフローでは、どのような証拠を収集するか、どのプロトコル ステージで障害が発生しているか、および正確な障害を特定するために SDP、RTP、および RTCP を読み取る方法が示されます。

RTSP 診断, トラブルシューティング, カメラ ストリーム, 説明, セットアップ, RTP

RTSP カメラの障害には推測は必要ありません。プロトコルは、接続 (TCP/TLS)、制御 (DESCRIBE/SETUP/PLAY)、およびメディア (RTP/RTCP) の階層構造になっています。ストリームが中断されると、これらの層のいずれかが問題になります。あなたの仕事は、どれかを見つけることです。

3層モデル

すべての RTSP 問題は、3 つのバケットのいずれかに分類されます。特定のエラー コードに入る前に、ここから始めてください。

レイヤー 1 — 接続: クライアントはカメラに到達できますか? TCP ハンドシェイク、TLS ネゴシエーション、ポート フィルタリング、VPN ルーティング。 「telnet Camera-ip 554」が接続しない場合は、他に何も問題はありません。

レイヤー 2 — コントロール: 接続は機能しますが、RTSP コマンドは失敗します。 DESCRIBE は 400/404/401 を返します。 SETUP は 461 を返します。PLAY は 453 を返します。コントロール プレーンには、URL 形式、認証、トランスポート ネゴシエーション、セッション管理などのプロトコル レベルの問題があります。

レイヤー 3 — メディア: コントロールは完全に機能しますが、ビデオ/オーディオが壊れています。 RTP パケットが到着しましたが、デコードできません。タイムスタンプがずれます。フレームが破損しています。 RTCP は損失を報告します。メディア プレーンにペイロード、コーデック、またはネットワーク品質の問題があります。

クイックトリアージテーブル

Symptom 可能性の高いレイヤー 最初に確認してください
"接続拒否" レイヤー1 ポート 554 に到達可能ですか?ファイアウォールのブロック?
DESCRIBE での 400 不正なリクエスト レイヤー2 RTSP URL 形式、エンコーディング、プロキシ ヘッダー
401 不正 レイヤー2 ダイジェスト認証パラメータ、ユーザー名/パスワード
461 サポートされていないトランスポート レイヤー2 UDP と TCP トランスポート、SETUP ヘッダー
説明OK、セットアップOK、ビデオなし レイヤー3 RTP ペイロード タイプ、コーデック マッピング
ビデオが再生されるが、その後フリーズする レイヤー3 パケットロス、キープアライブ、セッションタイムアウト
オーディオとビデオが離れてしまう レイヤー3 RTP タイムスタンプ、クロック レートの不一致

集めなければならない証拠

RTSP の問題を診断する前に、次の 5 つの証拠を収集してください。

  1. 完全な DESCRIBE 応答 — SDP は、どのようなトラックが存在するか、どのようなコーデックが使用されているか、どのようなペイロード タイプが割り当てられているかを示します。
  2. SETUP リクエストとレスポンス — トランスポート ヘッダーには、UDP と TCP、クライアント ポート、およびインターリーブされたチャネル ID が表示されます。
  3. PLAY 応答 — セッションがアクティブであり、RTP が流れていることを確認します。
  4. RTP パケット サンプル — ペイロード タイプ バイト、シーケンス番号、タイムスタンプ、SSRC。
  5. RTCP 送信者/受信者レポート — パケット損失数、ジッター、到着間隔遅延。

これらがなければ、推測でしかありません。彼らの場合、通常、失敗は明らかです。

エラーによる詳細なガイド

エスカレーションするタイミング

3 つの層すべてがチェックアウトされている場合 (TCP は接続し、RTSP コマンドは成功し、RTP パケットは正しいペイロード タイプと安定したタイムスタンプで到着します)、それでもビデオが間違っているように見える場合、問題はおそらく RTSP トランスポートではなく、デコーダまたはアプリケーション層にあります。その時点で、短い PCAP をキャプチャし、数秒間の RTP をエクスポートして、デコーダ チームに渡します。