Frequently Asked Questions

Are your modules ready for mission critical producion?

These modules are battle proven, used by many companies all over the world and a lot of these feature high profile video streams on large scales. We strongly recommend you to test our modules on your own infrastructure. This is because you are most probably building up a unique and complex system that includes web servers, databases, streaming servers, various video elements and our module is just one gear in the machine. If you need it, we will work with you closely to bring out the best possible results.

Wrench/Clamp/Scissor/Measure is almost perfect for my case, I just want one more feature. Can you help me?

Yes. All feature requests are welcome, and they are incorporated to the product in a generalized way, so that other people can make use of them as well. Feel free to write an email describing your use case and the feature you need. In some cases you need to pay for the new features to be implemented, in some cases you get it for free.

Wrench is not loaded at all. What's wrong?

First check your Java version. It is printed in the logs on startup. Wrench needs Java 8. If you are on Java 6 or 7, you'll see no errors logged, but Wrench won't load.

On the other hand, make sure that you are editing the right Application.xml. Append an underscore to the module class (com.streamtoolbox.Wrench_) and check that you see an error in the logs when the application (not the server!) is started. You should see something like Module class not found or could not be loaded.

Do these tools support other databases than MySQL, such as MSSQL/Oracle/PostgreSQL, etc?

Yes. The database connection between the modules and the database is established via a JDBC driver. This is a standard way to communicate with databases and all major database vendors provide JDBC drivers that you need to:

  • download from their website
  • copy under your Wowza installation's lib dir
  • specify the so called JDBC driver classname in the properties (e.g. wrench.db.driver or measure.db.driver)
  • specify the so called JDBC connection url for the driver (wrench.db.url or measure.db.url)

Here is a table with some of the most typical databases

RDBMS Driver class Connection URL pattern Download
MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname:port/databasename Download
MSSQL net.sourceforge.jtds.jdbc.Driver jdbc:jtds:sqlserver://server/db Download
PostgreSQL org.postgresql.Driver jdbc:postgresql://host:port/database Download

How do I use Wrench or Measure in an edge-origin server setup?

Connection information is not passed from edge servers to the origin, so you need to install the modules on each edge server. Of course they can all connect to the same database.

Do these modules support Amazon CloudFront?

No. If you own the origin server, you don't get the information about the things going on in the edge servers in the cloud.

The module is not picked up (Module class not found or could not be loaded), but I have restarted the Wowza server and the application as well

It looks like the restart option offered on the web interface is not triggering the rescan of the classpath. You must restart the OS level process of Wowza to get the jar files loaded.

Can you help me configuring the bought modules?

Yes, but it is an extra service that comes with additional cost negotiated by each customer individually, depending on the complexity and scale of the support needed. Feel free to contact us with the technical details and ask for an offer. It's not that expensive.

How can I pass the token to Wrench from GoCoder?

If you are using GoCoder on Android, you need to pass the token in the application name: myapp?t=foo If you are using it on iPhone, you need to use the stream name: myStream?t=foo

How can I pass the token to Wrench from a HTTP based streamer link made for iPhone/iPad/Android?

Use this pattern: http://192.168.0.10:1935/live/myStream/playlist.m3u8?token=foo

How can I configure JW Player to pass the token to Wrench?

   /* For JW Player 7 with an RTMP live stream*/
  jwplayer('player123').setup({
        file: 'rtmp://localhost:1935/wrenchexample1?t=foo/mp4:myStream'
    });

  /* Only for JW Player 6 */
  jwplayer('container1').setup({
    file: 'rtmp://localhost:1935/live/?t=foo/myStream',
    width: 640,
    height: 360,
    primary: 'flash'
  });

  /* Only for JW Player 5 */
  jwplayer('container1').setup({
    streamer: 'rtmp://localhost:1935/secret?token=foo',
    file: 'myStream',
    width: 640,
    height: 360,
    primary: 'flash'
  });

Does Wrench work with nDVR?

Yes. The trick is to put both the DVR and the token's GET parameter into the URL concatenated with ampersand (&) character as follows:

E.g. http://localhost:1935/dvr/myStream/playlist.m3u8?DVR&t=foo for HTTP based streamers and rtmp://xtv.dnsget.org:1935/live?DVR&t=foo for RTMP based players.

Does Wrench work ModuleCoreSecurity?

No. You need to remove ModuleCoreSecurity from your configuration if you are using Wrench. Actually there is no need to have both: ModuleCoreSecurity is usually configured to require a single, shared, hardcoded password for publishers. You can achieve the same effect with Wrench if you configure wrench.encoder.token. If you want better security, you can still generate dynamic tokens for your encoder and optionally switch on IP checking.

Which version of Wowza Streaming Engine is supported?

Streamtoolbox modules only support Wowza Streaming Engine™ 4.1.x. Although they might work with previous versions, they are always build against and tested with the latest API version available. Being an official Wowza Technology partner, our products are guaranteed to work with the latest Wowza Streaming Engine™ version.

Does Wrench work with MediaCache?

Yes, just make sure that the token is included in the URL this way:

rtmp://localhost:1935/vods3/_definst_/?t=7gj38fngzdm4ofxrw&mp4:amazons3/myChannel/foo/video.mp4

Does Wrench work with .smil files?

Yes. The thing you need to work around is that by default if you include the token in the url that points to a smil file, the vanilla HTTP Provider in Wowza won't include the received token in the generated smil file. There are two possible ways to fix this. One is that you implement a simple proxy in PHP or any other language, that "decorates" the generated smil file with the token or better follow the recipe here in the Wowza forum to patch the code. If you can't do it, contact us and we'll help you.

Does Wrench support Video.js ?

Yes. Here is an example to set it up with HTTP and RTMP based streaming:

<video id="example_video_1" class="video-js vjs-default-skin" controls preload="auto" width="640" height="264" poster="http://video-js.zencoder.com/oceans-clip.png" data-setup='{"example_option":true}'>
      <!-- source src="http://localhost:1935/vod/mp4:sample.mp4/playlist.m3u8?t=6b43c87aa35" type='video/mp4' /-->
      <source src="rtmp://localhost:1935/vod/?t=6b43c87aa35&mp4:streetview.mp4" type='rtmp/mp4' />
</video>