• Wowza® Media Systems 使用配置手册。


    准备

    1,先安装Java:http://www.java.com/zh_CN/

    2,官网下载安装:http://www.wowza.com/pricing/installer ,需要输入用户名邮箱等信息获得一个试用版激活码

    3,下载Eclipse:https://www.eclipse.org/downloads/  ,可选,如果你不需要服务端编码进行权限控制等操作可以不要

    4,网页播放器,flowplayer:http://flash.flowplayer.org/download/ ,支持流媒体的flash播放器

    安装(Windows下)

      装完Java之后,直接安装第二步下载的文件,中间会要你输入序列号,到下载的时候你填的邮箱里面找就可以了(如果你能自己激活,请联系我);还要输入用户名和密码,是安装完成之后的进入管理控制台的账号,要记着。

      安装完成之后应该会自动打开管理控制台(web版,类似于路由器的管理员界面),地址一般是 http://localhost:8088

    启动和停止

      安装目录:/Wowza Streaming Engine 4.0.1/bin/下,shutdown.bat是关闭服务,startup.bat是启动服务,需要注意,启动服务之后需要检查服务【WowzaStreamingEngine401】是否启动了,如果没有要手动启动该服务。

      启动之后就可以进入管理控制台:http://localhost:8088 预览默认的application,有两个 一个是live,另一个是vod,可以看到相关的播放代码,这里就不贴图了。

    播放端口

      一般刚刚装好时播放端口是1935好像,可以去【安装目录/Wowza Streaming Engine 4.0.1/conf/VHost.html 】里面改 <Port>节点,改完重启就可以了。

    新建Application

      这里Application类似一个网站,一个配置文件对应一个Application。

      1,通过控制台新建Application

        进入http://localhost:8088 切换到Application标签,点击新建,输入名字就可以快速创建一个Application。创建完成后进入编辑页面,相关选项就不细解释了,就是直播、点播、视频格式等选项,最重要的  是Content Directory 项,这里表示你要把这个Application的相关视频文件放到哪个目录下,之后你的相关的视频文件都要放进去。

      2,通过资源管理器新建Application

        进入【安装目录/Wowza Streaming Engine 4.0.1/conf/】新建一个文件夹,最好是个英文名吧,中文的我没试过,不确定,然后拷贝con/vod下面的Application.xml文件进来就可以了。

        要改相关配置的话可以打开Application.xml文件修改。完成之后重启就行了。

      

    Application.xml

      几个常用的修改选项:

      AllowDomains 节点:域控制。

      StorageDir节点:就是控制台里面的Content Directory,用来存放相关视频文件的目录。

      Modules节点:用来为当前Application增加服务端HttpModule处理类(java)。

    网页播放

      服务端做好之后就可以在自己的网站里面使用播放器播放了,这里我们暂且使用flowplayer提供的播放器插件。

      播放磁盘文件:http://flash.flowplayer.org/plugins/streaming/httpstreaming.html

      通过查看http://localhost:8088的 TestPlayers 可以看到各种不同的播放路径,这里我们使用Adobe HDS,上一行的链接里面有详细的说明,这里只展示一下核心代码:

     1 <a id="httpstreaming" style="display: block;  660px; height: 350px;"></a>
     2     <script type="text/javascript">
     3         flowplayer("httpstreaming", "/flowplayer-3.2.18.swf", {
     4             plugins: {
     5                 f4m: {
     6                     url: "/flowplayer.f4m-3.2.10.swf",
     7                     dvrBufferTime: 12,
     8                     liveBufferTime: 12
     9                 },
    10                 httpstreaming: {
    11                     url: "/flowplayer.httpstreaming-3.2.11.swf"
    12                 }
    13             },
    14             clip: {
    15                 url: "http://videoplayer.jackz.cc:8999/vod/mp4:jack_trainer.mp4/manifest.f4m?jack&zhang",
    16                 urlResolvers: ['f4m'],
    17                 provider: 'httpstreaming',
    18                 autoPlay: false
    19             }
    20         });
    21     </script>

      第一行是一个占位,规定了播放器的尺寸等信息,还可以放一个背景图,万一网页出现问题,不至于太悲观。

      第15行是你的视频地址,结尾处的参数是用来在HttpModule里面写代码控制权限用的,如果不需要可以不写。

      至于其他的参数意思以及更多API可以去看文档

      还有一个RTMP的播放和这个差不多,请自己看文档

      附上我的HTML代码附件

    HttpModule(服务端代码)

      刚才说了防盗链可以使用域控制 ,但是系统内的权限控制就需要自己写相关代码了。

      1,打开安装目录:/Wowza Streaming Engine 4.0.1/lib 这里都是他的默认的一些包,稍后我们写的也要放到这里。

      2,打开Eclipse,新建Java项目(com.company.project.video),引用刚才那个目录下的三个外部包:wms-server.jar, wms-core.jar, log4j-1.2.17.jar

      3,新建类,比如叫Authorize.java

      4,继承ModuleBase

      5,实现相关方法,例如我这里使用的是httpstreaming播放的,就实现onHTTPSessionCreate方法,那么每次对服务器的请求都会进入这个类过滤。

      代码如下:

     1 package facn.sunnet.lmt;
     2 
     3 import com.wowza.wms.amf.AMFDataList;
     4 import com.wowza.wms.application.IApplicationInstance;
     5 import com.wowza.wms.client.IClient;
     6 import com.wowza.wms.httpstreamer.model.IHTTPStreamerSession;
     7 import com.wowza.wms.module.ModuleBase;
     8 import com.wowza.wms.request.RequestFunction;
     9 
    10 
    11 public class Authorize extends ModuleBase {
    12     public void onAppStart(IApplicationInstance appInstance)
    13     {
    14         getLogger().info("zzjj 8 onAppStart: ");
    15         String fullname = appInstance.getApplication().getName() + "/"
    16                 + appInstance.getName();
    17         
    18         getLogger().info("zzjj 8 onAppStart: " + fullname);
    19         
    20         
    21     }
    22 
    23     public void onConnect(IClient client, RequestFunction function, AMFDataList params) 
    24     {
    25         getLogger().info("zzjj 8 onConnect");
    26     }
    27     
    28     static public void onConnectAccept(IClient client) 
    29     {
    30         getLogger().info("zzjj 8 onConnectAccept: ");
    31     }
    32 
    33     static public void onConnectReject(IClient client) 
    34     {
    35         getLogger().info("zzjj 8 onConnectReject: " );
    36     }
    37 
    38     static public void onDisconnect(IClient client) 
    39     {
    40         getLogger().info("zzjj 8 onDisconnect: " );
    41     }
    42     
    43     public void onHTTPSessionCreate(IHTTPStreamerSession httpSession)
    44     {
    45         boolean isGood = true;
    46         String queryStr = httpSession.getQueryStr() + "";
    47         String[] auths = queryStr.split("&");
    48         String streamName = httpSession.getStreamName();
    49         getLogger().info("zzjj 8 " + queryStr);
    50         getLogger().info("zzjj 8 ModuleAccessControlHTTPStreaming.onHTTPSessionCreate["+streamName+"]: checking");
    51         if(auths != null && auths.length == 2)
    52         {
    53             if(streamName.indexOf(auths[0])!=0)
    54                 isGood = false;
    55         }
    56         else
    57         {
    58             isGood = false;
    59         }
    60         
    61         getLogger().info("zzjj 8 ModuleAccessControlHTTPStreaming.onHTTPSessionCreate["+streamName+"]: accept:"+isGood);
    62         
    63         if (!isGood)
    64             httpSession.rejectSession();
    65     }
    66     
    67 }

      第43行开始是核心代码,这里实现的逻辑是:只能观看以传入的用户名开始的文件;否则不允许。

      6,导出JAR包,比如我这里导出的就是com.company.project.video.jar

      7,拷贝JAR包到 安装目录:/Wowza Streaming Engine 4.0.1/lib 下

      8,打开要应用权限控制的Application的Application.xml文件,跳转到Modules节点,增加一个子节点:

    1 <Module>
    2     <Name>Authorize</Name>
    3     <Description>Check if user has authority to access current file.</Description>
    4     <Class>com.company.project.video.Authorize</Class>
    5 </Module> 

      这样,每个网络请求都会进入你的Module进行过滤。

      相关的日志会输出到【安装目录:/Wowza Streaming Engine 4.0.1/logs】下面,可以查看你的调试信息。

    其他补充

      Wowza 中文论坛:http://www.wowza.cn/ 里面也有相关教程以及说明。

      本人也是昨天才刚刚接触这个东西,搞了半天终于知道怎么回事了,Mark一下,有误之处 欢迎指正。

     

  • 相关阅读:
    HTTPS证书申请相关笔记
    180508
    如何通过 AAR 形式集成 leakcanary-android 服务
    Mysql命令大全
    Python3.x和Python2.x的区别 (转)
    Python学习笔记(二)
    for循环处理列表的显示
    Python学习笔记
    python环境搭建
    Linux下JDK环境的配置
  • 原文地址:https://www.cnblogs.com/mrzzcn/p/wowza.html
Copyright © 2020-2023  润新知