1、下载Red5Server
首先到github之中去下载 https://github.com/Red5/red5-server/releases 下载最新稳定版本的,根据实际情况下载stable版本
同时为了开发和修改以及自定义路径;
2、安装Red5 eclipse插件
需要插件 red5-eclipse-plugin
https://github.com/Red5/red5-eclipse-plugin
2.1、解压下载的插件包,解压后包结构如图所示
2.2、把1234四个项目分别导入最新版eclipse,Import -> Existing projects to workspace -> Select root directory,
导 入后如图所示,导入后项目不能有报错的情况存在,如果报错可能下载的eclipse版本有问题,下载最新版eclipse.
2.3、开始安装插件,选择导出项目,如图
2.4、切换到Plug-in Development选项,选择Deployable plug-ins and fragments,如图
2.5、点击next,把上面三个项目全选中,下面选第三个选项,如果
2.6、点finish开始安装。
2.8、安装完成后重启eclipse,window->show view->servers->new server.出现Red5 Server Runtime选项,说明安装成功。
3、Eclipse之中创建Red5Server
3.1、把jre换成你的JRE;RunTime Directory换成解压到E盘的目录E:/red5-server。
3.2、凡事提示jar包有问题的,都去源文件中修改名字。例如上面说找不到red-io.jar,
那么就去E:/red5-server中把red5-io-1.0.8-RELEASE.jar拷贝一份并把副本改名为red-io.jar!
再例如:red5-server-common-xx.jar把版本去掉只留下red5-server-common.jar
最后如下。点解next
3.3、根据错误,结合自己red5server所在的路径改。
finish赶快启动服务器试一下吧!
4、 创建类实现自定义媒体访问路径
使用bean对自己的项目进行配置,更换默认的视频播放目录和视频录制目录.在0.6版的时候,
我们可以直接在red5-web.properties中写入playbackPath=mypath/来进行目录定义,
但是D5发现在0.7以后的版本,这样写已经不起作用了.因此到网上查了一下,找到了这篇文章. 文章地址
RED5中文件名的产生控制
RED5使用scope服务来对其本身的一些功能进行控制.其中一个scope服务是IStreamFilenameGenerator,
它用来产生点播VOD流或录制流的的文件名.我们可以通过自定义该scope来达到改变默认视频目录的目的.
自己的IStreamFilenameGenerator
想要自定义视频目录的路径,我们必须implements一个自己的文件产生器,代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package
org.red5.demos.oflaDemo;
import
org.red5.server.api.scope.IScope;
import
org.red5.server.api.stream.IStreamFilenameGenerator;
public
class
CustomFilenameGenerator
implements
IStreamFilenameGenerator {
/** Path that will store recorded videos. */
public
String recordPath =
"recordedStreams/"
;
/** Path that contains VOD streams. */
public
String playbackPath =
"videoStreams/"
;
/** Set if the path is absolute or relative */
public
boolean
resolvesAbsolutePath =
false
;
public
String generateFilename(IScope scope, String name, GenerationType type) {
// Generate filename without an extension.
return
generateFilename(scope, name,
null
, type);
}
public
String generateFilename(IScope scope, String name, String extension, GenerationType type) {
String filename;
if
(type == GenerationType.RECORD)
filename = recordPath + name;
else
filename = playbackPath + name;
if
(extension !=
null
)
// Add extension
filename += extension;
System.out.println(
"filename: "
+filename);
return
filename;
}
}
|
上述代码所构成的文件发生器,将产生类似recordedStreams/red5RecordDemo1234.flv的视频录制文件以及将videoStreams作为VOD点播的默认目录
修改配置文件另我们的文件管理器生效
下一步,我们自定义的文件产生器必须通过配置文件来生效,这样才能对我们的应用产生影响.
修改你的项目中WEB-INFO/red5-web.xml
请注意,实际上你的CustomFilenameGenerator肯定是在其他的包中,因此这里我们用path.to.your来表示.
你需要用实际的路径来代替它,例如com.D5Power.CustomFilenameGenerator.
这样一来,你就可以通过我们编写的CustomFilenameGenerator来控制你想要的视频播放目录和录制目录了,
但是对于一个项目来说,这样似乎很麻烦,我们要修改目录的时候总是要去修改源代码,并重新进行编译.
我们需要象原来的0.6版程序一样,只通过配置文件就可以进行配置.这样更方便一些.那么,对我们的代码做一些修改吧.
向CustomFilenameGenerator中增加以下三个方法
public void setRecordPath(String path) { recordPath = path; } public void setPlaybackPath(String path) { playbackPath = path; } public void setAbsolutePath(Boolean absolute) { resolvesAbsolutePath = absolute; } public boolean resolvesToAbsolutePath() { return resolvesAbsolutePath; }
接下来,把我们的bean的配置代码改成下面这样
class="path.to.your.CustomFilenameGenerator">
当然,你还可以把这两个变量的声明移到你的应用中WEB-INF/red5-web.properties文件中,于是上述代码变成了:
class="path.to.your.CustomFilenameGenerator">
而在red5-web.properties中多出以下两个变量的声明就可以了