October 8, 2014

Server tasks remote management via web UI

With its current feature set, WMSPanel became a reporting and control center for a diverse streaming environment. You may have any number of Wowza, Red5, nginx, Nimble Streamer or even Windows Media and still have the same excellent set of reports with stats aggregated from all of them and split by servers, apps or streams. With API available, it's also a single source of data for further analytic.

Now to make WMSPanel also a central tool for controlling these servers' behavior, our team introduces server-side tasks control web interface.

WMSPanel allows defining tasks. A task executes some server-side command and shows its execution status. The tasks are processed via pre-installed Nimble Streamer. It acts as an agent which runs and tracks commands. So WMSPanel interacts with Nimble and Nimble interacts with system processes.

Easy to use web interface allows controlling multiple tasks for multiple servers from the same UI with no need to log into each remote machine.

These tasks can run external transcoders like FFMPEG, image processing software and any other command-line tools.

Notice that task management works only on Linux installations of Nimble Streamer.


Let's see how server tasks are defined and used.


1. Set up Nimble Streamer


First you need to have Nimble Streamer running at the server which you'd like to control.

1.1 Follow this easy to use instruction to set up an instance.

1.2 The feature is disabled by default due to security reasons, so you need to enable it. Open /etc/nimble/nimble.conf and add the following line:
enable_tasks = true
1.3 Restart server as described in installation instruction.

1.4 Please notice that tasks' commands are running under Nimble's user, so it needs to have proper execution permissions for the tools and files that are involved.

2. Set up tasks


Now go to WMSPanel and click on Control / Server-side tasks control menu. You will see empty list of tasks.


Click on Add new task to see a dialog below.

Making new transcoding task with ffmpeg.
Here you can choose a server to process your task and enter a command to execute. If you need this task to restart automatically after it's finished or failed, check "Autorestart" check box and enter time interval. In the example above the command looks like this:
ffmpeg -re -i /home/test/content/mp4/sample.mp4 -acodec copy -vcodec copy -f flv rtmp://user:pass@127.0.0.1:1935/live/stream
Which means an MP4 file will be transmuxed into RTMP stream with given credentials.

When the tasks are saved, the list may look like this:

List of executed tasks.
Each task has:

  • status;
  • command which is being run;
  • options enabled;
  • server where command is applied;
  • control options like Start, Stop etc.

When the task is created, its takes several seconds to deliver task to assigned Nimble Streamer instance.

Once you select some particular server, you can make multiple edit of give server tasks. Just click on Multiple edit button to see a dialog for editing settings as a text.


This allows making backup and restore for the settings and move settings among servers.

As the tasks are defined, the processing chain starts working.
Popular scenarios include:

  • take media file and publish it as RTMP stream;
  • get RTSP stream, transcode and push it as RTMP to Nimble Streamer, where it's transmuxed to HLS;
  • get RTMP stream, create streams with different quality levels and push forward to Nimble Streamer to produce ABR HLS etc.
  • Take a look at Transmuxing HLS to RTMP use case which uses this feature set to get RTMP stream for further processing

So you can combine several tools, each performing its task in the most efficient way. E.g. if Nimble makes perfect ABR HLS transmuxing from RTMP but cannot make efficient transcoding, there's a tool which can do that. So creating chains like that allows you to choose the best tools from your diverse environment and use WMSPanel as the interlink for your infrastructure.

You also recommend using our Live Transcoder for content transformation activities. It has performance equivalent to FFmpeg while having flexible web UI.
If you'd like to automate task control and apply your business logic, you may use task control API, please check our API reference.

Now if you find this useful for you, start with WMSPanel sign up and Nimble Streamer installation. If you have any questions, just let us know about it or ask a question in our forum.

Related documentation


Live Streaming featuresLive Transcoder for Nimble StreamerRTMP feature setRTMP republishing via NimbleBuild streaming infrastructure,

No comments:

Post a Comment