首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有认证的Rtsp视频流

带有认证的Rtsp视频流
EN

Stack Overflow用户
提问于 2019-03-27 14:16:25
回答 1查看 9.4K关注 0票数 1

我想连接到带有ip地址的无线网络摄像头。我试着连接到:

代码语言:javascript
复制
rtsp://username:password@ip_camera

但是视频视图不喜欢。我试过用地图,比如:

代码语言:javascript
复制
Uri source = Uri.parse("rtsp://ipcamera");
headers = new HashMap<String, String>();
headers.put("Username", "user");
headers.put("Password", "password");
videoView.setVideoURI(source, headers);

反正也别起作用。因此,我在互联网上读到,它想要的是base_64 basic auth,所以:

代码语言:javascript
复制
String authHeader = "Basic " + Base64.encodeToString("username:password".getBytes(),Base64.URL_SAFE | Base64.NO_WRAP);
headers.put("Authorization", authHeader);
Uri source = Uri.parse("rtsp://ipcamera");
videoView.setVideoURI(source, headers);

没什么。相同误差

代码语言:javascript
复制
E/MediaPlayerNative: error (1, -2147483648)

它意味着不知道的错误(?)

找到工作方法有什么建议吗?谢谢

编辑

我发现,通过铬网络分析,这台相机使用的是“摘要授权”。这是生成它的一种方式吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-30 14:06:08

用于流rtsp的库必须支持摘要身份验证。

它不像添加标题那么简单。

用RTSP消化八月

启用Digest的RTSP服务器应该使用401 unauthorized 见D.2.2响应一个见D.2.2请求,在WWW-Authenticate头中返回一个nonce。

代码语言:javascript
复制
WWW-Authenticate: Digest realm="GStreamer RTSP Server", nonce="1c91a068811f1029"

然后,客户端使用nonce生成可用于身份验证的授权头,

代码语言:javascript
复制
Authorization: Digest username="admin", realm="GStreamer RTSP Server", nonce="1c91a068811f1029", uri="rtsp://0.0.0.0:8554/live.sdp", response="ef18317f111b1446dc4c6a11b4f4ebf3"

上面的响应值是通过散列一些信息来再次生成的,如下所示

代码语言:javascript
复制
HA1 = MD5(username:realm:password)
HA2 = MD5(method:digestURI)
response = MD5(HA1:nonce:HA2)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55379440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档