Service Host Administrator Guide

Version 1.3 | Published August 14, 2019 ©

WebRTC Preview

Software I/O Mode to SHM Channels. This Administrator Guide gives details on how to install, configure and operate Vizrt's WebRTC Preview service.

WebRTC Preview is a service that allows to stream the video output of a Viz Engine as a preview to WebRTC client applications such as web browsers, Viz Multiplay or Viz Opus.

This page contains the following information:

Hardware and Software Requirements

In addition to the requirements listed in the Viz Engine release notes, the requirements listed bellow must also be met:

  • Viz Engine 3.11.0 or newer.

  • NVIDIA Quadro with NVENC support.

Installing, Registering and Removing WebRTC Preview

WebRTC Preview runs as a plugin of Service Host. WebRTC Preview cannot operate without Service Host, for this reason the installation of WebRTC Preview consists of the following parts:

  1. Running the Service Host Setup Wizard.

  2. Manually registering one or more WebRTC Preview instance(s) using the Service Host web interface.

Before installing Service Host, please make sure to obtain the latest installer from Vizrt’s FTP server: ftp://download.vizrt.com/

Prior WebRTC Preview Installations: In case one had a pre-release or a release candidate installed, it is recommended to remove the existing configuration xml.

To Install Service Host

Refer to the Service Host documentation.

Registering a WebRTC Preview Instance

Refer to the Service Host documentation.

After successfully registering a WebRTC Preview instance, the following dialog window appears.

images/download/attachments/44381220/image2018-6-25_11-52-57.png

Removing a WebRTC Preview Instance

Use the Service Host web interface to remove a WebRTC Preview instance. For more information, refer to the Service Host documentation.

Upgrading or Repairing an Existing Installation

Use the Service Host Setup Wizard to upgrade or repair an existing installation of WebRTC Preview. When upgrading or repairing, Service Host remembers the registered instances and which states they were before the upgrade or repair occurs. After a successful upgrade or repair operation, any previously running services stopped by the Setup Wizard is restarted.

WebRTC Preview Configuration

The configuration page of a WebRTC Preview instance can be reached from the Monitor plugin page via the context menu of a plugin instance or via the menu Configuration > Plug-in > Configure Instance. For any configuration changes to take effect, you must restart the instance.

The configuration page of a WebRTC Preview instance consists of two main sections:

Plugin Configuration Section

From the Plugin Configuration Section, you can change the configuration of a specific WebRTC Preview instance. The configuration of an instance consists of five parts:

  • Video Settings

  • Source Settings

  • Sink Settings

  • Test page Settings

  • License Settings

Video Settings

  • Codec: Sets the video codec. This value must be set to "H264".

  • Bitrate MBit/s: Sets the video bitrate in mbps (megabits per second). This value must be in the range between 1 and 15 mbps.

  • GOP-Length: Sets the GOP length. This value must be in range 1 (I-Frame only) to 300.

  • GPU-Instance: Specifies which GPU to use for video encoding in dual GPU environments. This value must be in the range between 0 and 1, where "0" uses the first GPU and "1" uses the second GPU.

  • Enable Downscale: Enables down-scaling of the video input resolution by a factor of two. This value must be in the range between 0 and 1, where "0" disables down-scaling and "1" enables down-scaling.

    Note: Please note that interlaced video formats are not de-interlaced and only scaled in width.

  • Reduce Framerate enables framerate reduction by a factor of two. This value must be in the range between 0 and 1, where "0" disables framerate reduction and "1" enables framerate reduction

Source Settings

  • Shared Memory Name: Specifies the shared memory connection endpoint to which the WebRTC Preview instance will connect to. This value must be set according to the configuration of the Viz Engine instance the WebRTC Preview instance is to connect to.

    Note:To allow a service connect to shared memory sources, the suffix Global\{shared_memory_name} must be used. The same name must be defined in the engine configuration.

WebRTC Settings

The WebRTC Settings allow a user to configure a simple WebSocket server to which a WebRTC client needs to connect to in order to initiate the WebRTC signaling process.

  • Signaling Port: Specifies the WebSocket server port.

