Create SRT StreamTarget via REST API

Hi everyone,
I would like to create a SRT streamTarget using Wowza’s REST API.
I send a request to the controller: POST /v2/servers/{serverName}/vhosts/{vhostName}/applications/{appName}/pushpublish/mapentries .
The following content is used as Request Body:

{
“srtSendBufferSizeUDP”: 65536,
“srtFlightFlagSize”: 25600,
“profile”: “srt”,
“srtSendBufferSize”: 12058624,
“srtMaximumSegmentSize”: 1500,
“sourceStreamName”: “PGM_CH1.stream”,
“serverName”: “defaultServer”,
“enabled”: false,
“srtTimesToPrintStats”: 0,
“debugLog”: false,
“srtInputBandwidth”: 0,
“srtKeyAnnounce”: 4096,
“srtMaximumBandwidth”: -1,
“sendSSL”: false,
“srtOverheadBandwidth”: 25,
“entryName”: “SRT_Target_API”,
“host”: “192.168.77.74”,
“port”: 5556,
“srtTimestampBasedDeliveryMode”: true,
“srtLatency”: 400,
“srtKeyRefreshRate”: 16777216,
“srtStreamId”: “”,
“srtPeerIdleTimeout”: 5000
}

As a response I get the following from Wowza:

When I view all StreamTargets of the application in Wowza Streaming Engine Manager, I don’t see the StreamTarget.

If I display all StreamTargets of the application via the controller

GET /v2/servers/{serverName}/vhosts/{vhostName}/applications/{appName}/pushpublish/mapentries
then the StreamTarget is displayed.

How must the StreamTarget be created to see it in the Stream Engine Manager?

I use version 4.8.5 of the Wowza streaming engine

Best Regards

Hi @Tom_Weber after a quick peek from the engineers, they asked if you are aware of the following:

  • Wowza Streaming Engine supports SRT version 1.4 and earlier, and can only be used to ingest and send MPEG-TS packaged SRT content.

  • Important: SRT stream targets are only supported in Linux and Windows installations of Wowza Streaming Engine.

  • If using the Wowza Streaming Engine 4.8.0 or later installer to install a new instance of Wowza Streaming Engine on Windows, you may need to install additional dependencies in order to ingest SRT MediaCaster streams or use the generic SRT stream targets destination to publish an SRT stream.

To address this, install the latest version of the Microsoft Visual C++ Redistributable for Visual Studio appropriate to your operating system. This is not an issue for pre-existing installations of Wowza Streaming Engine that are updated to Wowza Streaming Engine 4.8.0 or later.

Also, depending on the target’s requirements, did you need SSL to be true and not false?

If that does not apply to you, they said nothing jumps out as incorrect in your code you shared but they would need a support ticket to investigate further. They can only review configs and logs through a ticket.

https://www.wowza.com/support/open-ticket

Tech support also suggest before submitting a ticket that you push an SRT stream to another application on the same system and this way we can verify Wowza’s ability to push SRT correctly.

https://www.wowza.com/docs/how-to-use-srt-to-distribute-live-streams#streamtarget

Hi @video_streaming ,
I have checked the points described. Streaming with the SRT stream target works without problems. It doesn’t matter if it is created via Wowza Streaming Engine Manager or via REST API.
The problem that the StreamTarget is not displayed in the Wowza streaming Engine Manager when the StreamTarget is created via the REST Api still exists.
I will create a ticket for this.
Thanks for the quick reply

Best Regards

Hmmm…that’s interesting. I’ll follow up on that with the engineers and watch for your ticket.

Hey @Tom_Weber
Did you get this issue resolved? We’re seeing a similar outcome when creating SRT stream target through REST API. Stream target works, but it is not visible on the UI.

Additional info for Wowza Staff @Rose_Power-Wowza_Com

we’re using the wowzamedia/wowza-streaming-engine-linux:4.8.12 docker image.

Let me see what I can find out for you. Be back soon…

Digging further into this, you’ll need to have extraOptions object and destinationName param set in order to see a SRT stream target entry in Wowza Streaming Engine Manager.

Sample call that needs to be made:

curl -X POST \
-H 'Accept:application/json; charset=utf-8' \
-H 'Content-type:application/json; charset=utf-8' \
http://localhost:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/rebro/pushpublish/mapentries/myTestSRT \
-d'
{
"sourceStreamName": "myStream", 
"entryName": "myTestSRT", 
"profile": "srt", 
"host": "192.xxx.14.10", 
"port": "12340", 
"srtRecoveryBuffer": "400", 
"srtKeyLength":"128",
  "extraOptions": {
    "destinationName": "srt"
  } 
}'

I checked a few other support tickets as well and this indeed solved the problem of it not showing up in the Engine Manager:

“extraOptions”: {
“destinationName”: “srt”
}

If that does NOT resolve it for you, please submit a ticket @sironjuh and we’ll take a closer look at your Docker configuration and run some tests. Thanks.

Thanks @Rose_Power-Wowza_Com, this did indeed fix the issue.

So happy to hear that! Thanks for telling me.