`
johnnywww
  • 浏览: 20260 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

解决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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics