Alert is a module that can detect anomalies and patterns of interest in a stream or system and send notifications to users. Anomalies and patterns of interest can be set through predefined , and when detected, the module sends an HTTP(S) request to the user's notification server.
POST /configured/target/url/ HTTP/1.1Content-Length:1037Content-Type:application/jsonAccept:application/jsonX-OME-Signature:f871jd991jj1929jsjd91pqa0amm1{"sourceUri":"#default#app/stream","messages":[ {"code":"INGRESS_HAS_BFRAME","description":"There are B-Frames in the ingress stream." }, {"code":"INGRESS_BITRATE_LOW","description":"The ingress stream's current bitrate (316228 bps) is lower than the configured bitrate (2000000 bps)" } ],"sourceInfo":{"createdTime":"2023-04-07T21:15:24.487+09:00","sourceType":"Rtmp","sourceUrl":"TCP://192.168.0.220:10639","tracks":[ {"id":0,"name":"Video","type":"Video","video":{"bitrate":"300000","bypass":false,"codec":"H264","framerate":30.0,"hasBframes":true,"height":1080,"keyFrameInterval":0,"width":1920 } }, {"audio":{"bitrate":"160000","bypass":false,"channel":1,"codec":"AAC","samplerate":48000 },"id":1,"name":"Audio","type":"Audio" }, {"id":2,"name":"Data","type":"Data" } ] },"type":"INGRESS"}
Here is a detailed explanation of each element of JSON payload:
Messages
Security
The control server may need to validate incoming http requests for security reasons. To do this, the AdmissionWebhooks module puts the X-OME-Signature value in the HTTP request header. X-OME-Signature is a base64 url safe encoded value obtained by encrypting the payload of an HTTP request with the HMAC-SHA1 algorithm using the secret key set in <Alert><SecretKey> of the configuration.
Response
The engine in the closing state does not need any parameter in response. To the query just answer with empty JSON object.
Time to wait for a response after request. (in milliseconds)
Rules
Anomalies and patterns of interest to be detected.
Ingress
MinBitrate
Detects when the input stream's bitrate is lower than the set value.
MaxBitrate
Detects when the input stream's bitrate is greater than the set value.
MinFramerate
Detects when the input stream's framerate is lower than the set value.
MaxFramerate
Detects when the input stream's framerate is greater than the set value.
MinWidth
Detects when the input stream's width is lower than the set value.
MaxWidth
Detects when the input stream's width is greater than the set value.
MinHeight
Detects when the input stream's height is lower than the set value.
MaxHeight
Detects when the input stream's height is greater than the set value.
MinSamplerate
Detects when the input stream's samplerate is lower than the set value.
MaxSamplerate
Detects when the input stream's samplerate is greater than the set value.
LongKeyFrameInterval
Detects when the input stream's keyframe interval is too long (exceeds 4 seconds).
HasBFrame
Detects when there are B-frames in the input stream.
sourceUri
URI information of the detected source.
It consists of #<vhost>#<application>/<stream>.
messages
List of messages detected by the Rules.
sourceInfo
Detailed information about the source at the time of detection. It is identical to the response of the REST API's source information query for the detected source.
type
It represents the format of the JSON payload. The information of the JSON elements can vary depending on the value of the type.
Currently, the value is fixed as INGRESS.
INGRESS_BITRATE_LOW
The ingress stream's current bitrate (%d bps) is lower than the configured bitrate (%d bps)
INGRESS_BITRATE_HIGH
The ingress stream's current bitrate (%d bps) is higher than the configured bitrate (%d bps)
INGRESS_FRAMERATE_LOW
The ingress stream's current framerate (%.2f fps) is lower than the configured framerate (%.2f fps)
INGRESS_FRAMERATE_HIGH
The ingress stream's current framerate (%f fps) is higher than the configured framerate (%f fps)
INGRESS_WIDTH_SMALL
The ingress stream's width (%d) is smaller than the configured width (%d)
INGRESS_WIDTH_LARGE
The ingress stream's width (%d) is larger than the configured width (%d)
INGRESS_HEIGHT_SMALL
The ingress stream's height (%d) is smaller than the configured height (%d)
INGRESS_HEIGHT_LARGE
The ingress stream's height (%d) is larger than the configured height (%d)
INGRESS_SAMPLERATE_LOW
The ingress stream's current samplerate (%d) is lower than the configured samplerate (%d)
INGRESS_SAMPLERATE_HIGH
The ingress stream's current samplerate (%d) is higher than the configured samplerate (%d)
INGRESS_LONG_KEY_FRAME_INTERVAL
The ingress stream's current keyframe interval (%.1f seconds) is too long. Please use a keyframe interval of 4 seconds or less