You are using an unsupported browser. Please update your browser to the latest version on or before July 31, 2020.
close
You are viewing the article in preview mode. It is not live at the moment.
Support will be closed on Juneteenth: June 19th. Normal hours resume June 20th.
Home > Tiling Transmitter > 3G Ultra Tiling Transmitter > Ultra Series Tiling Encoder Control System API
Ultra Series Tiling Encoder Control System API
print icon

Overview

The Ultra Series Tiling Encoder gives any Just Add Power system the ability to mix four video sources from any Encoder and combine those into a new, unique, compiled video source that can be viewed by any Decoder in the matrix.

A Tiling Encoder consists of four 3G Decoders, and one 3G Encoder in a 1RU rackmount. Mounting it in the rack allows the 5 network ports to be connected directly to the core Ethernet switch. Each Decoder and Encoder has its own IP address, resulting in 5 IP addresses assigned to the Tiling Encoder.

Like any standalone Decoder, the Decoders in the Tiling Encoder can watch any source in the system. The Tiling Encoder can then be shown on any display in the system.

A single Tiling Encoder can show up to four video sources on any Decoder. Two Tiling Encoders working together can show up to 7 video sources on any Encoder. Continuing this pattern: each additional Tiling Encoder adds 3 video sources that can be viewed on any Decoder.


Video Specifications

Input Video Resolutions

The Tiling Encoder accepts any video format compatible with the 3G System.

Output Video Resolutions

Regardless of the input video resolution, the compiled output video resolution is only available in two formats:

  • 1920x1080@60fps (1080p)
  • 3840x2160@30fps (2160p)

Output video resolution depends on the video layout. Some layouts are only available in 1080p.


Audio Specifications

Input Audio Format

The Tiling Encoder can only process 2-channel audio. Any input audio signal with more than 2 channels will produce no sound on output.

  • Stereo audio (2-channel)

Output Audio Format

The Tiling Encoder will output 2-channel audio as long as the input audio signal is also 2-channel audio.

There are 4 audio inputs, but only one audio input can be played at a time. The active audio input can be selected via push buttons or driver commands.


Physical Buttons

The push-buttons on the port-side of the Tiling Encoder will change layouts and cycle through audio and video.

  • PF1: Tap to disable Tiling and go to single-screen. Hold until TX Data Light blinks to disable HDMI output (mandatory during system configuration)
  • PF2: Tap to cycle through Primary Audio
  • PF3: Tap to cycle through Video Layouts
  • PF4: Tap to cycle through Primary Video
  • Audio Delay Up/Down: change the analog audio delay. Only affects the analog Stereo port
  • Audio Volume Up/Down: change the analog audio volume. Only affects the analog Stereo port

Sending Commands

A single Tiling Encoder will have 5 IP addresses: 4 for the Decoders and 1 for the Encoder.

All functions that affect the layout of the Tiling Encoder must be sent to the IP address of the Encoder.

All commands are case-sensitive, must be ended with a carriage-return (\r), and variables are indicated with a dollar-sign {$X}

When building a layout, the Decoder that is assigned as the Primary Video is important, as all other Decoder assignments are determined from the Primary Video. For this reason, the API uses the term Channel when referring to layout positioning. The Decoder selected as Primary Video will always be Channel 1. Channels 2-4 are assigned in order from there. See the table below:

When Primary Video is... --> ...Decoder 1... ...Decoder 2... ...Decoder 3... ...Decoder 4...
...Channel 1 is --> Decoder 1 Decoder 2 Decoder 3 Decoder 4
...Channel 2 is --> Decoder 2 Decoder 3 Decoder 4 Decoder 1
...Channel 3 is --> Decoder 3 Decoder 4 Decoder 1 Decoder 2
...Channel 4 is --> Decoder 4 Decoder 1 Decoder 2 Decoder 3

In most situations, it is recommended that you set Primary Video to Decoder 1 so that Decoder and Channel numbers are the same.


Standard API

Standard Tiling API allows a programmer to choose a pre-built layout, set video ordering, set audio, and set simple settings.

Standard API: Set Layout

Sets one of 4 pre-built video layouts

Command: _4in1_layout.sh $X

$X = 1, 2, 3, or 4

$X = Layout Example
2 _4in1_layout.sh 2
3 _4in1_layout.sh 3
4 _4in1_layout.sh 4

Standard API: Set Primary Video

Set which input Decoder will be Channel 1. Default is DEC1. Primary Video is indicated on the hardware by a blue light. Primary Video determines the positioning of all other Decoders in the layout.

Command: _4in1_primary_video.sh $X

$X = 1-4, where $X is the Decoder that will be set to Channel 1

Example: _4in1_primary_video.sh 1


Set Audio Source

Set the Channel that will play audio. Only one audio signal can play at a time. Primary Audio is indicated on the hardware by an orange light.

Command: _4in1_primary_audio.sh $X

$X = 1-4, where $X is the Channel to play audio for

Example: _4in1_primary_audio.sh 2


Custom API

Custom API allows a programmer to build a custom layout with up to 4 videos in any size, position, and layering. Custom layouts are always output at 1080p.

Custom API: Command Variables

Set the position, size, and layering for each of the four Channels to build a custom layout.

Command: p4p.sh [layer:$L] [ch$X] [hpos:$H] [vpos:$V] [width:$W] [height:$H]

