1

私は asp.net C# を使用しており、HTTP 経由でトンネリングされた軸カメラから RTSP ストリームを取得したいと考えています。このために、私は軸APIドキュメント(16ページ以降)に従っています。認証ヘッダーを使用してカメラに HTTP 要求を発行し、RTSP Describeコマンドは base 64 でエンコードされ、POST 経由でカメラの URL に送信されました。これがHTTPリクエストです。

POST http://195.29.168.2:20000/axis-media/media.amp HTTP/1.1
User-Agent: Fiddler
Authorization: Basic VXNlcjpDQG1VNTNy
Host: 195.29.168.2:20000
Content-Length: 214
Content-Type: application/x-rtsp-tunnelled

[Base 64 encoded Describe command]
DESCRIBE rtsp://195.29.168.2:20000/axis-media/media.amp
     ?videocodec=h264&resolution=640x480 RTSP/1.0\r\n
    CSeq: 0\r\n
    User-Agent: Axis AMC\r\n
    Accept: application/sdp\r\n

コマンドから trackId パラメータを取得Describeし、それを後続のSetupコマンドで使用してサーバーとのセッションを確立するつもりですが、このリクエストを送信するたびに、カメラから 400 (不正なリクエスト) パラメータが送信されます。私は何を間違っていますか?
注:すべてのリクエストはフィドラーから発行されました

4

1 に答える 1

1

同じ問題が発生しました。各パラメータを1行でカメラに送信する必要があることがわかりました。のように:

DESCRIBE rtsp://195.29.168.2:20000/axis-media/media.amp?videocodec=h264&resolution=640x480 RTSP/1.0
CSeq: 0
User-Agent: Axis AMC
Accept: application/sdp

以下に示すように行うと、カメラは中央に改行文字を取得し、リクエストを台無しにします。軸ページのAPIがこのようにフォーマットされていることを示しているのはちょっと迷惑です。

DESCRIBE rtsp://195.29.168.2:20000/axis-media/media.amp
     ?videocodec=h264&resolution=640x480 RTSP/1.0

私はフィドラーを使用しませんでした、それは私のためにRTSPが完全に機能するのを止めました。Wiresharkは正常に動作します。私はカメラと通信するためにpuTtyを使用しました。最終的にはWebブラウザーを使用し、PHPを使用してコマンドを送受信したいのですが、その方法がわかりません。

URLに入力されるだけなので、次のようになったらGETリクエストを送信する方法を知っています。

http://myserver/axis-cgi/mjpg/video.cgi?resolution=320x240&compression=25&camera=1

しかし、ここで次のように見える場合、Webブラウザからサーバーに送信する方法について混乱しています。

    SETUP rtsp://myserver/axis-media/media.amp/
trackID=1?videocodec=h264&resolution=640x480 RTSP/1.0
CSeq: 2
User-Agent: Axis AMC
Transport: RTP/AVP;unicast;client_port=20000-20001

誰かがそれを手伝ってくれるといいのですが、私はphpを学んでいるだけですが、それを使用できますか?

于 2012-06-28T21:15:02.647 に答える