开发 flex+red5+simplest_ffmpeg_streamer 流媒体直播视频的历程

                         本博客仅仅只是 记录  我搭建  flex+red5的简单过程。。。仅此以提供需求的过客以参考



  1. 经过查阅大量资料, 从一个从未接触过流媒体直播的菜鸟,经过3天的研究实践,初步行程了一个 以视频转换发送流到red5服务器,然后进行广播到各个flex开发的 swf客户端。


  准备工作: 1.到官网下载red5-server-1.0.5-RELEASE-server 的 服务器版本,此版本是经过编译的,我直接下载了。。没时间去研究其代码

                       2.搭建的流程 是参照http://www.cnblogs.com/jacktang/p/4741777.html  这个作者的流程:


以下是详细的过程内容 我进行引用:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Windows环境搭建Red5流媒体服务器指南

 

测试环境:Windows 7

 

一、   下载安装程序

  1. red5-server 下载地址

https://github.com/Red5/red5-server/releases

 

  1. JDK 下载地址

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

  1. red5示例(如oflaDemo)下载地址,要FQ

http://red5.googlecode.com/svn/java/example/trunk/

 

  1. flowplayer下载地址

https://codeload.github.com/flowplayer/flash/zip/release_3_2_18

http://releases.flowplayer.org/flowplayer.rtmp/flowplayer.rtmp-3.2.13.swf

 

二、   安装JDK

 

三、   设置Java环境变量

1)       在桌面用鼠标右键点击“计算机”,在弹出的菜单中选择“属性”选项,弹出“系统属性”窗口;

2)       在“系统属性”窗口,点击“高级”切换到高级系统设置Tab,然后点击

“环境变量”按钮,弹出“环境变量”窗口;

3)       在“环境变量”窗口,点击用户变量或者系统变更区域的“新建”按钮,弹出新建变量窗口,然后输入“变量名”:JAVA_HOME, “变量值”:C:\Program Files\Java\jdk1.8.0_51。

    注:“变量值”这一栏主要填写的是你安装JDK的路径,这里根据个人的情况可能会有所不同。

 

4)       上步结束之后,双击系统变量中的“Path”,在弹出的编辑系统变量窗口,

在“变量值”一栏的最前面添加如下的路径:

    %Java_Home%\bin;%Java_Home%\jre\bin;

    也可以用完全路径,如:C:\Program Files\Java\jdk1.8.0_51\\bin;

 

四、   安装red5

把下载的red5安装包解压(本指南下载的是Zip安装包),复制到要安装的目录,如F:\red5\Test\red5-server-1.0.5

 

五、   设置red5环境变量

根据设置Java环境变量的方法,添加red5_home和ClassPath

 

变量名:red5_home

变量值:F:\red5\Test\red5-server-1.0.5  (此处要根据你的安装目录调整)

 

变量名:ClassPath

变量值:.  (不配置此变量,或者此变更的值不是“.”,red5启动的过程会抛异常)

 

六、   启动red5

双击“red5.bat”文件,启动red5。

 

七、   测试red5是否部署成功

在浏览器中输入http://localhost:5080/,可成功打开,表示red5部署成功。

 

八、测试应用

将下载的oflaDemo.war文件解压后,放到red5部署目录中的webapps目录,如F:\red5\Test\red5-server-1.0.5\webapps。本指南测试时将目录名改成了oflaDemo2。

oflaDemo.war下载地址: http://pan.baidu.com/s/1hqAPl6O

 

重新启动red5服务器。

然后在浏览器中访问http://localhost:5080/oflaDemo2/,成功打开后,播放页面中的视频,如果顺利播放,表示应用部署成功。

 

注:如果在其它机器访问,将localhost改成服务器的IP即可。

 

九、   在其它机器用FlowPlayer测试red5服务器上的视频播放

将测试示例拷到要测试的机器,修改示例中的red5服务器地址和视频文件名称,在浏览器上打开测试示例中的flowplayer.html文件,看视频是否正常播放。

测试示例下载地址:http://pan.baidu.com/s/1dD8n8jf

 

参考文章:

win7下配置java 环境变量
http://www.cnblogs.com/zhj5chengfeng/archive/2013/01/01/2841253.html

搭建Windows Red5流媒体服务器详解
http://blog.csdn.net/keepingstudying/article/details/41980961

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2. 第一步 red5 服务器搭建成功后  进行第二步  创建flex客户端

  具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" 
  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()">
<fx:Script>
<![CDATA[
import flash.net.navigateToURL;

import mx.controls.Alert;
import mx.core.FlexGlobals;
import mx.utils.URLUtil;
private var nc:NetConnection;
private var ns:NetStream;
 
private function init():void{
/* playButton.enabled = false;
stopButton.enabled = true */
//之前有连接,先关闭
try{ 
if(nc.connected){ 
nc.close(); 

}catch(e:Error){} 
nc = new NetConnection();
nc.client  = this;
nc.objectEncoding=ObjectEncoding.AMF0;
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, netSecurityError);





nc.addEventListener(NetStatusEvent.NET_STATUS,connectHandler);
nc.connect("rtmp://10.188.180.163/live");
}

private function connectHandler(evt:NetStatusEvent):void{
if (evt.info.code == 'NetConnection.Connect.Success') {
ns = new NetStream(nc);

var clientobj:Object=new Object();
clientobj.onMetaData=function():void{};
ns.client=clientobj;
var video:Video=new Video() ;
video.width = videoDisplay.width;
video.height = videoDisplay.height;
video.attachNetStream(ns);
//这里的名称要和服务端发送的live后面的名称一致
ns.play("hello");
videoDisplay.addChild(video);

}
else
{
// nc.close();
// ns.close();
/* if(!nc.connected){ 
nc.connect("rtmp://10.188.180.163/live");
}  */

//init();
//Alert.show(evt.info.code );
if (evt.info.code == 'NetConnection.Connect.Closed') {
      Alert.show("直播节目中断 请刷新","提示"); 
  refreshWebPage();
}
}
}
/**
* 刷新网页。
*/
public function refreshWebPage():void
{
var url:String = FlexGlobals.topLevelApplication.url;
if (URLUtil.isHttpURL(url))
{
url = "http://" + URLUtil.getServerNameWithPort(url);
}
else if (URLUtil.isHttpsURL(url))
{
url = "https://" + URLUtil.getServerNameWithPort(url);
}
flash.net.navigateToURL(new URLRequest(url), "_self");
}



]]>
</fx:Script>
<fx:Declarations>
</fx:Declarations>
<s:VGroup width="100%" height="100%" horizontalAlign="center">
<s:BorderContainer backgroundColor="#ffffff"  width="696" height="493" horizontalCenter="0" borderWeight="2">
<s:VideoDisplay  width="100%" height="100%" id="videoDisplay"/>
</s:BorderContainer>
<s:Label text=" 视频直播" fontSize="20" color="#ff0000" fontWeight="bold" fontFamily="宋体"/>
</s:VGroup>



</s:Application>

-----------------------------------先记录到这 后续补充-------------


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值