这是最近在项目中遇到的问题,以前一直在内网测试,效果良好,自从公司租了租了服务器后,需要通过外网访问,之后问题就接二连三的来了
通过将red5项目集成到tomcat中,然后访问red5服务器中的视频文件时,一直访问不到
现在有一个外网,例如为:183.54.223.123 对应内网为:10.52.85.21
在tomcat中的webapps中,有一个fileList编写的red5服务程序
在fileList 下的WEB-INF/classes中存在一些.xml配置文件,其中需要改变的主要是root-web.xml和red5-core.xml
以下是我的配置文件:
root-web.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- ROOT web context --> <bean id="web.context" class="org.red5.server.Context"> <property name="scopeResolver" ref="red5.scopeResolver" /> <property name="clientRegistry" ref="global.clientRegistry" /> <property name="serviceInvoker" ref="global.serviceInvoker" /> <property name="mappingStrategy" ref="global.mappingStrategy" /> </bean> <bean id="web.scope" class="org.red5.server.WebScope" init-method="register"> <property name="server" ref="red5.server" /> <property name="parent" ref="global.scope" /> <property name="context" ref="web.context" /> <property name="handler" ref="global.handler" /> <property name="contextPath" value="/fileList" /> <property name="virtualHosts" value="10.52.85.21" /> </bean> <bean id="web.handler" class="com.apps.Application" singleton="true" /> <bean id="streamService.service" class="com.services.StreamService" singleton="true"/> <bean id="streamFilenameGenerator" class="streamfile.path.PathBean"> <property name="recordPath" value="/usr/tmp/streams/" /> <property name="playbackPath" value="/usr/tmp/streams/" /> </bean> </beans>
red5-core.xml
由于太长,我就粘贴需要改动的那个部分
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lang="http://www.springframework.org/schema/lang" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd"> <!-- This context holds all the networking: mina --> .......省略部分...... <!-- RTMP Mina Transport --> <bean id="rtmpTransport" class="org.red5.server.net.rtmp.RTMPMinaTransport" init-method="start" destroy-method="stop"> <property name="ioHandler" ref="rtmpMinaIoHandler" /> <property name="connectors"> <list> <bean class="java.net.InetSocketAddress"> <constructor-arg index="0" type="java.lang.String" value="10.52.85.21" /> <constructor-arg index="1" type="int" value="1935" /> </bean> </list> </property> <property name="receiveBufferSize" value="65536" /> <property name="sendBufferSize" value="271360" /> <property name="connectionThreads" value="4" /> <property name="ioThreads" value="16" /> <!-- This is the interval at which the sessions are polled for stats. If mina monitoring is not enabled, polling will not occur. --> <property name="jmxPollInterval" value="1000" /> <property name="tcpNoDelay" value="true" /> </bean> ......省略部分...... </beans>
在root-web.xml中指定了流媒体服务器中的文件播放路径-->/usr/tmp/streams,同时我也在此目录下放置了test.flv文件
看其中的IP地址,我这里很疑惑,到底是填写内网地址呢还是外网地址呢
根据tomcat中的日志red5.log中记录,当使用外网地址时,使用netstat -ntl | more命令查看时,发现1935根本不会开启,同时red5.log中就会出现cannot assign requested address错误
当使用内网时,就不会报错,并且使用命令查看端口时,发现1935是开启的
但是无论通过哪种方法访问 rtmp://183.54.223.123/fileList/test.flv 或者使用 rtmp://10.52.85.21/fileList/test.flv 都不能正常播放
在外部用流媒体播放器是无法播放的,总是说不是指定路径,于是我将一个自己写的测试流媒体播放的播放器放置在项目的tomcat下,通过内部区访问,也是行不通的,同时给我标出的端口竟然是80(如Server not found rtmp://183.54.223.123:80/fileList),证明我不是通过1935访问的(但是在这种情况下,如果上面中的xml文件配置的是内网IP的话,1935应该是打开了的,为什么竟然是通过80端口访问的呢?)
于是我又想是不是外网服务器进入内网中时,有一层防火墙,阻止了1935端口开启,但是打电话去问时,给我的答案是只对80端口进行了部分限制,其它的端口没有限制,同时我使用telnet命令在windows上是能够测通的
这里我已经确认了本机上的防火墙已经把特定的端口开启了,而且我也做过吧防火墙全部关闭过的尝试,但是都没有效果
所以在此特求各位懂的朋友指明一下,谢谢~~~
下面就是fileList中的具体文件图片:
相关推荐
将red5集成到tomcat中,一步步创建第一个flex小例子
Red5 是一个采用 Java 开发的开源免费 Flash 流媒体服务器。Red5 基于 Java 和一些功能强大...本文通过对 Red5 的介绍,让读者了解如何使用 Red5 快速搭建一个流媒体服务器和如何在服务器上开发部署相应的流媒体应用。
Red5集成到Tomcat demo 文档说明
red5 与 tomcat项目集成
基于red5流媒体服务器代码 实现在线直播和点播,可以点rtsp流和文件流
RED5流媒体服务器的简单搭建,只需要简单配置环境变量,然后执行批处理文件,就可以运行RED5流媒体服务器了,非常方便简单
本文档记录了利用ffmpeg将摄像机采集的rtsp视频流转换为rtmp视频流,并推送到rtmp服务器red5的详细步骤。最终可以供VLC、web页面访问并展示rtmp视频。
Red5流媒体服务器入门基础,其中附带例子聊天系统
该项目是将Red5的web项目部署到Tomcat下。 注:1.该项目适合Red5初学者。 2.环境:jdk6 3.只要在myeclipse中将dmo打开就行的。
Red5-1.0-RC1集成到tomcat详细步骤
red5_+_tomcat集成
流媒体指以流方式在网络中传送音频、视频和多媒体文件的... 相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕
本项目是由springboot构建的red5流媒体服务器。服务添加了hls支持http请求支持。red5_hls是对red5的1.1.1版本进行springboot整合,整合后直接使用springboot进行启动和管理。打jar包运行。目前通过实时推流测试。该...
原创搭建RED5流媒体服务器,刚搭建好记录下搭建过程和一些心得。
基于Flash的流媒体服务的一款基于Java的开源流媒体服务器
小试 Red5 流媒体服务器小试 Red5 流媒体服务器
red5入门,tomcat+red5+myeclipse集成,原创禁止转载,欢迎补充!
android+Red5流媒体服务器 实现视频通话 视频直播 视频点播 注:搭建完成自己的Red5服务器后请将android端的IP地址修改为你自己的地址!
FLEX流媒体服务器Red5安装软件.基于Flash的流媒体服务的一款基于Java的开源流媒体服务器。它由Java语言编写,使用RTMP作为流媒体传输协议.