# Module Collection

**URL:** <https://community.wowza.com/t/module-collection/237>\
**Category:** Wowza Developer Dojo\
**Tags:** wowza-streaming-server-java-api\
**Created:** [October 29, 2009, 8:09pm UTC](https://community.wowza.com/t/module-collection/237 "2009-10-29T20:09:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/community.wowza.com/system/32/447_2.png) [@system](https://community.wowza.com/u/system)\
**Post date:** [October 29, 2009, 8:09pm UTC](https://community.wowza.com/t/module-collection/237/1 "2009-10-29T20:09:25Z")

</div>

[https://www.wowza.com/docs/utility-modules-for-wowza-streaming-engine-media-server-software](https://www.wowza.com/docs/utility-modules-for-wowza-streaming-engine-media-server-software)

---

<div class="post-metadata">

**Author:** ![Wayne\_Coleman](https://avatars.discourse-cdn.com/v4/letter/w/b2d939/32.png) [@Wayne\_Coleman](https://community.wowza.com/u/Wayne_Coleman)\
**Post date:** [September 26, 2010, 8:11pm UTC](https://community.wowza.com/t/module-collection/237/2 "2010-09-26T20:11:51Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Frank\_Neznamy](https://avatars.discourse-cdn.com/v4/letter/f/b5e925/32.png) [@Frank\_Neznamy](https://community.wowza.com/u/Frank_Neznamy)\
**Post date:** [December 21, 2009, 10:34pm UTC](https://community.wowza.com/t/module-collection/237/3 "2009-12-21T22:34:42Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [December 21, 2009, 10:50pm UTC](https://community.wowza.com/t/module-collection/237/4 "2009-12-21T22:50:41Z")

</div>

Thanks!

It’s updated.

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [January 15, 2010, 9:13pm UTC](https://community.wowza.com/t/module-collection/237/5 "2010-01-15T21:13:42Z")

</div>

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

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

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [January 29, 2010, 1:03pm UTC](https://community.wowza.com/t/module-collection/237/6 "2010-01-29T13:03:38Z")

</div>

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

[https://www.wowza.com/docs/how-to-schedule-streaming-with-wowza-streaming-engine-streampublisher](https://www.wowza.com/docs/how-to-schedule-streaming-with-wowza-streaming-engine-streampublisher)

The Wowza IDE:

[http://wowza.com/ide.html](http://wowza.com/ide.html)

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

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [February 12, 2010, 1:46am UTC](https://community.wowza.com/t/module-collection/237/7 "2010-02-12T01:46:46Z")

</div>

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

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [February 12, 2010, 12:36pm UTC](https://community.wowza.com/t/module-collection/237/8 "2010-02-12T12:36:53Z")

</div>

Trini,

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.

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [February 12, 2010, 12:39pm UTC](https://community.wowza.com/t/module-collection/237/9 "2010-02-12T12:39:20Z")

</div>

Videoeditor,

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

```auto
vsftpd start

```

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [February 15, 2010, 8:41pm UTC](https://community.wowza.com/t/module-collection/237/10 "2010-02-15T20:41:11Z")

</div>

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

```auto
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 java.io.File;
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]";
			}
			else
			{
				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) {
		getLogger().info("getFiles");
		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

```auto
netconnection.call("getVideoNames",new Responder(videoNamesHandler));

[Bindable]
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;
	recordedStreamsDP.addItemAt(obj,0);    
}
}

```

This should work in Flash AS3 or AS2:

```auto
var result:Object = new Object();
result.onResult = function(results:Object)
{
  for( var item:String in results ) 
{
	trace(results[item]);
	trace(item);
}  
}
netconnection.call("getVideoNames", result);

```

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [March 2, 2010, 12:28pm UTC](https://community.wowza.com/t/module-collection/237/11 "2010-03-02T12:28:37Z")

</div>

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

```auto
<Module>
<Name>streamcontroller</Name>
<Description>ModuleStreamControl</Description>
<Class>com.wowza.wms.plugin.collection.module.ModuleStreamControl</Class>
</Module>

```

Updating readme…

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [March 10, 2010, 12:13pm UTC](https://community.wowza.com/t/module-collection/237/12 "2010-03-10T12:13:14Z")

</div>

You have to add this property also for the encoder:

```auto
<Property>
 <Name>AllowEncoder</Name>
 <Value>Wirecast</Value> <!--FM, Wirecast-->
</Property>

```

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [March 11, 2010, 6:47pm UTC](https://community.wowza.com/t/module-collection/237/13 "2010-03-11T18:47:11Z")

</div>

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.

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [March 12, 2010, 4:05pm UTC](https://community.wowza.com/t/module-collection/237/14 "2010-03-12T16:05:45Z")

</div>

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.

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [March 14, 2010, 10:48pm UTC](https://community.wowza.com/t/module-collection/237/15 "2010-03-14T22:48:20Z")

</div>

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.

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [March 22, 2010, 12:08pm UTC](https://community.wowza.com/t/module-collection/237/16 "2010-03-22T12:08:41Z")

</div>

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.

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [May 13, 2010, 11:35pm UTC](https://community.wowza.com/t/module-collection/237/17 "2010-05-13T23:35:42Z")

</div>

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:

[http://community.wowza.com/c/-/10](http://community.wowza.com/c/-/10)

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [June 3, 2010, 11:22am UTC](https://community.wowza.com/t/module-collection/237/18 "2010-06-03T11:22:14Z")

</div>

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

[http://java.sun.com/javase/downloads/index.jsp](http://java.sun.com/javase/downloads/index.jsp)

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [June 3, 2010, 10:23pm UTC](https://community.wowza.com/t/module-collection/237/19 "2010-06-03T22:23:12Z")

</div>

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

[http://www.java.com/en/download/faq/java\_mac.xml](http://www.java.com/en/download/faq/java_mac.xml)

(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.)

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [June 4, 2010, 12:44pm UTC](https://community.wowza.com/t/module-collection/237/20 "2010-06-04T12:44:41Z")

</div>

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

Richard

[Next page](https://community.wowza.com/t/module-collection/237.md?page=2)
