我需要一个Android应用程序来使用带有摘要式身份验证的videoview或媒体播放器来直播rtsp网址。我不知道如何使用摘要身份验证和rtsp网址。是否可以在mediaplayer中使用摘要式身份验证。任何帮助,将不胜感激。
答案 0 :(得分:1)
目前这已经破了,这是我的观点中的一个主要问题,因为似乎没有办法将流直接连接到MediaPlayer(也就是说,有一些“垫片”可以为你工作,否则可能工作 - 也可以通过某个远程站点的SSL连接进行隧道RTSP,同时解决“全开视频”问题。)
问题在于,虽然MediaPlayer会在RTSP请求上发出一个用于身份验证的摘要,但它发送的内容却被破坏了 - 具体来说,它传回的URI末尾有一个额外的空格:
D13.Denninger.Net.51291 > 192.168.4.211.rtsp: Flags [P.], cksum 0x069b (correct), seq 166:526, ack 143, win 256, length 360: RTSP, length: 360
DESCRIBE rtsp://192.168.4.211:554/cam/realmonitor?channel=1&subtype=0 RTSP/1.0
Accept: application/sdp
Authorization: Digest nonce="a2732278fba530ed26e2a278a866fa13", username="karl", uri="rtsp://192.168.4.211:554/cam/realmonitor?channel=1&subtype=0 ", response="311b3d4ea28e643ed0d7e61820d43588"
User-Agent: stagefright/1.2 (Linux;Android 6.0)
CSeq: 2
在传递给Android Mediaplayer代码的实际URI中,该空间不存在,导致身份验证失败。
针对此提交了一个AOSP错误(我提供了上述跟踪以及更多详细信息),但除非谷歌修复它,否则唯一的选择是找到一些其他玩家(1)使用RTSP和(2)正确处理摘要认证或(2a)可以附加到套接字,允许您编写远程或本地的填充程序,以自己处理摘要工作。
我还没有找到一个,但如果有人解决了这个问题,我会喜欢指针。
答案 1 :(得分:0)
我不知道如何解决RSTP与摘要身份验证混合的问题。
但是,使用URLConnection通过HTTP进行摘要式身份验证。
这个实现可能对您有所帮助。
https://gist.github.com/slightfoot/5624590
理论上,在您通过身份验证过程后,您可以从流服务器获取数据并进行渲染。