September 30, 2019

Manual ingest of Icecast metadata into RTMP via API

Nimble Streamer can re-package incoming RTMP stream into outgoing Icecast stream, it's part of our extensive audio streaming feature set. Besides just processing an Icecast stream, Nimble Streamer can handle Icecast metadata in various scenarios, from pass-through to setup via UI and passing Icecast metadata via RTMP.

Now you can also ingest Icecast metadata into any incoming live stream any time via Nimble Streamer native API call, which makes it a real-time metadata injection. Currently only "streamtitle" and "streamurl" metadata parameters are supported. Once the metadata is ingested into the live stream, that data can be used for all RTMP- and Icecast-related scenarios as shown later in this article.

1. Enable RTMP Icecast metadata


To use this real-time injection you need to enable RTMP Icecast metadata feature first.

Follow "Generating Icecast metadata from RTMP" article to set up the processing of Icecast metadata in RTMP for further usage. Basically it's a matter of one checkbox in WMSPanel UI for given server instance or for some specific application.

Once this feature is enabled, any incoming stream will 

2. Enable Nimble API


Nimble Streamer native API allows working directly with server instance in order to get its status and control its behavior in some cases.

To start using it, you need to enable it on server side via configuration file. Please follow Pre-setup section in Nimble Streamer API reference to proceed. Once you have properly set up server, you can run the ingestion.

So whatever app or server you will enable this feature for, the incoming stream will get the metadata which you later will be able to transfer and process via RTMP.

3. Perform the injection


At this point we assume that you have a live stream to ingest metadata into, let it be "live" application and "radio" stream.
Then assuming your management interface is 127.0.0.1 and port is 9999 you can make this POST call:
curl -vvv http://127.0.0.1:9999/manage/icecast_metadata/live/radio -d "{\"streamtitle\":\"News\", \"streamurl\":\"URL2\"}"
This includes /manage/icecast_metadata method with for live/radio stream and set streamtitle and streamurl metadata parameters.

If you don't need to set streamurl you can run it this way:
curl -vvv http://127.0.0.1:9999/manage/icecast_metadata/live/radio -d "{\"streamtitle\":\"News\"}"
to apply streamtitle only.

You can find more about this and other native API methods on API reference page.

Further usage


As we've mentioned before, this metadata injection API call allows adding that data into the live stream, as if it's been ingested by some encoder before that stream entered into Nimble Streamer instance. This means that you may use ingested metadata in any output RTMP or output Icecast processing use case like those:
RTMP will still carry the data outbound as you need.


Contact us if you have any questions regarding any of our features.

Related documentation


Nimble Streamer APIAudio streaming feature setRTMP support

No comments:

Post a Comment

If you face any specific issue or want to ask some question to our team,
PLEASE USE OUR HELPDESK

This will give much faster and precise response.
Thank you.

Note: Only a member of this blog may post a comment.