理解 rtsp URL 的语法

理解 rtsp URL 的语法

通过反复试验,我能够使用以下 URL 在 VLC 中显示来自 RTSP WiFi 摄像头的馈送:

rtsp://192.168.2.33:554?user=admin&password=&channel=2&stream=1.sdp

然而我发现所有的例子都使用了类似的东西:

rtsp://192.168.2.33:554/user=admin&password=&channel=2&stream=1.sdp

/代替?/对我来说 不起作用。 VLC 无法打开流。 有人知道有什么区别吗?

答案1

问号在 URI 中用作资源路径和查询参数的分隔符。每RFC 3986

    foo://example.com:8042/over/there?name=ferret#nose
    \_/   \______________/\_________/ \_________/ \__/
     |           |            |            |        |
  scheme     authority       path        query   fragment

并且在第 3.3 节

路径以第一个问号(“?”)或数字符号(“#”)字符终止,或者以 URI 的结尾终止。

所以你的第一个例子是正确的。

第二个(没有?)是错误的,因为它将查询参数组合成所请求资源的路径。


附注:浏览器(至少是当前版本的 Chrome 或 Firefox)将自动更改:

http://192.168.2.33:554?user=admin&password=&channel=2&stream=1.sdp

进入:

http://192.168.2.33:554/?user=admin&password=&channel=2&stream=1.sdp

答案2

尝试

rtsp://user:[email protected]/

这至少应该为您提供第一个频道,此后,其余部分的语法可以依赖于设备。

rtsp://user:[email protected]/cam/realmonitor?channel=1&subtype=1 

对我来说是可行的,但你的里程可能会有所不同。

相关内容