RTSP カメラ ストリーム診断: DESCRIBE から再生までの体系的なトラブルシューティング ワークフロー
RTSP カメラの問題は、通常、接続層、制御層、またはメディア層のパターンに従います。この診断ワークフローでは、どのような証拠を収集するか、どのプロトコル ステージで障害が発生しているか、および正確な障害を特定するために SDP、RTP、および RTCP を読み取る方法が示されます。
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 つの証拠を収集してください。
- 完全な DESCRIBE 応答 — SDP は、どのようなトラックが存在するか、どのようなコーデックが使用されているか、どのようなペイロード タイプが割り当てられているかを示します。
- SETUP リクエストとレスポンス — トランスポート ヘッダーには、UDP と TCP、クライアント ポート、およびインターリーブされたチャネル ID が表示されます。
- PLAY 応答 — セッションがアクティブであり、RTP が流れていることを確認します。
- RTP パケット サンプル — ペイロード タイプ バイト、シーケンス番号、タイムスタンプ、SSRC。
- RTCP 送信者/受信者レポート — パケット損失数、ジッター、到着間隔遅延。
これらがなければ、推測でしかありません。彼らの場合、通常、失敗は明らかです。
エラーによる詳細なガイド
- RTSP 400 不正なリクエスト: DESCRIBE 失敗、不正な形式の URL
- RTSP 461 サポートされていないトランスポート: セットアップに失敗しました
- H.264 FU-A フラグメンテーション: RTP パケット損失と NAL 再構成
- RTP 動的ペイロード タイプの不一致: SDP とコーデックのマッピング
- RTSP UDP RTP のブロック: ファイアウォール、NAT、および VPN
- RTP タイムスタンプ ドリフト: クロック レートとオーディオ/ビデオ同期
- RTSP セッションのタイムアウトとキープアライブ
- RTCP 送信者レポート: ジッターとパケット損失の分析
エスカレーションするタイミング
3 つの層すべてがチェックアウトされている場合 (TCP は接続し、RTSP コマンドは成功し、RTP パケットは正しいペイロード タイプと安定したタイムスタンプで到着します)、それでもビデオが間違っているように見える場合、問題はおそらく RTSP トランスポートではなく、デコーダまたはアプリケーション層にあります。その時点で、短い PCAP をキャプチャし、数秒間の RTP をエクスポートして、デコーダ チームに渡します。