zoukankan      html  css  js  c++  java
  • 基于red5的在线视频录制实例和详细注释

    FLASH代码
     
    //预定义声明
    import mx.utils.Delegate;
    //创建一个基本的网络连接对象
    var nc:NetConnection = new NetConnection();
    //连接到本地的Red5服务器
    nc.connect("rtmp://localhost/online");
    //将已和red5服务器建立连接的nc传递给NetStream
    var ns:NetStream = new NetStream(nc);
    //从摄像头和麦克风取得信息
    var cam:Camera = Camera.get();
    var mic:Microphone = Microphone.get();
    //初始化摄像头和麦克风,调用函数
    setupCameraMic();
    //保存上次录制的内容,并进行清空
    var lastVideoName:String = "";
    //监听开始录制和停止录制两个按键的点击动作并进行相应的处理
    playButton.addEventListener("click", Delegate.create(this, playClick));
    stopButton.addEventListener("click", Delegate.create(this, stopClick));
    //定义开始录制的playclick函数
    function playClick():Void
    {
    //此flv文件是保存在 webapps/oflaDemo/streams/文件夹
    //将摄像头和麦克风赋给ns
    ns.attachVideo(cam);
    ns.attachAudio(mic);
    //将摄像头信息赋给视频显示窗口,这样我们可以即时看到信息
    videoContainer.attachVideo(cam);
    // 此处是定义存储名字的,用随机数目获得一个唯一的文件名
    lastVideoName = "red5RecordDemo_" + random(getTimer());
    ns.publish(lastVideoName, "record");
    //锁定开始按键使其失效
    playButton.enabled = false;
    //锁定停止按键使其生效
    stopButton.enabled = true;
    }
    function stopClick():Void
    {
    //关闭ns与red5的连接
    ns.close();
    //并清空视频显示窗口
    videoContainer.attachVideo(null);
    videoContainer.clear();
    //锁定开始按键使其生效
    playButton.enabled = true;
    //锁定停止按键使其失效
    stopButton.enabled = false;
    //播放已经录制的视频
    playLastVideo();
    }

    function playLastVideo():Void
    {
    // 传递录制的视频信息给视屏显示窗口
    videoContainer.attachVideo(ns);
    //回访已经上次录制的视频片段
    ns.play(lastVideoName);
    }
    function setupCameraMic():Void
    {
    //启动摄像头
    cam = Camera.get();
    //设置尺寸
    cam.setMode(320, 240, 30);
    //设置录制质量
    cam.setQuality(0,70);
    //启动麦克风
    mic = Microphone.get();
    mic.setRate(44);
    }
     
    RED5安装与下载

    1).Windows平台

    先安装JDK,如果未安装过JDK,建议安装最新的JDK1.6(JDK6.0)

    http://java.sun.com/javase/downloads/index.jsp页面,选择

    点击Download后,会到下载页面,如果未登录过sun.com的,会跳转到登录页面

    如果没有账号,可以注册一个帐号,登陆后,再到下载页面。

    点击Accept前面的单选框

     

    点击第一个安装包进行下载,下载完成后,双击进行安装

     

    用默认设置进行安装即可。安装完成后,到命令行检测是否安装成功

     

     

    下载Red5安装包http://dl.fancycode.com/red5/setup-red5-0.6rc2.exe,用默认安装即可,让Red5以服务方式运行。将online.zip解压到Red5安装目录下的webapps文件夹里,默认为C:\Program Files\Red5\webapps

    将该online目录以及该目录下面的子目录属性设置为所有人可读写。

    online.zip下载地址:http://www.supesite.com/tools/online.zip

    重启Red5服务 

     

    2).Linux/Unix平台

    先安装JDK,如果未安装过JDK,建议安装最新的JDK1.6(JDK6.0)

    http://java.sun.com/javase/downloads/index.jsp页面,选择

     

    点击Download后,会到下载页面,如果未登录过sun.com的,会跳转到登录页面

     

    如果没有账号,可以注册一个帐号,登陆后,再到下载页面。

     

    点击Accept前面的单选框

     

    根据自己服务器的操作系统,选择相应的安装包。如:Linux RPM包。

    对于使用FreeBSD操作系统的站长,

    请到http://www.freebsdfoundation.org/downloads/java.shtml下载最新的JDK1.5安装包。

    如果安装的是JDK1.5的服务器,请再下载apache-ant

     

    http://mirror.cc.columbia.edu/pub/software/apache/ant/binaries/apache-ant-1.7.0-bin.tar.gz

    apache-ant-1.7.0-bin.tar.gz放到/tmp目录下

    mv apache-ant-1.7.0-bin.tar.gz /tmp

    cd /usr/local

    tar -zxf /tmp/apache-ant-1.7.0-bin.tar.gz

    mv apache-ant-1.7.0 ant

     

     

     

     

     

     


    设置变量环境

    export PATH=$PATH:/usr/local/ant/bin

     

     


    如果是FreeBSD操作系统,建议利用ports安装ant

    下载Red5程序包http://dl.fancycode.com/red5/red5-0.6rc2.tar.gz

    red5-0.6rc2.tar.gz放到/tmp目录下

    mv red5-0.6rc2.tar.gz /tmp

    cd /usr/local

    tar -zxf /tmp/red5-0.6rc2.tar.gz

    mv red5-0.6rc2 red5

     

     

     

     

     


    如果安装的JDK版本为1.5,请重新编译red5

    cd /usr/local/red5

    vi build.properties

     

     

     

     


    找到java.target_version=1.6修改为java.target_version=1.5,然后进行重新编译

    cd /usr/local/red5

    ant

     

     

     

     


    online.zip解压到/usr/local/red5/webapps

    将该online目录以及该目录下面的子目录属性设置为777

    online.zip下载地址:http://www.supesite.com/tools/online.zip

    cd /usr/local/red5/webapps

    tar -zxf /tmp/online.tar.gz

     

     

     


    开启Red5服务

    /usr/local/red5/red5.sh &

     

     

     

  • 相关阅读:
    防止vue文件中的样式出现‘污染’情况(html5 scoped特性)
    Vue.js中滚动条加载更多数据
    本地上传文件至服务器的技巧(linux文件压缩及解压文件)
    ubuntu下apache新建虚拟主机
    laravel5.4+vue+element简单搭建(gulp+laravel Elixir)
    java基础---->Java的格式化输出
    markdown 基本语法(转载)
    谷歌断点调试
    mac 远程连接 云服务器
    棋盘覆盖问题
  • 原文地址:https://www.cnblogs.com/chinatefl/p/1403269.html
Copyright © 2011-2022 走看看