我需要一个android应用程序直播流rtsp url使用videoview或媒体播放器与摘要认证。我不知道如何使用摘要身份验证和rtsp url。是否可以在mediaplayer中使用摘要身份验证。任何帮助都将不胜感激。
发布于 2018-05-18 05:57:53
它目前已经损坏,从我的角度来看,这是一个主要问题,因为似乎也没有办法将流直接连接到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 bug针对此(我在上面的跟踪中提供了更多细节),但在Google修复它之前,唯一的选择是找到其他播放器,这些播放器(1)使用RTSP,或者(2)正确地处理摘要身份验证,或者(2a)可以附加到一个套接字,允许您编写一个填充程序,远程或本地,以自己处理摘要工作。
我还没有找到一个,但如果有人已经解决了这个问题,我希望能有一个指针。
发布于 2018-03-24 01:44:25
我不知道如何准确地解决混合使用RSTP和disgest身份验证的问题。
但是,使用URLConnection的HTTP摘要身份验证。
这里有一个可能对你有帮助的实现。
https://gist.github.com/slightfoot/5624590
理论上,在通过身份验证过程后,您可以从流服务器获取数据并呈现它。
https://stackoverflow.com/questions/46422491
复制相似问题