Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • prevention of redundant transcoding of the same stream on two or more transcoders in CDN
  • CDN extended information displaying
  • channel quality control between CDN nodes

Prevention of redundant transcoding of the same stream on two or more transcoders in CDN

...

In this case, CDN version matching result will be displayed for ACTIVE node and CDN version explicitly set will be displayed for PASSIVE node (see below)

Channel quality control between CDN nodes

Since build 5.2.483 channel quality control ability in Origin -> Transcoder -> Edge direction is added. To enable this feature, set the outbound bitrate sending interval  value in seconds

Code Block
themeRDark
outbound_video_rate_stat_send_interval=1

on Origin and Transcoder nodes.

In this case, the outbound and inbound bitrate values on subscriber node side are periodically comparing with publisher side one. The steady divergence of those values means channel bandwidth decrease. The peaks and sudden changes are smoothed by Kalman filter. Channel quality mertic and statistics for the stream can be checked by REST API query.

Checking channel quality metric and statistics using REST API

  • HTTP: http://test.flashphoner.com:8081/rest-api/cdn/stats/print

  • HTTPS: https://test.flashphoner.com:8444/rest-api/cdn/stats/print

Where:

  • test.flashphoner.com -WCS server address
  • 8081 - REST / HTTP port
  • 8444 - HTTPS port
  • rest-api - mandatory URL part
  • /cdn/stats/print - REST method used

REST queries should be sent to node from which statistics should be get. For example, on Edge node statistics can be checked for the stream received from Origin or Transcoder, and on Transcoder node for the stream received from Origin

REST queries and response states

REST query

Body example

Response example

Response states

Description

/cdn/stats/print

Code Block
languagejs
themeRDark
{
 "name":"test",
 "host":"192.168.0.111",
 "format":"json"
}




Code Block
languagejs
themeRDark
{
    "192.168.0.111": [
        {
            "fps": 30, 
            "inboundBitrate": 1658292, 
            "nack": 0, 
            "name": "test", 
            "outboundBitrate": 1692676, 
            "quality": "PERFECT"
        }
    ]
}

200 – OK

404 - Stream not found

Get the stream statisctics

Parameters

Parameter

Description

Example

name

Stream name

test

hostNode IP address from whic stream is receiving192.168.0.111
formatResponse formatjson
inboundBitrateInbound (received) bitrate1658292
outboundBitrateOutbound (sent) bitrate1692676
nackNACK count0
fpsFPS30
qualityChannel quality metricPERFECT

The query without stream name returns all the sreams statistics received from the CDN node defined. The qury without node returns all the streams statistics received from other CDN nodes if the stream name is not set

Response formats

By default, statistics is returned in JSON format:

Code Block
languagejs
themeRDark
POST /rest-api/cdn/stats/print HTTP/1.1
Content-Length: 19
Content-Type: application/json
Host: test.flashphoner.com:8081
{
    "name": "test"
}

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 125
Content-Type: application/json
{
    "192.168.0.111": [
        {
            "fps": 31, 
            "inboundBitrate": 1052794, 
            "nack": 81, 
            "name": "test", 
            "outboundBitrate": 1048518, 
            "quality": "PERFECT"
        }
    ]
}

Prometeus format is also supported:

Code Block
themeRDark
POST /rest-api/cdn/stats/print HTTP/1.1
Content-Length: 43
Content-Type: application/json
Host: test.flashphoner.com:8081
{
    "format": "prometheus", 
    "name": "test"
}

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 397
Content-Type: plain/text

cdn_connection_quality{param="inboundBitrate",node="192.168.0.111",name="test"} 1249049
cdn_connection_quality{param="outboundBitrate",node="192.168.0.111",name="test"} 1240717
cdn_connection_quality{param="quality",node="192.168.0.111",name="test"} 3
cdn_connection_quality{param="fps",node="192.168.0.111",name="test"} 30
cdn_connection_quality{param="nack",node="192.168.0.111",name="test"} 81

Channel quality metric is shown as follows

JSONPrometheusDescription
UNKNOWN0Quality is unknown, media packets are not received
BAD1Quality is bad
GOOD2Quality is good
PERFECT3Quality is perfect

Backward compatibility with CDN 2.2, 2.1, 2.0

...