如何在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)

另外ㄧ個方法,下次再寫。

發佈留言