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; width: 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一下,有誤之處 歡迎指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM