Versions Compared

Key

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

...

REST queries and response states

Name

Description

Example

uri

Transcoder URL

transcoder://tcode1
localStreamNameTranscoder output stream name
testT
remoteStreamNameStream name to transcode
test
localMediaSessionIdTranscoder media session Id42a92132-bcd1-4436-a96f

REST query

Request example

Response example

Response states

Description

/transcoder/startup

Code Block
languagejs
themeRDark
{
 "uri": "transcoder://tcode1",
 "remoteStreamName": "test",
 "localStreamName": "testT",
 "encoder": {
  "width": 640,
  "height": 480,
  "keyFrameInterval": 30,
  "fps": 30,
  "watermark": "Test.png"
 }
}

400 - Bad request

409 - Conflict

500 - Internal error


Create transcoder with defined parameters for certain stream


/transcoder/find
Code Block
languagejs
themeRDark
{
 "remoteStreamName": "test"
}
Code Block
languagejs
themeRDark
[
    {
        "localMediaSessionId": "42a92132-bcd1-4436-a96f-3fec36b32b37",
        "localStreamName": "testT",
        "remoteStreamName": "test",
        "uri": "transcoder://tcode1",
        "status": "PROCESSED_LOCAL",
        "hasAudio": true,
        "hasVideo": true,
        "record": false,
        "encoder": {
            "width": 640,
            "height": 480,
            "keyFrameInterval": 30,
            "fps": 30,
            "watermark": "Test.png"
        }
    }
]

200 – Transcoders found

404 – Transcoders not found

Find the transcoder by certain criteria

/transcoder/find_all


Code Block
languagejs
themeRDark
[
    {
        "localMediaSessionId": "42a92132-bcd1-4436-a96f-3fec36b32b37",
        "localStreamName": "testT",
        "remoteStreamName": "test",
        "uri": "transcoder://tcode1",
        "status": "PROCESSED_LOCAL",
        "hasAudio": true,
        "hasVideo": true,
        "record": false,
        "encoder": {
            "width": 640,
            "height": 480,
            "keyFrameInterval": 30,
            "fps": 30
        }
    }
]

200 – Transcoders found

404 – Transcoders not found


Find all transcoders

/transcoder/terminate

Code Block
languagejs
themeRDark
{
"uri":"transcoder://tcode1"
}

200 - Transcoders is terminated

404 - Transcoder not found

Stop transcoder and its output stream

Parameters

/transcoder/set_watermark
Code Block
languagejs
themeRDark
{
 "uri":"transcoder://tcode1",
 "watermark":"/opt/media/logo.png",
 "x":10,
 "y":10,
 "marginTop":5,
 "marginLeft":5,
 "marginBottom":5,
 "marginRight":5
}

200 - OK

400 - Bad request

404 - Not found

Add watermark to transcoder output stream

Parameters

Name

Description

Example

uri

Transcoder URL

transcoder://tcode1
localStreamNameTranscoder output stream name
testT
remoteStreamNameStream name to transcode
test
localMediaSessionIdTranscoder media session Id
42a92132-bcd1-4436-a96f-3fec36b32b37

status

Transcoder state

PROCESSED_LOCAL
hasAudioOutput stream has audio
true
hasVideoOutput stream has video
true
recordOutput stream is recorded
false
Encoder parameters
widthPicture width
640
heightPicture height
480
keyFrameIntervalKey frame generation interval (GOP)
30
fpsFrames per second
30
bitrateBitrate, in kbps
500
typeCodec
OPENH264
watermarkWatermark fileTest.png

...

REST queries and response states

Name

Description

Example

uri

Transcoder URL

transcoder2://tcode2
localStreamNameTranscoder output stream name
testT
remoteStreamNameStream name to transcode
test
localMediaSessionIdTranscoder media session Id82ad5545-e11e-4f0f-

REST query

Request example

Response example

Response states

Description

/transcoder2/startup

Code Block
languagejs
themeRDark
{
 "uri": "transcoder2://tcode2",
 "remoteStreamName": "test",
 "localStreamName": "testT",
 "encoder": {
  "videoCodec": "H264",
  "audioCodec": "mpeg4-generic",
  "width": 320,
  "height": 240,
  "keyFrameInterval": 60,
  "fps": 30,
  "audioRate": 44100,
  "audioBitrate": 64000
 }
}

200 - OK

400 - Bad request

409 - Conflict

500 - Internal error


Create transcoder with defined parameters for certain stream


/transcoder2/find
Code Block
languagejs
themeRDark
{
 "remoteStreamName": "test"
}
Code Block
languagejs
themeRDark
[
  {
    "localMediaSessionId": "82ad5545-e11e-4f0f-801a-49e69d8c38f2",
    "localStreamName": "testT",
    "remoteStreamName": "test",
    "uri": "transcoder2://tcode2",
    "status": "PROCESSED_LOCAL",
    "hasAudio": true,
    "hasVideo": true,
    "record": false,
    "encoder": {
      "width": 320,
      "height": 240,
      "keyFrameInterval": 60,
      "fps": 30,
      "audioRate": 44100,
      "audioCodec": "mpeg4-generic",
      "videoCodec": "H264",
      "videoRate": 90000
    }
  }
]

200 – OK

404 – Not found

Find the transcoder by certain criteria

/transcoder/find_all


Code Block
languagejs
themeRDark
[
  {
    "localMediaSessionId": "82ad5545-e11e-4f0f-801a-49e69d8c38f2",
    "localStreamName": "testT",
    "remoteStreamName": "test",
    "uri": "transcoder2://tcode2",
    "status": "PROCESSED_LOCAL",
    "hasAudio": true,
    "hasVideo": true,
    "record": false,
    "encoder": {
      "width": 320,
      "height": 240,
      "keyFrameInterval": 60,
      "fps": 30,
      "audioRate": 44100,
      "audioCodec": "mpeg4-generic",
      "videoCodec": "H264",
      "videoRate": 90000
    }
  }
]

200 – OK

404 – Not found

Find all transcoders

/transcoder/terminate

Code Block
languagejs
themeRDark
{
 "uri":"transcoder2://tcode2"
}

200 – OK

404 – Not found

Stop transcoder and its output stream

Parameters

/transcoder2/set_watermark
Code Block
languagejs
themeRDark
{
 "uri":"transcoder2://tcode1",
 "watermark":"/opt/media/logo.png",
 "x":10,
 "y":10,
 "marginTop":5,
 "marginLeft":5,
 "marginBottom":5,
 "marginRight":5
}

200 - OK

400 - Bad request

404 - Not found

Add watermark to transcoder output stream

Parameters

Name

Description

Example

uri

Transcoder URL

transcoder2://tcode2
localStreamNameTranscoder output stream name
testT
remoteStreamNameStream name to transcode
test
localMediaSessionIdTranscoder media session Id
82ad5545-e11e-4f0f-801a-49e69d8c38f2

status

Transcoder state

PROCESSED_LOCAL
hasAudioOutput stream has audio
true
hasVideoOutput stream has video
true
recordOutput stream is recorded
false
Encoder parameters
widthPicture width
320
heightPicture height
240
audioCodecAudio codecmpeg4-generic
audioRateAudio sample rate, Hz 44100
audioChannelsAudio channels2
audioBitrateAudio bitrate, bps64000
videoCodecVideo codecH264
keyFrameIntervalKey frame generation interval (GOP)
30
fpsFrames per second
30
bitrateVideo bitrate, in kbps
500
typeEncoder type
OPENH264
watermarkWatermark fileTest.png
videoRateVideo sample rate, Hz90000

...

Code Block
languagebash
themeRDark
{
 "uri": "transcoder://tcode1",
 "remoteStreamName": "test",
 "localStreamName": "testT",
 "encoder": {
  "width": 640,
  "height": 480,
  "keyFrameInterval": 30,
  "fps": 30,
  "watermark": "/opt/media/Test.png"
 }"encoder": {
  "width": 640,
  "height": 480,
  "keyFrameInterval": 30,
  "fps": 30,
  "watermark": "/opt/media/Test.png"
 }
}

Adding and changin stream watermark dynamically

Since build 5.2.1349 in is possible to dynamically add or change stream watermark without stopping the transcoder. A watermark can be added, changed or moved to another picture location according to coordinates defined using REST API query /transcoder2/set_watermark 

Code Block
languagejs
themeRDark
{
 "uri":"transcoder2://tcode1",
 "watermark":"/opt/media/logo.png",
 "x":10,
 "y":10,
 "marginTop":5,
 "marginLeft":5,
 "marginBottom":5,
 "marginRight":5
}

Where

  • watermark - watermark file name
  • x, y - top left watermark corner coordinates on the stream picture
  • marginTop, marginLeft, marginBottom, marginRignt - watermark margins from stream picture borders

If watermark coordinates are out of stream picture bounds, the watermark will be scaled to the bounds using margins.

To move watermark to another location on the stream picture, send the query with the same file name and a new coordinates. To remove watermark from the stream picture, send the query with empty watermark field

Code Block
languagejs
themeRDark
{
 "uri":"transcoder2://tcode1",
 "watermark":""
}

Multithreaded encoding

Since build 5.2.816 multithreaded strems encoding is supported using OpenH264 encoder. Encoder threads count can be set with the following parameter

...