• red5 视频应用开发指南。第一个项目成功运行经验(1)


      1,一直想做视频,可惜资料不是很多。本来想买北风网的视频,太贵了,网上买了一本书自己看

    第一个项目是连接red5服务器

    第一个项目做了两天,终于成功了。

    2,按照书本的要求一步一步的来发现后面总是出现,NetConnection.Connect.Rejected 拒绝连接

        过程如下 来自:http://412887952-qq-com.iteye.com/blog/1620334

    作者信息:

    QQ: 1473773560

    Email: linxingliang198811@163.com

    说明:有问题可以留言,发邮件!

    版本说明:

           Flex 4 (Flash Build)

           Red5 1.0 

    ------------------------------------------------------—————————————————————————————

    3  Red5 第一个例子之HelloWorld

    3.1 HelloWorld 开发前指导

       不管在学习什么新技术,都离不开HelloWorld ,简单而经典。本技术也不例外,从HelloWorld 步步深入进行研究。在开发之前,先讲讲HelloWorld 的开发流程,主要包括服务端和客服端。Red5 程序主要是在服务端发布一个服务,供其他客户端进行访问,具体的步骤如下:

     Ø  用Eclipse 编写客户端

     Ø  将编写的程序部署发布

     Ø  用Flex 编写客服端

    接下来我们就按照这三大步进行开发。

    3.2 用Eclipse 编写客户端

       Red5 服务端的开发类似于开发一个web project ,所以我们的工程基本上的架构跟web project 一样,需要如下几个文件WEB-IN,classes,web.xml ,lib… 具体的步骤如下:

    ²   用Eclipse 新建一个Java Project

    新建一个Java Project ,取名为Hello_Red5 ,具体的步骤不多说,我想大家这一步都不应该有问题,待会会把整个文件结构放上。

    ²  新建目录文件

    刚才我们已经说了,我们实际开发的应该类似一个web project 才能够进行部署,当然一开始你也可以直接选择web project 。

      l  在根目录下新建WEB-INF 文件夹

           l 在WEB-INF 下新建classes 文件夹

           l  在WEB-INF 下新建lib 文件夹

     新建文件夹的步骤应该是这样的:

    【点击工程】——【右键】——【 New 】——【 Folder 】——【输入文件名称即可】

    现在的文件结构应该是这样的:

    ²  设置字节码存放位置

    我们知道用Eclipse 编写的java 代码默认情况下编译之后的 .class 字节码文件都是存放在bin 目录下,我们需要修改下,让它存放在WEB-INF 下的classes 文件下,具体步骤如下:

    【点击工程】——【右键】——【Build Path 】——【Configure Build Path 】——【在右边选择Source 菜单】——【在右下角就可以看到default outer folder, 点击Browse, 切换到

    WEB-INF/classes 】——【切换完成之后在输入框的值应该是: Hello_Red5/WEB-INF/classes】

      

    关键的操作演示如下:

    ²  编写配置文件

    虽说标题是些编写配置文件,但是其实大部分配置都已经有现成的模板了,只需要你稍微修改下就可以了。那么模板在哪里可以找到呢?其实就在Red5 的安装根目录的/doc/templates/myapp/WEB-INF 下的四个配置文件,

    分别是: log4j.properties ,red5-web.properties ,red5-web.xml ,web.xml 具体都是做什么用的,我们下节在进行讲解,这一节的主要目标是成功部署一个应用程序,细节的东西先不管。找到这几个配置文件之后复制到WEB-INF 目录下。

      

    现在的文件结构应该是这样的:

    ²  导入Red5.jar 文件

    Red5.jar 文件在Red5 安装根目录下。导入步骤:

    【点击工程】——【右键】——【Build Path 】——【Configure Build Path 】——【在右边选择Libraries 菜单】——【点击Add External Jars… 】

       关键步骤演示:

    注:有人导入jar 文件的时候,会选择这样的方式,就是先复制Red5.jar 文件,然后粘贴到lib 目录下,最后在Add Jars…, 这种方式也是可以的,应该来说这种方式还有更好,不

    会由于你改变了Red5 的安装路径就报错了。但是需要你注意的是:当你发布程序到Red5 服务器的时候,需要把lib 包下的Red5.jar 再删除掉,不删除的话是无法部署成功的,不

    然你可以试一试,要是成功的话,也麻烦你告诉我,或许我部署有问题了。那么你肯定会有这样的疑问,我们在开发的时候不是用到Red5.jar 文件里的类库了吗,现在删除了,

    那么它怎么还能运行呢?一开始我也是这么认为的。但是经过自己的各种尝试(谷哥和度娘好像没有查到相关的说明,要是有相关的文档说明的话,麻烦告诉我下。),发现当

    你将程序部署到Red5 进行发布的时候,它是读取了Red5 安装目录下的Red5.jar 的。

    ²  编写代码

    在src 目录下先新建一个包: cn.app, 在新建的包下新建一个类,取名为Application, 代码如下:

    Java代码  
    1. package cn.app;  
    2.    
    3. import org.red5.server.adapter.ApplicationAdapter;  
    4.    
    5. public class Application extends ApplicationAdapter{  
    6.      
    7.     /** 
    8.      * 提供访问的方法,可以写多个,让客服端进行调用. 
    9.      * @param name 
    10.      * @return 
    11.      */  
    12.     public String login(String name){  
    13.        return "Red5 say:Hello,"+name;  
    14.     }    
    15. }  
     

    此java 代码跟普通java 代码没有什么区别,主要是该类继承了

    • org.red5.server.adapter.ApplicationAdapter 类。

      

    现在的文件结构应该是这样的:

    ²  修改WEB-INF 下的配置文件

    我们说配置文件有模板,但是没有不用进行修改的模板吧,所以还是需要你手动的修改下配置文件,但是改动不大,不用担心。

    ²  red5-web.properties 文件

    将 webapp.contextPath=/myapp 修改为:

    webapp.contextPath=/Hello_Red5

    其中Hello_Red5 是你的工程名称。

    webapp.virtualHosts 配置的是虚拟主机地址,在此我们可以不进行修改。

    ²  red5-web.xml

    < bean id ="web.handler"

            class ="the.path.to.my.Application"

           singleton ="true" />

    修改为:

       < bean id ="web.handler"

            class ="cn.app.Application"

           singleton ="true" />

    注:修改的是你自己的class 。

       删除(或者注释掉):

    < bean id ="myhandler.service"

            class ="the.path.to.my.ServiceHandler"

           singleton ="true" />

      

    ²  web.xml

    < context-param >

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

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

        </ context-param >

    修改为:

       < context-param >

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

           < param-value > /Hello_Red5 </ param-value >

        </ context-param >

    注:param-value 指向你的工程名称。

       删除(或者注释):

        < 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 >

    < listener >  

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

    </ listener >

    注: ContextLoaderListener 代码是启动Sping 监听器的,按道理是不应该注释掉的,但是不注释掉的话,就会报错。我在网上查找了很多资料,甚至是英文网站都没有相关的说明,我是通过不断的尝试,才知道注释掉能够正常运行。我想应该是Red5 1.0 版本在conf 目录下就应该有启动Spring 监听器了(要是有人有知道的,请联系我)。另外两个主要是Log4j 日志的,要是不注释掉的话,需要加入Log4j.jar 文件。

       至此代码就开发完成了,那么就让我们小休息一会吧。

    温馨提示 :在开发的时候,我们发现每次编译完之后,都需要重新复制工程到Red5/webapps 进行部署,这样很是麻烦,一方面我们可以用ant 进行部署,但是实话说ant 我还真是不会,于是我就采用了偷懒的形式:把Eclipse 的workspace 直接设置到Red5/webapps 下,这样每次更新就是更新了webapps 的数据了。主要还有就是在项目上线的时候,可以把src 下的源码删除了。

    3.3 部署发布程序

       革命尚未成功,我们仍需努力,让我们一起来见证奇迹吧。

    ²  部署程序

    程序的部署还是很简单的,说的直白点就是复制粘贴的过程。将我们编写的Hello_Red5 复制到Red5 的安装目录下的webapps 目录下。

    ²  发布程序

    发布程序就更easy 了,就是启动服务器的过程。进入到Red5 的安装目录,启动Red5.bat 文件。需要的注意的是,有可能之前就启动Red5 服务器了,但是当你重新发布程序的时候,需要你重新再启动。

    ²  测试程序是否发布成功

    本地的话,见文件夹【测试工具】。在网页的见附件,下载附件里的【Red5 用rtmp 是否能够连接工具--Angel 提供】。打开Main.html

    3,书中提到的放在WEB-INF中的log4j.pro...文件,我没有找到,系统可以正常运行

    4,关键在于配置另外的三个文件,和库的引用,记住red5.jar直接引用安装目录下的red5.jar就行了,不用再复制出来,会发生错误

    5,red5-web.xml 中的 <bean id="web.handler" class="org.red5.server.adapter.ApplicationAdapter" />要改成

    <bean id="web.handler" class="com.red5Second.Application" />  com.red5Second.Application是你自己添加的类的包名字

    6测试时可以使用   自带的publisher.html

    并修改location 按下enter ,如果出现netconnection.connect.success则说明服务器搭建成功

    7,也可以使用 来自http://blog.csdn.net/u010724965/article/details/72569930

    red5+java打造直播平台系列 (搭建调测)

    前言:如今各式各样的直播平台,像雨后春笋般冒出来。本系列重零开始,基于RED5为服务器,通过JAVA编写后台实现直播平台一些列主流的功能。 如主播开播,用户观看,送礼物,弹幕等功能。

    本文内容:搭建red5服务器,通过obs客户端输入视频源。实现简单的视频直播框架。先基本了解工程架构大概数据的流向。

    特别要说明的:本文作者也是去探索,我也不知道具体各大直播平台使用的技术。主旨在学习。将自己的想法实现而已。

    大概简易流程图: 
    这里写图片描述

    说明:主播利用OBS采集视频源 将数据传入red5视频服务器。用户通过你的sever(这边是B/S架构,java编写)观看,互动(发送弹幕,送礼物)

    前期准备: 
    1.obs客户端(用于直播流采集发送的软件) 
    2.red5服务器 3.jdk1.8

    废话不多说,开始!

    安装:

    下载obs客户端 地址:https://obsproject.com/download(官方) 
    我使用的是汉化版http://www.pc6.com/softview/SoftView_125851.html 
    red5地址:https://github.com/Red5/red5-server

    OBS安装 直接双击安装即可 
    red5安装(window)

    打开上面的下载地址 找到如下图 
    这里写图片描述

    这里写图片描述

    下载下来双击即可 启动找到安装目录,此目录是不是很像tomcat,没错 red5就是基于tomcat容器启动的 直接双击red.bat启动 
    这里写图片描述

    这里写图片描述

    配置:

    打开obs,添加采集数据源。这边你也可以填加摄像头等。我这边添加的是窗口。 
    然后在来源右击

    这里写图片描述

    点击设定 
    设置播放路径/串流码(如果存在) cat (可以理解为一个流的名字) 
    这里写图片描述

    fms:rtmp://127.0.0.1/live (live为一个red5的工程,下载的版本中都会有)

    设置REd5 看是否能接受到 
    这里写图片描述

    点击play

    在OBS中点击串流,意思就是往red5中发送视频数据了,这个时候在live中的实例可以看到效果 那么整个流程就通了 。

    这里写图片描述

    也就是说OBS采集的数据 可以发送到red5的live实例。然后在red5中能够看到视屏流的效果展示。 
    接下来我们要做的就是写自己的APP server 替代red5自带的live实例。在我们的app添加一些发送礼物弹幕等功能也是直播的核心内容。后续章节就开始写我们自己的APP 也是最有趣的地方。

  • 相关阅读:
    springboot开发之配置Servlet三大组件(Servlet、Filter、Listener)
    springboot开发之配置嵌入式Servlet容器两种方式
    springboot开发之利用idea自带的插件模拟客户端请求
    springboot开发之配置自定义的错误界面和错误信息
    springboot开发之删除员工
    springboot开发之修改员工
    springboot开发之添加员工
    springboot开发之thymeleaf页面公共元素的抽取
    oracle 创建表、删除表、添加字段、删除字段、表备注、字段备注、修改表属性
    C#拼装JSON数组简易方法
  • 原文地址:https://www.cnblogs.com/kbqLibrary/p/7777136.html
Copyright © 2020-2023  润新知