• 基于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 &

     

     

     

  • 相关阅读:
    Django框架之虚拟环境搭建
    Ubantu16.04系统优化
    关于装双系统Ubantu16.04+Win10引导问题
    网络编程相关
    数据库常用语句
    javascript异步编程的六种方式
    关于 CSS 的一些小 tips
    typeof 返回的数据类型 及 javascript数据类型中的一些小知识点
    JavaScript || 和 && 的总结
    正则表达式
  • 原文地址:https://www.cnblogs.com/chinatefl/p/1403269.html
Copyright © 2020-2023  润新知