我正在开发一个Android应用程序来播放RTSP协议的视频流,这是由达尔文流媒体服务器提供的。
我的问题是,无法使用安卓的VideoView/MediaPlayer通过某些特定的WiFi热点播放RTSP流,例如在我的工作场所。我到处搜索,发现Darwin streaming服务器使用UDP端口6970 - 6999进行媒体数据流传输,防火墙可能是问题所在。但相同的流可以通过相同的WiFi热点在PC上使用VLC播放。
VLC和Android内置媒体框架OpenCore使用的机制有什么不同?我可以在Android上用live555的openRTSP源码编写我自己的rtsp客户端吗?任何帮助都将不胜感激。
波顿
发布于 2011-03-28 14:21:40
我使用wireshark扫描我的网络,我想我现在知道其中的区别了:当我使用android模拟器时,我可以看到客户端一直通过端口6970、6971发送UDP请求,但没有得到响应。当使用VLC时,RTP数据通过端口554在TCP中传输。我认为这个问题是由防火墙引起的。
发布于 2012-12-13 23:13:46
如您在答案中所述,当Udp出现故障时,VLC会切换到Rtsp上的交错Rtp。
这就是VLC继续工作的原因。
如果你能使用.Net或者你可以将它作为你自己开发的参考,你可以使用我的库@ https://net7mma.codeplex.com/。
https://stackoverflow.com/questions/5422628
复制相似问题