2016-03-24 11 views
0

はWowzaこのバージョンのプレイリストをスケジュールすることは可能ですか?Wowza Media Serverの2.2.3スケジュール

私は記事https://www.wowza.com/forums/content.php?145-How-to-schedule-streaming-with-Wowza-Streaming-Engine-(ServerListenerStreamPublisher)は、モジュールコレクションをアップロードしようとしたが、成功せず、ログにプレイリストに関するすべてのデータを記録しておりません。

/conf/live/Application.xml 
<Module> 
<Name>streamPublisher</Name> 
<Description>Playlists</Description> 
<Class>com.wowza.wms.plugin.collection.module.ModuleStreamPublisher</Class> 
</Module> 

<Property> 
<Name>streamPublisherSmilFile</Name> 
<Value>playlists.smil</Value> 
<Type>String</Type> 
</Property> 

答えて

0

私はWowzaバージョン2.2.3インスタンス上でこのモジュールをテストして、次のことを示すアクセスログと、それは、私のためにうまく働いた:

ServerListenerStreamPublisher Scheduled: Stream1 for: 2015-04-07 
ServerListenerStreamPublisher stream is **NOT** set to not repeat, setUnpublishOnEnd: true Stream1 
ServerListenerStreamPublisher scheduled playlist: Stream1 on stream: Stream1 for:Tue Apr 07 
ServerListenerStreamPublisher Scheduled stream is now live: Stream1 
ModuleStreamPublisher.onAppStart: [live/_definst_]: DONE! 
Stream.switch[live/_definst_/Stream1]: index: 0 name:mp4:sample.mp4 start:5 length:5 

このモジュールは、サーバー上で行うことができますレベルまたはアプリケーションレベル。違いは、出力ストリームを開始しているアプリケーションレベルで手動でスケジュールを含むSMILファイルを接続する必要があるだろうが、どこのサーバー・レベルで実装するには、自動的に、スケジュールされたプレイリストを接続しています。アプリケーションレベルで接続するには

  1. は、あなたがあなたの Wowzaのインストール中に、あなたの/ libフォルダにモジュール(jarファイル)をコピーしていることを確認します。
  2. (すでに追加したように見えます)ライブアプリケーション構成ファイルのモジュールリストに完全修飾クラス名を追加します。
  3. streamPublisherSmilFileプロパティに加えて、追加のデバッグログを表示できるようにブール値のstreamPublisherSwitchLogプロパティ(trueに設定)を追加することもできます。
  4. はplaylists.smilがあなたのコンテンツ/ディレクトリに存在し、適切なアクセス権を持っていることを確認します。例えば、SMILファイル:ストリームマネージャ(http://wowzaIP:8086/streammanager)を通して、あなたのライブのアプリケーションに

    <smil> 
        <head></head> 
        <body> 
         <stream name="Stream1"></stream> 
         <playlist name="pl1" playOnStream="Stream1" repeat="true" scheduled="2015-04-07 16:00:00"> 
          <video src="mp4:sample.mp4" start="5" length="5"/> 
          <video src="mp4:elephantsdream_750.mp4" start="50" length="25"/> 
          <video src="mp4:sample.mp4" start="0" length="150"/> 
         </playlist> 
        </body> 
    </smil> 
    
  5. 接続playlists.smil。上記の例のアプリケーション 'live'を使用している場合の再生ストリーム名は、rtmp://wowzaIP:1935/live/Stream1になります。

このモジュールの基礎はStreamクラスであるので、あなたはまた、独自のモジュールを構築することを選ぶことができます。ここでは、上記と非常に似ているシンプルなものがあります(サーバーリスナーとして追加されているため、サーバーの再起動時に自動的に起動する点が異なります)。モジュールをビルドしたら、conf/Server.xmlにServerListenersコンテナに追加します。私もこのモジュールをバージョン2.2.3でテストしました。それは私のために働いていました。

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 IServerNotify2 { 

    public void onServerConfigLoaded(IServer server) 
    { 
    } 

    public void onServerCreate(IServer server) 
    { 
    } 

    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 onServerShutdownStart(IServer server) 
    { 
    } 

    public void onServerShutdownComplete(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()); 
     } 
    } 
} 
関連する問題