red5学习日志二

这篇直接真枪实战,搭建一个流媒体服务器,其实这些内容网上都可以搜到,我这里只是记录一下,以备忘。

我下载了最新的red5-server-1.0.2-RELEASE

下载地址:https://github.com/Red5/red5-server/releases/tag/v1.0.2-RELEASE

下载了oflaDemo这个实例的源码

SVN地址:http://red5.googlecode.com/svn/java/example/trunk


下载后解压,配置好环境变量,装好eclipse的red5插件,引入oflaDemo项目,用red5加载此项目,启动服务

如下图


访问一下看看是不是可以正常查看视频

http://localhost:5080/oflaDemo/index.html

如查不可以,连服务也启不了的话,

1、请检查RED5_HOME环境变量有没有设置

2、我在运行red5.bat的时候,报了一个关于+UseStringCache的错,我把这项从BAT里面删除了

如果可行,OK,下面开始搭建自己的项目

最终要实现的效果:

可以从自定义目录下播放视频,并可以自定义JSP页面通过名称访问视频,当然,这只是一个Demo


1、加载好oflaDemo这个项目,在org.red5.demos.oflaDemo包里面加一个类:

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 = "";
	/** Path that contains VOD streams. */
	public String playbackPath = "";
	/** Set if the path is absolute or relative */
	public boolean resolvesAbsolutePath = false;
	
	public void setRecordPath(String path) {
		recordPath = path;
	}

	public void setPlaybackPath(String path) {
		playbackPath = path;
	}

	public void setAbsolutePath(Boolean absolute) {
		resolvesAbsolutePath = absolute;
	}

	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;
		return filename;
	}

	@Override
	public boolean resolvesToAbsolutePath() {
		// TODO Auto-generated method stub
		return resolvesAbsolutePath;
	}
}



然后在red5-web.xml里面加入

<!-- 自定义视频读取路径 -->
    <bean id="streamFilenameGenerator" class="org.red5.demos.oflaDemo.CustomFilenameGenerator">
		<property name="recordPath" value="${recordPath}" />
		<property name="playbackPath" value="${playbackPath}" />
		<property name="absolutePath" value="${absolutePath}" />
    </bean>

再在red5-web.properties里面自定义路径

recordPath=D:\\recordedStreams\\
playbackPath=D:\\videoStreams\\
absolutePath=true

这里说下上面参数的意义

如果absolutePath设置成false的话,则是相对路径,相对当前项目的根路径。


OK,启动服务,将文件放在你定义好的路径下,则可以正常观看。


如果在上传文件时,再通过转码,将转好的文件放在固定的目录下,则一个上传视频,观看视频的雏形就做好了。


有时间再写下转码的内容。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值