Options: Each item in [brackets] is an Option (do not type the bracket in the command). Only enter the Options that must change. When building a full layout, all Options should be entered.

  • layer:$L
    • When Channels overlap, sets which Channel is on top. Unnecessary if video does not overlap.
    • $L = a 4-digit code consisting of 1, 2, 3, 4.
    • Examples:
      • p4p.sh layer:1234
      • p4p.sh layer:4231
  • ch$X
    • Select the Channel that the following hpos, vpos, width, and height commands will modify. Positioning Options may be entered in any order as long as they follow this command
    • $X = 1, 2, 3, or 4
    • All Channels can be modified in a single command by listing sizing for all 4 channels
  • hpos:$H
    • Set the horizontal pixel position of the top-left corner of the Channel. Left-most pixel is 0, right-most pixel is 1920
    • Must be preceded by a Channel selection
  • vpos:$V
    • Set the vertical pixel position of the top-left corner of the Channel. Top-most pixel is 0, bottom-most pixel is 1080
    • Must be preceded by a Channel selection
  • width:$W
    • Set the horizontal pixel width of the Channel. hpos + width cannot exceed 1920
    • Must be preceded by a Channel selection
  • height:$H
    • Set the vertical pixel height of the Channel. vpos + height cannot exceed 1080
    • Must be preceded by a Channel selection
  • Examples:
    • p4p.sh ch1 hpos:0 vpos:180 width:1280 height:720
    • p4p.sh ch2 hpos:1280 vpos:0 width:640 height:360
    • p4p.sh ch3 hpos:1280 vpos:360 width:640 height:360
    • p4p.sh ch4 hpos:1280 vpos:720 width:640 height:360
    • p4p.sh ch1 hpos:0 vpos:180 width:1280 height:720 ch2 hpos:1280 vpos:0 width:640 height:360 ch3 hpos:1280 vpos:360 width:640 height:360 ch4 hpos:1280 vpos:720 width:640 height:360

Custom API: Sample Layouts

Copy+paste the code below to build the layout pictured. Code looks like this.

 

Layout Code
p4p.sh ch1 hpos:0 vpos:180 width:1280 height:720 ch2 hpos:1280 vpos:0 width:640 height:360 ch3 hpos:1280 vpos:360 width:640 height:360 ch4 hpos:1280 vpos:720 width:640 height:360
p4p.sh ch1 hpos:640 vpos:180 width:1280 height:720 ch2 hpos:0 vpos:0 width:640 height:360 ch3 hpos:0 vpos:360 width:640 height:360 ch4 hpos:0 vpos:720 width:640 height:360
p4p.sh ch1 hpos:320 vpos:0 width:1280 height:720 ch2 hpos:0 vpos:720 width:640 height:360 ch3 hpos:640 vpos:720 width:640 height:360 ch4 hpos:1280 vpos:720 width:640 height:360
p4p.sh ch1 hpos:320 vpos:360 width:1280 height:720 ch2 hpos:0 vpos:0 width:640 height:360 ch3 hpos:640 vpos:0 width:640 height:360 ch4 hpos:1280 vpos:0 width:640 height:360
p4p.sh layer:2134 ch2 hpos:1280 vpos:720 width:640 height:360 ch1 hpos:0 vpos:0 width:1920 height:1080
p4p.sh layer:2134 ch2 hpos:0 vpos:720 width:640 height:360 ch1 hpos:0 vpos:0 width:1920 height:1080
p4p.sh layer:2134 ch2 hpos:1280 vpos:0 width:640 height:360 ch1 hpos:0 vpos:0 width:1920 height:1080
p4p.sh layer:2134 ch2 hpos:0 vpos:0 width:640 height:360 ch1 hpos:0 vpos:0 width:1920 height:1080
p4p.sh layer:1234 ch1 hpos:0 vpos:0 width:1920 height:980 ch2 hpos:0 vpos:0 width:1920 height:1080
p4p.sh layer:1234 ch1 hpos:0 vpos:0 width:1920 height:880 ch2 hpos:0 vpos:0 width:1920 height:980 ch3 hpos:0 vpos:0 width:1920 height:1080
p4p.sh ch1 hpos:0 vpos:0 width:640 height:1080 ch2 hpos:640 vpos:0 width:640 height:1080 ch3 hpos:1280 vpos:0 width:640 height:1080 ch4 hpos:0 vpos:0 width:0 height:0
p4p.sh ch1 hpos:384 vpos:216 width:1152 height:648 ch2 hpos:0 vpos:0 width:1920 height:1080 layer:1234
p4p.sh layer:2314 ch1 hpos:0 vpos:0 width:1920 height:1080 ch2 hpos:80 vpos:315 width:800 height:450 ch3 hpos:1040 vpos:315 width:800 height:450
p4p.sh ch1 hpos:0 vpos:270 width:960 height:540 ch2 hpos:960 vpos:270 width:960 height:540 ch3 hpos:0 vpos:0 width:0 height:0 ch4 hpos:0 vpos:0 width:0 height:0
p4p.sh ch1 hpos:0 vpos:0 width:960 height:540 ch2 hpos:960 vpos:0 width:960 height:540 ch3 hpos:480 vpos:540 width:960 height:540 ch4 hpos:0 vpos:0 width:0 height:0
scroll to top icon