Skip to main content

mtv

The mtv command creates, edits, and routes MultiView configurations.

Command TypeDisplayNet
Minimum Version3.x.x

Usage

mtv list
mtv create <config_name> [<assignment>...]
mtv assign <config_name> <assignment>...
mtv connect <config_name> <target>[,<target>...] [stopstreams | preservestreams]
mtv rename <config_name> <new_name>
mtv delete <config_name>

Subcommands

SubcommandDescription
list (alias refresh)Returns the existing multiview configurations
createCreates a configuration; accepts the same assignments as assign
assignAssigns a layout, sources, and settings to a configuration. See Assignments
connect (alias join)Routes a configuration to receiver(s). See Connecting
renameRenames a configuration
deleteDeletes a configuration

Configuration names are case-insensitive; replace spaces with underscores.

Assignments

Assignments can be stacked in a single create or assign command:

mtv create NewConfig layout TwoByTwoLayout surface 12 6cdffb00387f 0 0 surface 13 341b22f00183 0 0
AssignmentSyntaxDescription
layoutlayout <layout_name>Sets the configuration's layout
surfacesurface <target_surface> <mac> <width> <height>Assigns a source to a surface. See Surface assignment
frc (alias framerateconverter)frc <window_number> <true | false>Enables the frame rate converter for a window. The receiver halves the frame rate of the secondary scaler stream to save bandwidth
controllablecontrollable <true | false>Marks the configuration's surfaces as controllable by KVM cursor routing
ovl.*ovl.<property> <value>Per-configuration overlay settings: ovl.state, ovl.fontname, ovl.fontsize, ovl.color, ovl.backgroundcolor, ovl.transparency, ovl.backgroundtransparency, ovl.scaling, ovl.position, ovl.timeout, ovl.positionrotation, ovl.overlaytext

Surface assignment

mtv assign MyConfig layout MyLayout surface 12 6cdffb00387f 0 0

Several surfaces may be assigned in one command:

mtv assign MyConfig layout MyLayout surface 12 6cdffb011b0f 0 0 surface 13 341b22f00183 0 0 surface 14 6cdffb016d55 0 0
Surface assignment rules
  • The surface number is the target_surface value from the layout's window definitions, not the window index. Use layout descriptions to find the correct numbers.
  • Devices must be referenced by MAC address; device names are not supported here.
  • The layout <name> argument is required when assigning surfaces.
  • Each source can appear in only one window per configuration.
  • The <width> <height> parameters are typically 0 0.

Connecting

mtv connect TwoByTwo MainMonitor

target is the hostname or MAC address of the receiving device. An optional trailing keyword controls what happens to the source streams of the previous route:

OptionBehavior
stopstreams (alias stophdmistreams)Force-stops the previous HDMI streams
preservestreams (alias preservehdmistreams)Leaves the previous HDMI streams running

Return value

mtv delete MyMultiViewConfig
{
"status": "SUCCESS",
"request_id": null,
"result": null,
"error": null
}

State and side effects

  • DisplayNet allocates the surfaces and tracks window state. The layout, which source occupies which window, and the z-order are DisplayNet's records. Driving the receiver's layout with a raw SDVoE set changes the picture without updating those records, so the configuration can no longer be restored or reproduced.
  • Sources join through their scaled stream, so a source needs a SCALER node to appear in a MultiView.
  • The composed output runs at a fixed 60 fps. The frame rate of a MultiView is not currently configurable.

Notifications

In async mode, a DN_NOTIFICATION is sent whenever a configuration is added, updated, deleted, or renamed:

Result objectContains
mtvconfig_updateThe changed configuration descriptions
mtvconfig_deleteThe deleted configuration names
mtvconfig_renameObjects with oldname and newname
mtv create New_Config_1 layout MyLayout
{
"status": "DN_NOTIFICATION",
"request_id": null,
"result": {
"mtvconfig_update": [
{
"MtvConfigurationId": 43,
"name": "New_Config_1",
"layout": "MyLayout",
"resolution": "3840x2160@60",
"surfaces": [],
"overlays": [
{
"MtvConfigurationOverlayId": 36,
"Scope": "config",
"surface": -1,
"State": "off",
"Fontname": "DejaVu Sans",
"Fontsize": "30",
"Color": "ffffff",
"BackgroundColor": "000000",
"Transparency": "25",
"BackgroundTransparency": "80",
"Scaling": "NORMAL",
"Position": "BOTTOM_CENTER",
"Timeout": "0",
"PositionRotation": "false",
"OverlayText": "DEVICE_NAME"
}
],
"connectedDevices": []
}
]
},
"error": null
}

REST API

Endpoint typeDisplayNet API command
AddressPOST /api/displaynet/<operation>, or name the operation in the body of a POST /api/displaynet. See Sending commands.
RoleUser
SubcommandOperationParameters
assignmtv_assignconfig [assignments]*
connectmtv_connectconfig targets [option]
createmtv_createname [settings]*
deletemtv_deletename
listmtv_list
renamemtv_renamename new_name

A parameter in brackets is optional. A parameter marked * takes the remainder of the command line as one string. Pass the text exactly as you would type it on the TCI interface.

See also

  • layout: define the layouts configurations are built on
  • disconnect: disconnect mtv <receiver> exits a multiview
  • set scaler: the scaled-stream resolution used by multiview sources