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)
另外ㄧ個方法,下次再寫。
