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播放器
裝完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。
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文件修改。完成之后重啟就行了。
幾個常用的修改選項:
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: false19 }20 });21 </script>
第一行是一個占位,規定了播放器的尺寸等信息,還可以放一個背景圖,萬一網頁出現問題,不至于太悲觀。
第15行是你的視頻地址,結尾處的參數是用來在HttpModule里面寫代碼控制權限用的,如果不需要可以不寫。
至于其他的參數意思以及更多API可以去看文檔
還有一個RTMP的播放和這個差不多,請自己看文檔
附上我的HTML代碼附件
剛才說了防盜鏈可以使用域控制,但是系統內的權限控制就需要自己寫相關代碼了。
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 else57 {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一下,有誤之處 歡迎指正。
新聞熱點
疑難解答