ONVIF は機能するが、RTSP URL が失敗する: 実際のカメラ ストリーム パスの検索

RTSP ストリームが失敗しても ONVIF 検出が機能する理由と、カメラ プロファイル、メディア URL、認証、トランスポート、および SDP 証拠をデバッグする方法

onvif rtsp, rtsp URL, IPカメラストリームパス, カメラ診断, sdp

RTSP URL が依然として失敗しても、IP カメラが ONVIF 検出で正しく表示されるのはよくあることです。デバイスはネットワーク上に表示され、カメラの名前とモデルは検出され、おそらくプロファイルもリストされますが、実際のビデオ ストリームは開きません。ユーザーは、「ONVIF は機能するが、RTSP は失敗する」、「カメラは検出されましたが、RTSP ビデオがありません」、「ONVIF から RTSP URL を見つける方法」などを検索します。これは、検出の成功がストリーミングの成功を保証するものであると考えるためです。

そうではありません。

ONVIF と RTSP は多くのカメラ ワークフローで関連していますが、これらは同じプロトコルではなく、同じであることは証明されていません。 ONVIF は、カメラが存在することを示し、メディア プロファイルを提供する可能性があります。 RTSP は引き続き、認証、ストリームの記述、トランスポートのネゴシエーション、RTP トラックのセットアップ、およびメディア パケットの配信を行う必要があります。

RTSP Inspector は、後半、つまり特定の RTSP URL が使用されたときに実際に何が起こるかに焦点を当てています。

ONVIF が証明するもの

ONVIF 検出により、次のことが証明されます。

  • カメラは WS-Discovery に応答します。
  • カメラは ONVIF サービス エンドポイントを公開します。
  • クライアントはカメラ管理インターフェイスにアクセスできます。
  • カメラには 1 つ以上のメディア プロファイルがある場合があります。
  • デバイスは、ONVIF メディア サービスを通じてストリーム URI を報告できます。

これは便利ですが、RTSP ストリームが機能することを証明することと同じではありません。 ONVIF 検出では、RTSP とは異なるポート、異なる認証動作、および異なるサービス パスが使用される場合があります。

カメラは ONVIF 検出に合格しても、次の理由で RTSP に失敗することがあります。

  • カメラの設定でRTSPが無効になっています。
  • ONVIF アカウントには RTSP 権限がありません。
  • 返されたストリーム URI は不完全であるか、内部専用です。
  • RTSP ポートがファイアウォールによってブロックされています。
  • カメラは TCP インターリーブ トランスポートを必要としますが、クライアントは UDP を試みます。
  • プロファイルは H.265 を指していますが、クライアントは H.264 を期待しています。
  • NVR チャンネル パスが間違っています。
  • カメラは SDP を返しますが、RTP パケットは送信しません。

ONVIF ストリーム URI は直接使用できない可能性があります

一部のカメラは ONVIF 経由で RTSP URI を返しますが、これは使用可能に見えますが、まだ変更が必要です。例えば:

rtsp://192.168.1.50/Streaming/Channels/101

The real usable URL may need:

ONVIF profile does not guarantee codec support

The symptom may be:

RTSP Inspector helps by separating the layers:

RTSP transport can fail after ONVIF succeeds

This is common when:

Authentication can differ between ONVIF and RTSP

You may see:

RTSP/1.0 401 Unauthorized
WWW-Authenticate: Digest realm="IP Camera", nonce="..."

ONVIF 検出が機能したとしても。これは、RTSP サービスが資格情報を要求していることを意味します。クライアントが認証情報を送信してもカメラが「401」を返し続ける場合は、アカウントのアクセス許可、ダイジェスト認証、URL エンコード、およびチャネル権限を確認してください。

NVR では、ONVIF デバイスが NVR である可能性がある一方で、RTSP ストリーム パスは NVR の背後にあるカメラ チャネルを参照するため、これがさらにわかりにくくなります。このアカウントには、NVR へのクエリは許可されますが、チャンネル 1 のメイン ストリームのストリーミングは許可されない場合があります。

メインストリームとサブストリームの混同

多くのカメラは複数のプロファイルを公開します。

  • メインストリーム: 高解像度、高ビットレート、多くの場合 H.265。
  • サブストリーム: 低解像度、低ビットレート、多くの場合 H.264。
  • モバイル ストリーム: フレーム サイズが小さく、フレーム レートが低い。

ONVIF は、デフォルトでこれらのプロファイルの 1 つを返す場合があります。フォーラムまたはベンダー PDF からコピーされた RTSP URL が別の URL を指している場合があります。メイン ストリームが H.265 であるが、クライアントが H.264 のみをサポートしている場合、メイン ストリームが失敗してもサブストリームは機能する可能性があります。

「RTSP メイン ストリームが動作しない サブストリームが動作する」などの検索は、多くの場合、このカテゴリに属します。問題は発見ではありません。それは、プロファイルの選択、コーデックの選択、ビットレート、またはトランスポート動作です。

ONVIF は機能するが RTSP が失敗するをデバッグする方法

階層化されたチェックリストを使用します。

  1. カメラのRTSPサービスが有効になっていることを確認します。
  2. RTSP ポート (通常は 554) がクライアントから到達可能であることを確認します。
  3. ONVIF メディア プロファイルとストリーム URI を取得します。
  4. 実際に使用しているネットワーク パスの RTSP URL を正規化します。
  5. 資格情報を慎重に追加し、特殊文字を URL エンコードします。
  6. RTSP OPTIONSDESCRIBE を実行します。
  7. 認証チャレンジと応答を検査します。
  8. SDP のコーデック、ペイロード タイプ、クロック レート、およびトラック コントロール URL を検査します。
  9. UDP と TCP のインターリーブ トランスポートを比較します。
  10. 「PLAY」後にRTPパケットが到着することを確認します。
  11. RTP シーケンスの連続性、タイムスタンプ、ペイロード タイプを確認します。
  12. メインストリームとサブストリームを別々にテストします。

このチェックリストは、ONVIF 検出の成功をメディア ストリーミングが自動的に機能するはずであることの証拠として扱うというよくある間違いを防ぎます。

RTSP トレースで表示される内容

正常な RTSP フローは通常次のようになります。

OPTIONS rtsp://camera/stream RTSP/1.0
RTSP/1.0 200 OK

DESCRIBE rtsp://camera/stream RTSP/1.0
RTSP/1.0 200 OK
Content-Type: application/sdp

SETUP rtsp://camera/stream/trackID=1 RTSP/1.0
RTSP/1.0 200 OK
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

PLAY rtsp://camera/stream RTSP/1.0
RTSP/1.0 200 OK

Final diagnosis

<!-- rtsp-localized-evidence-foundation-v1:start -->

「ONVIF は機能するが、RTSP URL が失敗する: 実際のカメラ ストリーム パスの検索」を再現可能に検証する手順

結論から言うと、黒画面や一つのステータスコードだけでは障害の所在を証明できません。信頼できる診断では、RTSP の要求と応答、合意した Transport、有効な Session、その後の RTP シーケンス番号、タイムスタンプ、RTCP の証拠を一つの時系列につなげます。「ONVIF は機能するが、RTSP URL が失敗する: 実際のカメラ ストリーム パスの検索」では表示症状に近い層から調べますが、制御、ネットワーク、デコーダーの問題を混同しないよう同じ記録時刻を使います。

カメラ、ファイアウォール、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 -->