Service Host Administrator Guide
Version 1.5 | Published December 04, 2020 ©
WebRTC Preview
This Administrator Guide gives details on how to install, configure and operate the Vizrt 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.
For a list of supported GPUs, please refer to the official NVidia Documentation.
Important: WebRTC Preview fails to start if a DCH driver is in use. Please install the Standard version of the nVidia driver.
Installing, Registering and Removing WebRTC Preview
WebRTC Preview runs as a plug-in of Service Host. WebRTC Preview cannot operate without Service Host. For this reason, the installation of WebRTC Preview consists of the following parts:
-
Running the Service Host Setup Wizard.
-
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 the Vizrt 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.
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 plug-in page via the context menu of a plug-in 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:
Plug-in Configuration Section
From the Plug-in 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 connects 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.
-
Container and Core: Specifies the license container and core license to use.
Info: For WebRTC Preview, a Service Host Core license is required.
Note: In the Container and Core selection compatible licenses are searched and shown. This depends on the CodeMeter configuration. If a license with share mode exclusive is already allocated on this host then it is listed, even if it is not compatible (e.g. Viz Engine combination feature). The reason is that the license is locked for any other processes on this host and cannot be queried for license details, thus listed by default.
-
License: Selects the license feature a user must acquire to enable WebRTC Preview. This can be either:
-
Combination Feature: Uses the combination feature license of Viz Engine.
-
Allocates the Viz Engine Combination Feature (1200100, ENG_CF) and Combination Feature MezzIP (1200105, ENG_CF_MEZZIP).
Note: These licenses are exclusive and can only be allocated once per host.
-
-
MezzIP OUT Upgrade (max): Uses the Mezzanine Out Upgrade feature of Viz Engine.
-
Allocates the Viz Engine MezzIP OUT Upgrade (max) license (1200302, ENG_OUT_MEZZIP_MAX).
-
-
-
4K Video Enablement: Allows output of video resolutions higher than 2K, up to 4K (optional feature).
-
Allocates the Viz Engine MezzIP OUT Upgrade (max) license (1200302, ENG_OUT_MEZZIP_MAX).
-
Some licenses are the same as for Viz Engine and can be shared with Viz Engine when used on the same machine (1200302, 1200400).
OEM licenses contain the features listed above in a single license, which means only the core license may be sufficient. When using an OEM license, set the other configuration options to No additional license for License and 4K Video Enablement. If they are allocated, an error occurs as those licenses require the Service Host Core.
Service Host Settings
From the Service Host Section, you can specific command arguments to pass to a plug-in 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
-
Open Viz Configuration.
-
Click on Video Output.
-
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
-
Open Viz Configuration.
-
Click on Video Board.
-
Set the Check Video Card option to None.
-
Set the Software I/O Mode option to SHM Channels.
-
Click on Video Output: SHM Output.
-
Select SHMOut 1.
-
Set the Shared Memory Output option to Active.
-
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 is not able to connect to the shared memory endpoint.
Using the HTML Test Template to Preview the Video Output of a Viz Engine Instance
-
Configure a Viz Engine instance as described in section Integration with Viz Engine.
-
Open a web browser and navigate to the configuration page of the WebRTC Preview instance.
-
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
-
In section Rest Service Settings select a Listening Address from the drop down menu. Example: [All interfaces]
-
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
-
Save the configuration changes and restart the WebRTC Preview instance.
-
Open a web browser and navigate to the HTML test template page http://<Listening Address>:<Listening Port>. Example: http://localhost:11111
-
Click on Connect.