How to receive SAP packets and process them

How to receive SAP packets and process them:

We were asked to look at SAP (Session Announcement Protocol) and how we could make it work with Wowza Streaming Engine. It turns out it is a relatively simple protocol but there are few gotchas which did trip us up however we have come up with an application module that should meet most needs along […]

» continue reading

How to publish with WebRTC using H264

How to publish with WebRTC using H264:

This has been asked many times on how to get WebRTC to publish with H264 using the WebRTC publisher provided by Wowza. This code is extremely basic but by default publishes VP8. There are two ways to resolve this problem and we are going to choose one that requires no changes to the Wowza configuration/session […]

» continue reading

How To – Do Stream Motion Detection

How To – Do Stream Motion Detection:

We have been asked to look at several features relating to the transcoder, one being motion detection. We did a little digging and it appears Wowza Streaming Engine provides access to frames after they have been decoded. There are several posts such as Stack OverFlow and a somewhat more complete example Wowza Code Example This […]

» continue reading

How to set stream timecodes to absolute time

How to set stream timecodes to absolute time:

We were recently asked to look at how to provide absolute timecodes in a stream, regardless of if the encoder sent them or not. This can be done and is extremely simple to do. package guru.thewowza.example.absolute; import com.wowza.wms.application.*; import com.wowza.wms.amf.*; import com.wowza.wms.module.*; import com.wowza.wms.stream.*; public class Timecode extends ModuleBase { public void onAppStart(IApplicationInstance appInstance) { […]

» continue reading

Dynamically created SMIL for VOD and Live Streams

Dynamically created SMIL for VOD and Live Streams:

We recently published an article outlining how to get some meta data from VOD files for use with the AMLST extension and although reasonably useful we have recently been furnished with a significantly better approach and decided to build a full solution to share. When using adaptive bitrate streams , so multiple files or live […]

» continue reading

How to only allow known IP addresses to connect to your HTTP Origin server

How to only allow known IP addresses to connect to your HTTP Origin server:

To protect your Wowza Streaming Engine server from invalid IP addresses when in HTTP Origin mode we have come up with a simple HTTP validator. Although relative simple to implement not quite as obvious as you might think and uses a little trick into fooling Wowza Streaming Engine. In order to implement this we have […]

» continue reading

Record Stream on-demand

Record Stream on-demand:

The following code snippet allows you to record streams on demand.

» continue reading

How To Get File Information – Codec/Bitrate

How To Get File Information – Codec/Bitrate:

We have been looking at how to do this for a while and finally came up with a reasonable method. This could be used in conjunction with the AMLST API and do note it does trigger some ‘cupertino’ messages although you may not be using cupertino to stream anything. private IMediaReaderCupertino mediaReader = null; private […]

» continue reading

Nvidia commands to monitor gpu usage

Nvidia commands to monitor gpu usage:

When using NVENC as the implementation for the transcoder, there are a few built-in nvidia commands that you can use to monitor GPU usage plus some.

» continue reading

REST API – PTZ camera functionality

REST API – PTZ camera functionality:

Wowza’s Rest API has functionality for IP cameras that contain PTZ camera functionality.

» continue reading