RTSP播放:VLC与Android内置OpenCore的区别
我正在开发一个 Android 应用程序来播放 RTSP 协议的视频流,该协议由 Darwin 流服务器提供。
我的问题是 RTSP 流无法通过某些特定的 WiFi 热点(例如在我的工作场所)使用 Android 的 VideoView/MediaPlayer 播放。我查了一下,发现Darwin流媒体服务器使用UDP端口6970 - 6999进行媒体数据流,防火墙可能是问题。但可以通过相同的 WiFi 热点在 PC 上使用 VLC 播放相同的流。
VLC和Android内置媒体框架OpenCore使用的机制有什么区别?我可以在Android上使用live555的openRTSP源代码编写自己的rtsp客户端吗?任何帮助将不胜感激。
博尔顿
I am working on an Android app to play video stream in RTSP protocol, which provided by the Darwin streaming server.
My problem is that the RTSP stream cannot be played using Android's VideoView/MediaPlayer via some specific WiFi hotspots, e.g. at my workplace. I searched around and found that Darwin streaming server use UDP Ports 6970 - 6999 for media data streaming, and the firewall may be the problem. but the same stream can be played using VLC on PC via the same WiFi hotspot.
What's the difference between the mechanism that VLC and the Android's build-in media framework OpenCore use? Is that possible for me to write my own rtsp client with live555's openRTSP source on Android? Any help will be very appreciated.
Bolton
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我已经使用wireshark来扫描我的网络,我想我现在知道其中的区别:
当我使用android模拟器时,我可以看到客户端不断通过端口6970、6971发送UDP请求,但没有得到响应。当使用 VLC 时,RTP 数据通过端口 554 在 TCP 中传输。
我认为这个问题是由防火墙引起的。
I've used wireshark to scan my network and I think I now know the difference:
When I use android emulator, I can see the client keeps sending UDP requests through ports 6970, 6971 but get no response. And when using VLC, the RTP data is transfered in TCP via port 554.
And the problem is caused by the firewall I think.
正如您在回答中所述,当 Udp 失败时,VLC 通过 Rtsp 切换到交错 Rtp。
这就是 VLC 继续发挥作用的原因。
如果您可以使用.Net,您可以使用我的库@https://net7mma.codeplex.com/或者您可以作为自己开发的参考。
As you stated in your answer VLC Switches to Interleaved Rtp over Rtsp when Udp fails.
This is why VLC continues to work.
You can use my library @ https://net7mma.codeplex.com/ if you can use .Net or you can use it as a reference for your own development.