2

我在 Windows XP sp3 上为 Java 6 使用 Red5 版本 1.0.0(最终版本)。我正在使用从https://code.google.com/p/red5/下载的安装程序版本. 我有一个项目,其中我正在用户之间进行实时网络摄像头聊天。我正在为此使用RTMPT(HTTP over RTMP)协议。所以我在Apache Web服务器后面设置了我的Red5服务器。问题是一切都顺利进行了45-50秒,然后RTMPT连接突然关闭了。我是没有使用专用的 rtmpt 服务器,即我没有取消注释 conf 文件中的 rtmpt bean。而是在我的应用程序的 web.xml 中添加了 servlet 映射条目(用于空闲、fcs、打开等)。RTMPT 正在侦听 5080 端口。我也用以前版本的 Red5 对此进行了测试,但问题是一样的。RTMPT 连接在一段时间后(一分钟内)关闭。我查看了日志,但没有发现任何关于此的内容。由于不活动期,也没有关闭连接。跟 Apache 有关系吗?我不确定服务器是否正在关闭连接(尽管我找不到任何关于关闭连接的日志)或客户端关闭它。也用 0.9.0 和 0.9.1 尝试过,但无济于事。我听说有问题在 Mac 上使用带有 Red5 的 RTMPT 但我在 Windows 上。任何指向这个问题的指针?任何帮助表示赞赏。此外,这里是我在 Apache Web 服务器上获得的错误日志 -

[错误] (OS 10048) 每个套接字地址(协议/网络地址/端口)通常只允许使用一次。:代理:HTTP:尝试连接到 red5serverip:5080 (*) 失败。

相同的日志重复四次。

这里还有一些来自 Apache 的访问日志——

"POST /send/IDTK7NOG2PXGB/803 HTTP/1.1" 200 1
"POST /send/IDTK7NOG2PXGB/804 HTTP/1.1" 503 323
"POST /send/YXF4WTFMN8TCM/1391 HTTP/1.1" 200 8285
"POST /send/YXF4WTFMN8TCM/1392 HTTP/1.1" 200 1
"POST /send/YXF4WTFMN8TCM/1393 HTTP/1.1" 200 54
"POST /send/YXF4WTFMN8TCM/1394 HTTP/1.1" 200 1
"POST /send/YXF4WTFMN8TCM/1395 HTTP/1.1" 503 323
"POST /close/IDTK7NOG2PXGB/805 HTTP/1.1" 503 323
"POST /close/YXF4WTFMN8TCM/1396 HTTP/1.1" 503 323

谢谢!

4

3 回答 3

1

可能你的 tcp 端口用完了。默认情况下,一个 tcp 连接会在 TIME_WAIT 状态下保持 4 分钟,即使它已经关闭。当您的 RTMPT 流每秒使用 5 个连接时,您的系统将需要为每个连接的用户提供至少 5*60*4=1200 个端口。

防火墙通常会限制可用端口的数量。您还可以减少 tcp 套接字的保持活动时间。如果您使用 apache 错误消息四处搜索,您将找到足够的信息来解决这个问题。

于 2012-12-15T18:56:28.943 回答
0

503 表示服务没有响应;如果您通过 apache 转发到 red5,那么这意味着那里有问题。我建议不要使用独立的 rtmpt bean;而是仅使用 servlet 并从混合中删除 apache 来调试问题。

于 2014-06-24T18:05:15.723 回答
0

您的 red5 服务器可能已崩溃。当您的 RAM 使用结束时,就会发生这种情况。在这种情况下,您需要再次手动启动 red5。如果这解决了您的问题,您需要升级 RAM。多次遇到此问题后,我使用了大约 8GB 的​​ RAM。因为red5是用JAVA写的,内存不足。FFMPEG 非常适合在低内存中使用。但我不知道如何使用 ffmpeg 提供聊天。

于 2013-02-01T10:47:18.447 回答