RemoteGUI¶
The RemoteGUI sample is here to provide live, visual, and interactive information about your program. It is currently supported by GVEncode, Composed, and the SDK. For now, the user interaction is limited to closing and moving information rectangles, as well as toggling some config settings.
Encoding¶
The encoding service interface exposes feedback from various filters, each with such info as their respective time, latency, number of frames, etc.
Composition¶
The composition service interface exposes information about its stream bus such as the fps, as well as feedback about the sources connected to its frontend.
SDK¶
As of now, the SDK integration is focused on providing configuration information. You can find standard info there about the different streams (ID, framerate, granularity, etc.). A debug console is supplied with settings you can toggle. There are also sections for events and commands, although they are currently not active.
Information¶
The information tab is found at the far right of the SDK tabs.
It provides information on the streams as they are sent by the SDK.
name | description |
---|---|
FPS | The number of frames per seconds. |
Sent | The number of frames that were sent. |
Duplicated | The number of extra frames that were sent to keep the expected rate up. |
Missed | The number of frames that were sent as missing due to lack of available data. |
Input quality | An indication of how well the data is submitted to the SDK. |
Usage¶
For local applications, you can simply load the sample to your cluster.
py remotegui.py load
For cloud clusters, you’ll need to build the docker image and upload it to your s3 bucket.
py remotegui.py build-cloud
py remotegui.py -c {clustername} upload-images --update-config
py remotegui.py -c {clustername} load
You will then have access to the following links: COMPOSITION GUI, ENCODING GUI, and SDK GUI.
If you want to add the RemoteGUI SDK integration to your game, simply open a port and service for it in your Nomad template. Nomad passes the allocated address to the C++ program via environment variables, so the port name has to be sdkgui for it to be recognized. The service name can vary as long as you match it in your link declaration. You can find examples by looking at the configs and templates of any of the cube samples.