所以我有一个RTSP
流我试图在D-Link936L和三星Galaxy Tab S之间设置。我已经验证了codecs
(a / v)匹配并且是兼容。我已经验证了ip camera使用VLC
连接到我的桌面。
我所做的,我还没有看到其他人做的是深入研究平板电脑和相机之间共享的RTSP
网络数据包。我最终找到了一些有趣的东西。
注意:我也收到错误:
D/MediaPlayer: setDataSource IOException | SecurityException happend :
java.io.FileNotFoundException: No content provider: rtsp://
以及0x8000000000(或许多0' s)错误类似
error (1, -2147483648)
我正在处理一个处理不当的超时/错误传达错误。
我是如何得出这个结论的?我使用wireshark
一个良好的连接(从谷歌播放商店运行RTSP Player
到ip camera EDIT )的平板电脑以及连接不良(平板电脑到ip相机)。下面你可以看到我发现的东西。
良好的联系:
连接不好:
您会注意到在良好连接中有一个命令后跟一个ACK。但是,您也会注意到连接错误,接收DESCRIBE数据包的ACK大约需要2.2秒。这导致android端发送TEARDOWN,在此之后不久发送一个DESCRIBE_ACK被接收。因此,试图变得聪明,Android设备发送一个SETUP ...但它不能匹配它接收的TEARDOWN_ACK,很快就会收到它。
最后: 所以我的问题是什么(?!?!?!?!)导致这2秒的延迟......哦,我需要在12/8/17之前解决这个问题....哦,男孩...... < / p>
修改:
有一件事我忘了提及,它适用于rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov
但不是我的IP摄像头。
我做的事情只是注意到,当我运行我在Android设备上使用数据包捕获的软件时,上面的链接失败并显示错误(1,-214 #### #)代码。
答案 0 :(得分:0)
如果有其他人遇到这个,我会回答这个问题。
我无法找到根本原因,因为我的开发很快,我没有时间调试问题。
我的第一个解决方案是使用VXG api,但这只允许每个应用程序运行3个流,流长度上限为2分钟,每个视频上有一个水印...... GROSS!
我的第二个也是最后一个解决方案是使用VLC api,这有点古怪,但我能够在一个工作日进行设置,让它工作超过3个流,无限时间,没有水印。 ..AWESOME!
我的建议是使用VLC api。我唯一的问题是它只能在一个表面视图中工作,所以这给了我一些问题,它似乎使用TCP,因为它比VXG api更潜在(但我没有通过检查通信是什么正在使用)。因此,基本上准备不到实时视频,可能是0.5-1秒的延迟是我在私有WLAN上经历的。