gpt4 book ai didi

http - 通过 HTTP .NET 获取 RTSP

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:12:08 26 4
gpt4 key购买 nike

我在 asp.net C# 中,我想从通过 HTTP 隧道传输的轴相机获取 RTSP 流。为此,我正在关注 axis api documentation (从第 16 页开始)。我向带有授权 header 的相机发出 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

我打算从 Describe 命令中获取 trackId 参数,然后在后续的 Setup 命令中使用它来建立与服务器的 session ,但每次发送此请求时,400 (错误请求)参数由相机发送。我做错了什么?
注意:所有请求都是从fiddler发出的

最佳答案

我遇到了同样的问题。事实证明,您需要在一行中将每个参数发送到相机。如:

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

如果您按照下图所示进行操作,相机会在中间获得一个换行符并搞砸请求。 axis 页面上的 api 显示格式如下,有点烦人。

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

我不会使用 fiddler,它完全阻止了 RTSP 为我工作。 Wireshark 工作正常。我使用 PuTty 与相机通信。我最终想使用 Web 浏览器并使用 PHP 发送/接收命令,但我不知道该怎么做。

我知道如何发送 GET 请求,如果它在 url 中看起来像下面这样

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

但是当它看起来像下面的内容时,我很困惑如何将它从网络浏览器发送到服务器..

    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,可以用吗?

关于http - 通过 HTTP .NET 获取 RTSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11009996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com