Skip to main content

Graphics Engine

The ErsatzTV graphics engine is used to overlay custom graphics elements (images and text) on top of the primary content with a high degree of control and customization.

Graphics Element Definitions​

Graphics elements are defined in YAML files located in the ErsatzTV config folder / templates / graphics-elements subfolder. Each element type also has its own subfolder: Images in image, text in text, subtitles in subtitle and motion in motion. ErsatzTV will automatically create these (empty) folders on startup.

All element definitions are pre-processed using Scriban templates.

Image Elements​

Image elements are used to draw images, similar to watermarks but without the need to configure using the UI.

opacity_percent: 100

location: "BottomLeft"
horizontal_margin_percent: 5
vertical_margin_percent: 5

z_index: 1

scale: true
scale_width_percent: 15

image: "/home/user/Pictures/watermark.gif"

Text Elements​

Text elements are used to draw text, and support dynamic text using Scriban templates and variables.

opacity_percent: 100

location: "BottomLeft"
horizontal_margin_percent: 5
vertical_margin_percent: 5

z_index: 2

styles:
- name: "style1"
font_family: "OPTIKabel-Heavy"
font_size: 48
text_color: "#FFFFFF"
#font_weight: 800
#font_italic: true
#letter_spacing: 20

base_style: "style1"

# optionally include fonts from a specific folder
include_fonts_from: "/home/user/fonts"

# optionally include data from epg entries for text replacement
epg_entries: 0

text: |
One Line Of Text
Two Lines Of Text

Subtitle Elements​

Subtitle elements are used to draw subtitles, and support dynamic subtitles using Scriban templates and variables.

z_index: 3

# optionally include data from epg entries for text replacement
epg_entries: 0

template: "/home/user/subtitles.ass"

Motion Elements​

Motion elements are used to draw video (transparent or opaque).

video_path: /home/user/Videos/motion1.webm

location: TopLeft
horizontal_margin_percent: 5
vertical_margin_percent: 5

scale: true
scale_width_percent: 25

start_seconds: {{ MediaItem_Duration.TotalSeconds - 5 }}

end_behavior: loop

z_index: 1

Using Graphics Elements​

Classic Schedules​

Graphics elements can be enabled on individual schedule items.

Block Schedules​

Graphics elements can be enabled on individual block items and on decos.

Sequential Schedules​

Graphics elements can be turned on and off using the Sequential Playout Instructions Graphics On and Graphics Off.

Scripted Schedules​

Graphics elements can be turned on and off using graphics_on and graphics_off API calls.

Troubleshooting​

Multiple graphics elements can be selected for immediate testing in the playback troubleshooting tool.