Wowza Community

Module Collection

I don’t see ModuleMonitorStream in this list. Am I missing it?

Guys, you have a typo there, ModuelCreateSnapshot class. Please fix.


It’s updated.


It’s just a typo in the name of the smil file.

Change “streamschedle.smil” to “streamschedule.smil”


Sounds like you are ready to use the Wowza IDE. You can compile the source which is posted here

The Wowza IDE:

Then you can change the name of the smil file and everything else.


You can use ftp. See the EC2 guide for accessing the instance with FTP.



Open that page again and do view > source. Then you will see this info in xml. Some browsers do not present this xml very well, so try different browsers.



The FTP server should be running, but check and make sure:

vsftpd start


I don’t think it will work with S3 or FSS3. It is Java. Here is the source:

package com.wowza.wms.plugin.collection.module;

import com.wowza.wms.amf.*;
import com.wowza.wms.application.IApplicationInstance;
import com.wowza.wms.client.*;
import com.wowza.wms.module.*;
import com.wowza.wms.request.*;
import com.wowza.util.FileUtils;
import com.wowza.util.IFileProcess;

public class ModuleVideoNameList extends ModuleBase {

	AMFDataMixedArray recordedMovies = new AMFDataMixedArray();
	String storageDir;
	class PutFile implements IFileProcess
		public void onFile(File file)
			String sizeSuffix="";
			String s = storageDir;
			if (file.length()<1024000)
				sizeSuffix = "["+ Math.round((file.length() * .001)) + " kb]";
				sizeSuffix = "["+ Math.round((file.length() * .000001)) + " MB]";
			String fileName = file.getName();
			String _abpath = file.getAbsolutePath().replace("\\", "/");
			String _parent = file.getParent().replace("\\", "/");
			String _path = file.getPath().replace("\\", "/");
			fileName = fileName.replace(storageDir, "");
			String fn = file.getName().toLowerCase();
			if (fn.indexOf(".m4v")>-1 || fn.indexOf(".mov")>-1 || fn.indexOf(".mp4")>-1 || fn.indexOf(".f4v")>-1)
				fileName="mp4:" + fileName;
			if (file.length() > 0 && fileName.indexOf(".")>-1)
				recordedMovies.put(fileName, new AMFDataItem(fileName.replace(".flv", "") + " " + sizeSuffix));
				getLogger().info("fileName: " + fileName);
	public void getVideoNames(IClient client, RequestFunction function,
			AMFDataList params) {
		storageDir = client.getAppInstance().getStreamStoragePath();
		recordedMovies = new AMFDataMixedArray();
		IApplicationInstance app = client.getAppInstance();
		PutFile putfile = new PutFile();
		FileUtils.traverseDirectory(new File(app.getStreamStoragePath().replace("_definst_", app.getName())), putfile);
		sendResult(client, params, recordedMovies);

To call this from Flash, here is an AS3 version. If you are using Flex, you an use the Bindable ArrayCollection with a ComboBox. In Flash CS you can change it to an Array"getVideoNames",new Responder(videoNamesHandler));

privat var recordedStreamsDP = new ArrayCollection();

private function videoNamesHandler(results:Object):void
for( var item:String in results ) 
	var obj:ObjectProxy = new ObjectProxy(); // In Flex use ObjectProxy to populate Bindable ArrayCollection.
	obj.label = results[item];
	obj.value = item;

This should work in Flash AS3 or AS2:

var result:Object = new Object();
result.onResult = function(results:Object)
  for( var item:String in results ) 
}"getVideoNames", result);


Right, add this Module to the end of your Application.xml Modules list:


Updating readme…


You have to add this property also for the encoder:

 <Value>Wirecast</Value> <!--FM, Wirecast-->


Shouldn’t be a conflict with MediaSecurity addon. Check the logf files, this module is reporting the value that the enocder is giving for Flashver. Look for a comment like:

Flashver: FM

But it wouldn’t be “FM”, something else. What it is, use that in the Property.


It would be in the access log. If this module is installed, it will write the Flashver to the log when the encoder starts publishing. So maybe it is the way you are using MediaSecurity package. I would remove the MediaSecurity module to debug.


This module won’t do it because it is just a snapshot, a point in time. As mentioned, you need to crunch the logs, and Sawmill has a Wowza module for that.


Removing the security package suggestion is to to step back so you can debug the first problem.

Now go back to the access logs and look for the comment that starts with "Flashver: " followed by something like “FMLE 3.5”, or something similar.

If you don’t see that, then the ModuleLimitConnectionsToApplication is not functioning. Double check the that the jar file is in the /lib folder. And post the whole Application.xml here.


Yes, all of these have source and they are all in this section along with many other Wowza Modules, HTTProviders and ServerListeners that you can use:


You will have install the latest JDK. You can download from here:


It should work with Mac. You can install the latest Mac JDK. See this page:

(I am supposed to downgrade the Java version on this collection build, but I’ve made a couple of attempts at adjusting my environment that broke everything for me and I had to dig my way out of it and haven’t got back to it yet, sorry.)


Did you copy the jar file from the package to the Wowza lib folder?