Android:使用TCP从Darwin Streaming Server(DSS)接收流

时间:2011-03-28 05:54:24

标签: android udp video-streaming rtp rtsp

我正在使用Android应用程序从使用DSS的服务器播放rtsp流。 它大部分时间都有效,但有时候我无法正常工作。我测试了wireshark并看到UDP请求继续发送但没有响应,原因可能是防火墙阻止了UDP数据包,我想。当我使用VLC打开相同的RTSP流时,我得到使用TCP的RTP响应。

目前因为我无法更改防火墙状态,我想更改我的应用程序以使用TCP接收RTSP流,我认为使用内置MediaPlayer / VideoView是不可能的。那我怎么能这样做?

有什么建议吗?

提前致谢。

博尔顿

1 个答案:

答案 0 :(得分:0)

如果内置媒体播放器不支持它,那么您需要实现自己的RTSP客户端,并且在RTSP设置请求中,您需要指定TCP作为传输。

标准RTSP设置:

第1道:

SETUP rtsp://146.64.28.137/TheItCrowd.mm1/track1 RTSP/1.0
CSeq: 3
Transport: RTP/AVP;unicast;client_port=4116-4117
User-Agent: openRtsp (LIVE555 Streaming Media v2010.04.09)

磁轨2:

SETUP rtsp://146.64.28.137/TheItCrowd.mm1/track2 RTSP/1.0
CSeq: 4
Transport: RTP/AVP;unicast;client_port=4118-4119
Session: 6B8B4567
User-Agent: openRtsp (LIVE555 Streaming Media v2010.04.09)

RTSP / TCP上交错的RTSP设置:

TRACK1:

SETUP rtsp://146.64.28.137/TheItCrowd.mm1/track1 RTSP/1.0
CSeq: 3
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
User-Agent: openRtsp (LIVE555 Streaming Media v2010.04.09)

磁轨2:

SETUP rtsp://146.64.28.137/TheItCrowd.mm1/track2 RTSP/1.0
CSeq: 4
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
Session: 35B9387A
User-Agent: openRtsp (LIVE555 Streaming Media v2010.04.09)