解决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
通过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
相关文章推荐
- 设置VSS2005使支持通过Internet访问 中the server configuration settings apply only for local databases....问题解决
- Ajax通过jsonp实现跨域访问,访问成功但走error不走success的的问题解决
- Ajax通过jsonp实现跨域访问,访问成功但走error不走success的的问题解决
- 解决js跨域访问问题JSONP,不支持同步调用
- 解决JBOSS服务器无法通过IP访问的问题
- 通过Nginx访问后端应用,ERR_CONTENT_LENGTH_MISMATCH 问题的解决
- C#/.Net通过Npgsql 访问PostgreSQL 乱码问题解决
- Java URLConnection 类,通过设置浏览器类型来解决访问受限问题
- jQuery $.ajax()通过本地服务器访问到远程服务器,解决远程问题。
- 解决Struts2的Action通过get方式访问乱码的问题
- 解决SpringBoot项目打成jar包访问不了jsp模板的问题: SpringBoot项目集成jsp模板打成war包 然后通过java -jar 命令启动访问
- 解决webpack无法通过IP地址访问localhost的问题
- MFC通过COM访问excel出现的几个问题解决方法
- Tomcat在局域网中localhost可以访问,但是无法通过本地ip访问,127.0.0.1也无法访问问题的解决方法
- 解决内网通过代理服务器访问外网部署WebService报错问题“请求因 HTTP 状态 407 失败”
- 通过修改Host文件解决主机头访问网站的问题
- Linux mint18通过禁用nouveau解决显示器出现“输入不支持”问题
- 通过history解决ajax不支持前进/后退/刷新的问题
- 解决Chrome浏览器打开新标签页,显示“无法访问此网站 连接已重置”的问题【在54.0 beta版上测试通过】
- 1、SRX防火墙Static NAT解决内网无法通过公网访问内网服务问题