This provides a WSE Module that discovers ONVIF devices using profile S/Streaming. Once a device is detected, the module will create a stream file in WSE and connects it automatically if configured to do so. Also provides an option to create a stream target if the stream needs to be pushed externally. Module uses ONVIF Profile S (Streaming) to communication with devices.
To automatically build the jar, see WSE Builder project to create the wse-plugin-builder
build.sh
Copy built jar file into the WSE lib directory.
Add the Server Listener in Server.xml:
<ServerListener>
<BaseClass>com.wowza.wms.plugin.onvif.OnvifServerListener</BaseClass>
</ServerListener>
To run in docker, host mode needs to be enable:
- docker-compose.yaml:
network_mode: "host" - docker run:
--network="host"
Provided is a docker-compose-yaml to run on a linux system
Important
Docker only works for linux, does not work for Windows or OSX.
"The host networking driver is supported on Docker Engine (Linux only) and Docker Desktop version 4.34 and later." dockerdocs
| Name | Default | Description |
|---|---|---|
| onvifScanFrequency | 60 | How often to scan for new devices (seconds) |
| onvifStreamfileApplication | live | The application to create the stream file in |
| onvifStreamfileConnect | false | Connect/Start the stream file when created |
| onvifStreamfileName | {{id}} | Define what the stream name should. Can use variables: {{id} {{ip}} {{name}} {{location}} {{hardware}} |
| onvifStreamTargetCreate | false | Create a stream target for each device detected |
| onvifStreamTargetUrl | null | URL to connect to with a stream target. Can use variables: {{id} {{ip}} {{name}} {{location}} {{hardware}} |
| onvifStreamfileRtspFilterUnknownTracks | true | Set stream file property rtspFilterUnknownTracks |
| onvifStreamfileRtspStreamAudioTrack | false | Set stream file property rtspStreamAudioTrack |
| onvifUsername | null | Username for cameras |
| onvifPassword | null | Password for cameras |
| onvifProfile | HIGH | What profile/resolution of stream to select [ HIGH | LOW | FIRST | LAST ] |
| onvifDiscoveryTimeout | 2000 | Discover socket timeout (Milliseconds) |
| onvifDiscoveryTTL | 1 | Number of hops for discovery |
| onvifDeviceHourOffset | 0 | adjust the UTC time returned by the device for devices that report wrong time |
| onvifDebug | false | Debug ONVIF devices |
Following devices have been tested/verified.
| Make | Model/(ONVIF Model) | Module Ver | Notes |
|---|---|---|---|
| Innosecu | INB5GR37F-B/N401-IR | 1.0.4 | |
| Amcrest | IP5M-T1179EB-AI-V3 | 1.0.4 | |
| Amcrest | IP5M-T1179E | 1.0.4 | Daylight savings has UTC time off by 1 hr |
| Jennov | PS6006/JM800S5_AF | 1.0.4 |
Send us the .json file created in the WSE content directoy so we can keep the list above updated
This code is distributed under the Wowza Public License.