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

现在用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值