A BitFocus Companion module for interacting with Matrox Monarch stream encoder/recorder devices.
This module supports the following devices:
- Matrox Monarch HD
- Matrox Monarch HDX
- Matrox Monarch LCS
- Datavideo NVS-30
- Start encoders/recorders
- Stop encoders/recorders
- LCS: Set Dynamic Output option
This module supports polling the GetStatus endpoint, and save the response to module-variables and feedbacks. Polling can be set to various options.
This mocking stub may not apply to all the different Monarch models.
To enable basic testing without an actual device, there is a basic HTTP server that mocks out some of the device API. Right now it just responds to every request with a sample response taken from the device after a "stop encoder" call. We can add to this in the future to respond appropriately to different calls.
It uses the device defaults for auth (HTTP basic auth: admin
/admin
) and
listens on port 80. Start it (after installing dev dependencies) like so:
node mock-monarch.js
And you'll see:
$ node mock-monarch.js
Mock Monarch is listening on 80
Received request: /Monarch/syncconnect/sdk.aspx?command=StartEncoder1
These are the different kind of output that the GetStatus command returns, based on the selected device model
HD
RECORD: READY, STREAM:RTMP,READY, NAME:DEVICE1
RECORD: ON, STREAM:RTSP,READY, NAME:DEVICE2
RECORD: READY, STREAM:DISABLED,DISABLED, NAME:DEVICE4
HDX
ENC1:RECORD,READY, ENC2:RTMP,READY, NAME:DEVICE1
ENC1:RECORD,READY, ENC2:NONE,DISABLED, NAME:DEVICE3
ENC1:RECORD,ON, ENC2:RTSP,READY, NAME:DEVICE2
LCS
ENC1:RECORD,READY,ENC2:RTMP,READY,FILETRANSFER:ON,NAME:DEVICE1
ENC1:RECORD,ON,ENC2:RTSP,READY,FILETRANSFER:OFF,NAME:DEVICE2
ENC1:RECORD,READY, ENC2:NONE,DISABLED,FILETRANSFER:OFF,NAME:DEVICE3
NVS-30
RECORD:READY,STREAM:RTMP,READY,NAME:NVS-30
RECORD:READY,STREAM:RTMP,ON,NAME:NVS-30
RECORD:ON,STREAM:RTMP,ON,NAME:NVS-30
RECORD:READY,STREAM:RTMP,ON,NAME:NVS-30