如何在Wowza Media Server媒体服务器上,用视频文件轮流播放,如同直播节目
Wowza Media Server是一套很長是一套很常用的媒體伺服器,尤其支持許多行動裝置,像是手機(iPhone或是Android的手機)、平板電腦(無論iPAD還是Android PAD)、甚至各種電腦、機上盒。。。等等應用,非常普遍。
這裡介紹一下怎樣設定這套系統,讓放置在這套系統的視訊檔案(Video File),利用時間排程,進行連續播放,就好像電視台在播放影片、廣告、影片、其他內容等等,方便又好用的功能:
首先,Wowza支持的檔案格式,可以參考這個連結。
FLV (Flash Video – .flv)
MP4 (QuickTime container – .mp4, .f4v, .mov, .m4v, .mp4a, .3gp, and .3g2)
MP3 (.mp3)
所以,其他格式必須事先進行轉碼才可以使用。
Wowza輸出格式以及相關規格,可以參考此連結。詳細的PDF資料在這裡。
基本上要實現這樣的功能,有兩種方法,一種是下面介紹的
“如何使用串流類別的串流來做伺服器端的發佈應用?”,原文在此。是一個簡單的例子來說明串流類別(Stream Class)的基本使用。程式碼如下:
package com.wowza.wms.example.serverlistener; import com.wowza.wms.logging.WMSLoggerFactory; import com.wowza.wms.server.*; import com.wowza.wms.vhost.*; import com.wowza.wms.stream.publish.*; import com.wowza.wms.application.*; public class StreamPublisherDemo implements IServerNotify { public void onServerInit(IServer server) { IVHost vhost = VHostSingleton.getInstance(VHost.VHOST_DEFAULT); IApplication app = vhost.getApplication("live"); IApplicationInstance appInstance = app.getAppInstance("_definst_"); Stream stream1 = Stream.createInstance(vhost, "live", "Stream1"); stream1.play("mp4:sample.mp4", 5, 5, true); stream1.play("mp4:sample.mp4", 50, 5, false); stream1.play("mp4:sample.mp4", 150, 5, false); stream1.addListener(new StreamListener(appInstance)); Stream stream2 = Stream.createInstance(vhost, "live", "Stream2"); stream2.play("mp4:sample.mp4", 0, -1, true); stream2.addListener(new StreamListener(appInstance)); } public void onServerCreate(IServer server) { } public void onServerShutdownComplete(IServer server) { } public void onServerShutdownStart(IServer server) { } class StreamListener implements IStreamActionNotify { StreamListener(IApplicationInstance appInstance) { } public void onPlaylistItemStop(Stream stream, PlaylistItem item) { WMSLoggerFactory.getLogger(null).info("Item Stopped: " + item.getName() + "on Stream: " + stream.getName()); } public void onPlaylistItemStart(Stream stream, PlaylistItem item) { WMSLoggerFactory.getLogger(null).info("Item Started: " + item.getName() + "on Stream: " + stream.getName()); } } }
把Server listener加到/conf/Server.xml /ServerListeners,如下面的程式碼:
<ServerListener> <BaseClass>com.wowza.wms.example.serverlistener.StreamPublisherDemo</BaseClass> </ServerListener>
接著呢,建立ㄧ個Wowza app名稱為“live”,將Application.xml裡面的/StreamType設定為”live”。這樣基本上就設定好了,但是怎麼播放呢?
可以打開 [install-dir]/examples/LiveVideoStreaming/FlashRTMPPlayer/player.html (Wowza Media Server 3.5 或以後的版本)
或者
[install-dir]/examples/LiveVideoStreaming/client/live.html (Wowza Media Server 3.5以前的版本)
內容位置在于:
Server: rtmp://[wowza-ip-address]/live
Stream: Stream1 (or Stream2)
另外ㄧ個方法,下次再寫。
Latest Comments