轻松学习 red5 教程 像视频一样很详细还有代码直接可Copy

转载自:http://blog.csdn.net/hongdianking/archive/2009/11/12/4804339.aspx

最近要做一个流媒体服务器,在网上逗留了好久决定选择 red5 。但是网上中文资料很少视频资料更是不敢奢望,只有啃一些英文文档了, http://hi.baidu.com/qjchina/blog/item/acf860594516542e2934f076.html 是我的学习入口,在此表示对这位兄台的感谢。

废话少说直奔主题 >>>

我用到的软件有:

1.  Jdkv1.6.0.5forWindows;

2.  setup-Red5-0.7.0.exe( 这个从官网下载 http://osflash.org/red5/070final 速度比较慢 );

3.  eclipse( 英文版 --www.gougou.com 下载原名是 eclipse-jee-galileo-SR1-win32.zip)

4. Flash8-chs.exe(这个很好下,到www.gougou.com 就可找到)

操作流程:

第一步 > 安装 jdk :

我的 jdk 安装目录是 C:/Java/jdk1.6.0_05 安装时手动改的, jre 的目录是默认的 C:/Program Files/Java/jre1.6.0_05 。

第二步 > 配置 jdk 的环境变量:

环境变量的配置,网上到处都有,我在这里就不啰嗦了只是把配置的参数贴这里: JAVA_HOME >>“C:/Java/jdk1.6.0_05” ;

CLASSPATH>>“.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar;” ;

Path>>“;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;” ;

第三步 > 安装 red5 :

red5 的安装其实很简单,一直默认就好了, C:/Program Files/Red5 ;

第四步 > 解压 eclipse :

把 eclipse 解压到任意的目录都没关系;

第五步 > 配置 red5 :

a>> 在 /Red5/doc/templates 下有一个 myapp 的文件夹,把 myapp 拷贝到 ed5/webapps 下,然后重命名 myapp我把它重命名为 HelloWorld 这就是过会要在 eclipse 里建的项目的名字;

b>> 接下来在 HelloWorld 文件夹下建一个空夹 demos 用来放 flash 导出的文件 ( 其实不建也没关系,只是为了好管理项目文件 ) ;

c>> 在 Red5/webapps/HelloWorld/WEB-INF 下建三个空夹 src 和 class,lib 。 src 用来放 java 源文件, class 用来放编译好的 class 文件, lib 用来放导出的 jar 文件;

d>> 在 Red5/webapps/HelloWorld/WEB-INF 下有四个文件需要修改:文件 log4j.properties 直接删掉就可以了,文件 red5-web.properties 修改后的文件是 ”webapp.contextPath=/HelloWorld
webapp.virtualHosts=*,localhost,localhost:5080,127.0.0.1:5080“ ,

文件 red5-web.xml 需要改动两个地方第一把 class="the.path.to.my.Application" 改成class="org.d5.sayHello.Application" 其实 org.d5.sayHello 就是我们将要在 eclipse 中建的包名,第二把id="myhandler.service" 这个 bean 删掉,修改后的文件为:“ <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="location" value="/WEB-INF/red5-web.properties" />

</bean>

<bean id="web.context" class="org.red5.server.Context"

autowire="byType" />

<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="web.handler" />

<property name="contextPath" value="${webapp.contextPath}" />

<property name="virtualHosts" value="${webapp.virtualHosts}" />

</bean>

<bean id="web.handler"

class="org.d5.sayHello.Application"

singleton="true" />

</beans> ”

文件 web.xml 需要删除

<context-param>

<param-name>log4jConfigLocation</param-name>

<param-value>/WEB-INF/log4j.properties</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

</listener>

然后把

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>/myapp</param-value>

</context-param> 中的 myapp 改称 HelloWorld

修改后的文件是:“ <?xml version="1.0" encoding="ISO-8859-1"?>

<web-app

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

<display-name>My sample Red5 application</display-name>

<context-param>

<param-name>globalScope</param-name>

<param-value>default</param-value>

</context-param>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/red5-*.xml</param-value>

</context-param>

<context-param>

<param-name>locatorFactorySelector</param-name>

<param-value>red5.xml</param-value>

</context-param>

<context-param>

<param-name>parentContextKey</param-name>

<param-value>default.context</param-value>

</context-param>

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>/HelloWorld</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!-- remove the following servlet tags if you want to disable remoting for this application -->

<servlet>

<servlet-name>gateway</servlet-name>

<servlet-class>org.red5.server.net.servlet.AMFGatewayServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>gateway</servlet-name>

<url-pattern>/gateway</url-pattern>

</servlet-mapping>

<security-constraint>

<web-resource-collection>

<web-resource-name>Forbidden</web-resource-name>

<url-pattern>/streams/*</url-pattern>

</web-resource-collection>

<auth-constraint/>

</security-constraint>

</web-app> ”

第六步 > 创建 java 程序:

第一:打开 eclipse, 把 WorkSpace 设置到 /Red5/webapps ;

第二:新建 javaProject ,命名为 HelloWorld, 在 Contents 标签里选择“ Create project from existing source ” , 然后点击“ Browse ”找到我们先前建好的“ HelloWorld ”项目点击确定,完成。如下图:

接下来你会在项目里发现我们建好的所有文件如下图:

第三步:把 HelloWorld 根目录下的 src 从项目里删除,然后鼠标右击 WEB-INF 下的 src: buildpath à use as source folder这样就把 src 设置成 source 的根目录,如下图:

第四步:鼠标右击项目,选择 Property, 进入属性配置。选择 Java Build Path ,选择“ Source 标签”选上 Allow output folders for source folders 复选框,然后点击“ Browse ”在弹出的框中选择我们的 Class 文件夹作为存储 class 文件。

第五步:选择“ Librarise ”标签 — 〉“ Add External JARs ”把我们 Red5 下边的 red5.jar 加载进去。 OK 下一步可以建我们的 java 文件了。

第六步:建 Application.java 文件如下图:

第七步:导出 jar 文件到 lib 下:注意

第八步:安装 flash8. 下一步就可以了。

时间: 2024-10-14 23:50:37

轻松学习 red5 教程 像视频一样很详细还有代码直接可Copy的相关文章

转: angularjs学习总结(~~很详细的教程)

1 前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢. AngularJS是google在维护,其在国外已经十分火热,可是国内的使用情况却有不小的差距,参考文献/网络文章也很匮乏.这里便将我学习AngularJS写成文档,一方面作为自己学习路程上的记录,另一方面也给有兴趣的同学一些参考. 首先我自己也是一名学习者,会以学习者的角度来整理我的行文思路,这里可能只是些探索,有理解或是技术上的错误还请大家指出:其次我特别喜欢编写小

全套视频学习资料教程手册 100G左右solidworks 2013 win32 win64

ESI PAM-RTM 2010.0 Windows & Linux-ISO 2CD ISOVER TechCalc v1.0.2.7 1CD KISSsoft 2013 SP5 1CD Pipe Flow Expert 2013 v6.39.1.1 1CD Simprotek.Symprosys.v3.0 1CD TechCalc v1.0.2.7 1CD Bentley.Maxsurf.(SELECTseries2).V8i.v19.00.01.92.Win32_64 2CD Graeber

轻松学习LINUX系列教程推出

本系列多媒体教程已完成的博文: 1.轻松学习Linux之入门篇 http://chenguang.blog.51cto.com/350944/449214 2.轻松学习Linux之本地安装系统 (分区规划.光驱安装.硬盘ISO文件安装)http://chenguang.blog.51cto.com/350944/466760 3.通过网络方式安装linux的五种方法http://chenguang.blog.51cto.com/350944/439579 4.轻松学习Linux之详解系统引导过程

轻松学习C语言编程的秘诀:总结+灵感

目前在准备一套C语言的学习教程,所以我这里就以C语言编程的学习来讲.注意,讲的是"轻松学习",那种不注重方法,拼命玩命的方式也有其效果,但不是我提倡的.我讲究的是在方式方法对头.适合你.减轻你学习负担和心里压力的前提下,才适当的抓紧时间. 因此,探索一种很好的学习方法就是我所研究的主要内容. 众所周知,学习C语言并非易事,要学好它更是难上加难.这和你期末考试背会几个题目的答案考上满分没多大关系,也就是说你考试满分也说明不了你学好.学精通了C语言.那么怎么才算学精通C语言?闭着眼睛对自己

轻松学习正则表达式

转载自:http://www.cnblogs.com/jamesping/articles/2252675.html 装载自:http://www.cnblogs.com/sxwgf/archive/2011/11/17/2252076.html 继续把我在个人博客上新翻译的文章投递到博客园来,这次是有关正则表达式的,很基础,主要是让读者把握住正则表达式中的3种括号的用法,用这3种括号几乎可以涵盖所有的正则式. 写在最前面 前两天我从CodeProject上翻译了一篇关于Javascript的文

轻松学习JavaScript十一:JavaScript基本类型(包含类型转换)和引用类型

一值的类型 早在介绍JS的数据类型的时候就提到过基本类型和引用类型,不过在说两种类型之前,我们先来了解一下变量的 值的类型.在ECMAScript中,变量可以存在两种类型的值,即原始值和引用值. (1)原始值 存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置. (2)引用值 存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处. 为变量赋值时,ECMAScript的解释程序必须判断该值是原始类型,还是引用类型.要实现这一点,解释程序则需 尝试判断该值是否

ios网络学习------9 播放网络视频

IOS提供了叫做MPMoviePlayerController  MPMoviePlayerViewController两个类,可以轻松用来实现视频播放.MPMoviePlayerViewController只能全屏播放视频. #import "MainViewController.h" #import <MediaPlayer/MediaPlayer.h> @interface MainViewController () //视频播放器 @property (strong

Deep Learning 十_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)

前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab2015b,16G内存,2T机械硬盘 实验内容:Exercise:Convolution and Pooling.从2000张64*64的RGB图片(它是the STL10 Dataset的一个子集)中提取特征作为训练数据集,训练softmax分类器,然后从3200张64*64的RGB图片(它是th

[原]基础学习视频解码之同步视频

在前面几章,我们了解了视频解码的原理,了解了音频解码的原理,也将视频和音频分别放在了相应的解码线程中去了.所以这整个过程中,我们有一个基本无用的电影播放器.它可以播放视频,它也可以播放音频,但是这个并不完整,因为音频和视频并不同步,我们接下来要做的就是将音频和视频同步起来. 音频流有一个采样率,并且视频流具有每秒值的帧.但是,如果我们只是靠只是计算帧和帧速率乘以同步视频,有的情况下,它会声画不同步的. 当我们从av_read_frame()的数据包,它包含了这个包里面的信息的PTS和DTS值.但