zoukankan      html  css  js  c++  java
  • 简单几步打造网络视频直播平台(转)

    简单几步打造网络视频直播平台

    分类:学以致用
    2013-02-04 13:20 阅读(1132)评论(0)

    不管是个人玩还是企业用,直播电台总是显得比较高端和神秘,今天我们来看看怎么用简单几步实现基于Flash流媒体服务器的网络视频直接直播平台。

    1、服务端准备

    常见的免费Flash流媒体服务器有国产的UMS和国际开源的Red5UMS只有windows平台安装包,而用java开发的Red5更秉承了开源软件一贯兼容特色,可以多平台运行。

    UMS相对简单,全经典windows程序安装步骤,安装过程中无需配置,安装后自动注册为系统服务,基础应用无需配置,高级设置是中文GUI界面,适合新手使用。

    Red5windows系统提供绿色版和安装版两种,由于其使用java开发,都必须安装java运行环境包(JRE)。需要注意的是,目前最新1.01red5默认使用java7编译,需要安装JRE7;若下载的是setup-Red5-1.0.1-java6.exe类似版本,则需要安装JRE6。自0.9.1起安装版会注册系统服务,其基础应用也无需配置,但高级应用需修改配置文档,对使用者要求相对较高。Red5安装过程中会提示让输入绑定的IP和提供HTTP服务的端口号,若保持默认直接回车即可,并非必须输入。经测试,在相同终端采样设置情况下,Red5画面比UMS更流畅清晰,推荐使用。

    Red5UMS安装并运行后,系统默认开启用RTMP协议使用1935端口传递视频流,并默认都提供live服务点,其访问地址为rtmp://<你的服务器IP>/live

    2、发布端准备

    发布端即是我们发布现场视频、音频的平台,它不需要在服务器上运行,只要可以连接到服务器即可。常见的发布端有两种:Red5默认安装所提供的运行于web的使用Flashpublisher,其默认访问地址为http://<你的服务器IP>:5080/demos/publisher.html;另外是以传统软件形式运行的Adobe Flash Media Live Encoder,需要下载安装。相对来说,前者基于web运行较为方便,为后者则稳定性较好。

    前者配置主要步骤:(1)修改左下方Server选项卡中Location为服务端访问地址,如上文所述的rtmp://<你的服务器IP>/live,并根据需要设置编码、缓冲等,而后点击Connect,若右下角出现Connected to server表示连接服务端成功;(2)分别切换到VideoAudio设置视频、音频输入设备等参数,并分别点击选项卡界面中的Start按钮,Start按钮文字会变为Apply,意思是可继续更改参数并点击此按钮以使新设置起效,设置成功后左上方Publish选项卡界面中会出现摄像头所拍摄的画面;(3)修改Publish选项卡下方的Name为该视频流的名称,如mylivechat,选择其Type下拉框为live,那么该视频流的访问地址就是rtmp://<你的服务器IP>/live/mylivechat,最后点击Publish按钮,视频直播发布成功。

    Adobe Flash Media Live Encoder的设置与Red5publisher大同小异,只是名称有所变化,不再赘述。

    这两个发布端分别还提供了其它一些实用功能,如在线录制、视频调整、音量控制等,有兴趣不妨自行琢磨琢磨。

    3、观看直播准备

    不论基于web还是通常形态的软件,凡是支持RTMP协议的播放器都可连接到前文所述已成功发布的视频流上观看直播。基于web播放的Flash播放器主要有JW PlayerCMP4CKPlayerFlowPlayerUMS自带的live.swf等,其中延迟最小的是Html5版本的FlowPlayer,可惜IE6/7不支持HTML5CMP4兼容性较好,支持中文路径。若视频服务器地址为26.137.32.254、访问点为live、视频流为livestream',则下面给出几个常用web播放器的调用代码,以供参考。

    CKPlayer的播放代码:

    <div id="player"></div>

    <script type="text/javascript" src="ckplayer/ckplayer.js" charset="utf-8"></script>

    <script type="text/javascript">

    var flashvars={

    f:'rtmp://26.137.32.254/live/livestream',//视频地址

    i:'http://26.137.32.254/v4/statics/images/fantan_bg.jpg',//初始图片地址

    d:'http://26.137.32.254/v4/statics/images/fantan_bg.jpg',//暂停时播放的广告,swf/图片

    v:'80',//默认音量,0-100之间

    p:'0',//视频默认0是暂停,1是播放

    b:'0x000',//播放器的背景色,如果不设置的话将默认透明

    };

    var params={bgcolor:'#000000',allowFullScreen:true,allowScriptAccess:'always',wmode:'opaque'};

    var attributes={id:'ckplayer_player',name:'ckplayer_player'};

    swfobject.embedSWF('ckplayer/ckplayer.swf', 'player', '296', '250', '10.0.0','ckplayer/expressInstall.swf', flashvars, params, attributes); 

    </script>

    CMP4的播放代码:

    <div id="player" style="300px;height:225px;"></div>

    <script type="text/javascript" src="cmp/cmp.js"></script> 

    <script type="text/javascript">

    var flashvars = {

    name : "CMP4",

    bg_video : "images/fantan_bg.jpg",

    video_image : "images/fantan_bg.jpg",

    //src : "ftp://26.137.32.253/web/movie/1电影/一九四二.flv", //播放普通视频

    rtmp : "rtmp://26.137.32.254/live",

    src : "livestream",

    buffer_time : "0.1",

    skin : "tvlive.zip"

    };

    var htm = CMP.create("cmp", "100%", "100%", "cmp/cmp.swf", flashvars);

    document.getElementById("player").innerHTML = htm;

    </script>

    UMS自带播放器的播放代码:

    <script type="text/javascript" src="player.js"></script> 

    <script type="text/javascript">

    var so = new SWFObject('live.swf','ply','400','350','9','#000000');

    so.addParam('allowfullscreen','true');

    so.addParam('allowscriptaccess','always');

    so.addParam('wmode','opaque');

    so.addVariable('file','livestream');

    so.addVariable('streamer','rtmp://26.137.32.254:1935/live');

    so.write('mediaspace');

    </script>

  • 相关阅读:
    MySQL 通过多个示例学习索引
    git reset的用法
    git rebase的用法
    学习yii2.0——依赖注入
    学习yii2.0——行为
    学习yii2.0——事件
    学习yii2.0——数据验证
    让Apache和Nginx支持php-fpm模块
    安装python3
    使用php操作memcache
  • 原文地址:https://www.cnblogs.com/yasepix/p/4870680.html
Copyright © 2011-2022 走看看