REST Service Settings

The REST Service Settings allow a user to configure a REST service that can be used to access the HTML test template from a web browser.

  • Listening Address: Specifies the listening address of the REST service.

  • Listening Port: Specifies the listening port of the REST service.

To open the HTML test template from a web browser, navigate to http://<Listening Address>:<Listening Port>.

License Settings

The License Settings allows users to configure a WebRTC Preview instance for WiBu Licensing.

  • License Location: Specifies the location the system will search for a WiBu license.
    This can be either:

    • "Local license" acquires the licence from either a WiBu Dongle connected to the system or a file based license.

    • "Network license" acquires the licence from WiBu License server.

  • License: Selects the license feature a user must acquire to use WebRTC Preview.
    T his can be either:

    • "Combination Feature" uses the combination feature of a Viz Engine core license.

    • "MezzIP OUT Upgrade (max)" uses the standalone Mezzanine Out Upgrade feature.

  • 4K Video Enablement: Allows output of video resolutions higher than 2K (optional feature).

Note: In addition to the license features listed above, a user must also acquire a Service Host Core license. The Service Host Core license is consumed by the Service Host itself.

Service Host Settings

From the Service Host Section, you can specific command arguments to pass to a plugin instance at start time. This is mainly used for debugging purposes.

Operation

This sections gives information on how to setup typical use cases of the WebRTC Preview service.

Integration with Viz Engine

The main use case of the WebRTC Preview service is to stream the video output of a Viz Engine as a preview. The Viz Engine supports two different operational modes that can be used in combination with the WebRTC Preview service.

  • Preview of SDI video output in Matrox video version.

  • Preview of SHM video output in video-fallback version.

To Configure Viz Engine for WebRTC Preview in Matrox Video Version

  1. Open Viz Configuration.

  2. Click on Video Output.

  3. Set the Streaming Output option to Active.

The shared memory endpoint and its name is configured automatically depending on the instance ID of the Viz Engine.The name of the shared memory endpoint follows the naming schema bellow:

Global\viz_out_<INSTANCE_ID>_00

For example, the name of the shared memory endpoint of Viz Engine instance 1 is Global\viz_out_01_00.

Note: This mode requires the Viz Engine to be installed as video version running with a Matrox SDI video board.

To Configure Viz Engine for WebRTC Preview in Video-Fallback Mode

  1. Open Viz Configuration.

  2. Click on Video Board.

  3. Set the Check Video Card option to None.

  4. Set the Software I/O Mode option to SHM Channels.

  5. Click on Video Output: SHM Output.

  6. Select SHMOut 1.

  7. Set the Shared Memory Output option to Active.

  8. Set the Unique Identifier option to a unique name preceded by Global\.

To avoid naming conflicts with other Vizrt products running on the same machine it is recommended to set the Unique Identifier option based on the following naming schema.

Global\viz_out_<INSTANCE_ID>_00

For example the name of the shared memory endpoint of the first Viz Engine instance is Global\viz_out_01_00.

Note: The shared memory connection endpoint must be located in the Global namespace, otherwise the WebRTC Preview instance will not be able to connect to the shared memory endpoint.

Using the HTML Test Template to Preview the Video Output of a Viz Engine Instance

  1. Configure a Viz Engine instance as described in section Integration with Viz Engine.

  2. Open a web browser and navigate to the configuration page of the WebRTC Preview instance.

  3. Set the Shared Memory Name option in section Source Settings to the name of the shared memory endpoint of the Viz Engine instance to which the WebRTC Preview instance is supposed to connect to.
    Example: Global\viz_out_01_00

  4. In section Rest Service Settings select a Listening Address from the drop down menu.
    Example: [All interfaces]

  5. Set the Listening Port option in section Rest Service Settings to a port number that is currently not used by any other application running on the machine.
    Example: 11111

  6. Save the configuration changes and restart the WebRTC Preview instance.

  7. Open a web browser and navigate to the HTML test template page http://<Listening Address>:<Listening Port>.
    Example: http://localhost:11111

  8. Click on Connect.