您的位置:首页 > 理论基础 > 计算机网络

解决live555支持real player通过rtp-over-tcp访问问题

2010-07-01 16:38 295 查看
现在用live555(版本2010-05-29)开发rtsp服务器,主要将h264转为h263然后用live555实现rtsp等协议可以让vlc、quicktime、realplayer等播放软件访问。现在测试发现realplayer(版本sp 1.1.4)通过rtp-over-tcp在局域网可以访问服务器并且播放,但是我将软件部署在一个公网服务器上,就无法通过realplayer播放了,但是vlc可以。

通过wireshark抓包查看发现在服务器再响应完realplayer发出的SET_PARAMETER后,能成功播放的realplayer发送RTSP PLAY rtsp://xxx.xxx.xxx.xxx/test.3gp RTSP/1.0,不能播放的realplayer发送TCP包 rtsp [ACK] Seq=1428 Ack=1232 Win=64304 Len=0,等40几秒后realplayer再发RTSP SET_PARAMETER * RTSP/1.0,服务器报RTSP Reply: RTSP/1.0 404 Stream Not Found,然后realplayer就报无法播放。

修改rtspserver.cpp,做如下改动:

static char const* allowedCommandNames
= "OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER";

改为

static char const* allowedCommandNames
#ifndef REAL_PALYER_SUPPORT
= "OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER";
#else
= "OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER";
#endif

|| strcmp(cmdName, "SET_PARAMETER") == 0) {

改为

#ifndef REAL_PALYER_SUPPORT
|| strcmp(cmdName, "SET_PARAMETER") == 0) {
#else
) {
#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