Rotate and Seek Plugin

Updated: April 14, 2016

The "rotateplus" plugin has two features: Image/Video Rotation and Video Seek. BrightAuthor versions 4.3.0.x and later support presentation rotation natively, but only for 90-degree clockwise (i.e. portrait mode) orientation. Use the rotation features of this plugin in a Landscape presentation if you need need to rotate elements using another orientation.

Adding the plugin to your presentation

  1. Navigate to File > Presentation Properties > Autorun.
  2. Click Add Script Plugin.
  3. Locate and select the "rotateplus" .brs script downloaded from this FAQ.
  4. Ensure the plugin Name is specified as "custom".

The attached "addplugin" video shows how to add a generic plugin and send a plugin command. The second video, "rotate1video", shows how to use an event handler to send the rotate command before your video plays. 


  • Rotation is supported for images and videos.
  • Rotation is only supported on the HDx22, ,XDx30, XDx32, and 4Kx42 models. The HD220/1020 series and LS422 players do not support rotation.
  • Rotation is only supported using progressive output, so you can use 1920x1080x60p, but not 1920x1080x60i.
  • You can't rotate if you're outputting 4K.
  • Rotation takes effect when the image or video playback starts, so the rotation needs to be applied before entering the video state.
  • Be sure the presentation is created for Landscape orientation, not Portrait.  Clock and Ticker zones can be rotated in the Zone Properties.  Text in Live Text states can be rotated by setting the Text Parameters for the text item.

You can send the rotate command using either UDP or the Send -- Plugin Message command. Since the plugin supports plugin messages, you can attach the Send -- Plugin Message command to any file or event in your BrightAuthor project. 

To trigger a rotation, the Plugin Message or UDP command must be formatted as follows:



  • rotate!r90 -- Rotates video/images 90 degrees.
  • rotate!main!r90 - Rotates the video zone named "main" 90 degrees.

Rotation Parameters

  • norot -- no rotation
  • r90 -- 90 degree clockwise rotation
  • r180 -- 180 degree rotation
  • r270 -- 270 degree clockwise (90 degree anticlockwise) rotation
  • mirror -- horizontal mirror
  • m90 -- mirror and 90 degree clockwise rotation
  • m180 -- mirror and 180 degree rotation (a vertical reflection)
  • m270 -- mirror and 270 degree rotation (a transpose).


To trigger a seek, the Plugin Message or UDP command must be formatted as follows:


zone_name: The name of the Video Only or Video or Images zone containing the video you wish to perform seek on.

video_position: The position (in milliseconds) to seek to in the current video. The seek will not occur if the position is past the end of the video file.


  • seek!5000 - Jumps to the 5000 millisecond position in the video.
  • seek!mainzone!5000 - Jumps to 5000 milliseconds position in video in zone named "mainzone"


The "ticker" command lets you create a scrolling ticker. This feature is supported natively in BrightAuthor versions 4.1.1.x and later. The plugin has both an add string mode and an add file mode. The two can’t be mixed.

  • Ticker!scroll – Creates a new scrolling ticker that’s hidden. This uses the plugin default dimensions.
  • Ticker!show – Shows the ticker zone.
  • Ticker!hide – Hides the ticker zone.
  • Ticker!solid – Makes the ticker background solid black.
  • Ticker!transparent – Makes the background for the ticker zone disappear.
  • Ticker!scroll!x!y!width!height -- Creates a ticker with at coordinates "x" and y", with "width" and "height" dimensions. You cannot create a ticker that’s less than 20 pixels wide, and less than 20 pixels tall.

Note: There’s no support for changing text or background color currently.

Adding and Removing Text Strings

These commands assume the initial ticker!scroll command has been called:

1a. Ticker!Place your string here


1b. Ticker!Add!Your string here

Adds a string to your ticker as long as your aren’t in file mode. Each time you call it, it adds a string to the end.

2. Ticker!Replace!Your string here

Adds the latest string to the end, and removes the first string in the queue. So, if you have 5 strings scrolling, and call the replace command it bumps the oldest string and adds your newest string.

3. Ticker!clear 

Removes all strings from the ticker.


4a. Ticker!mymessage.txt


4b. Ticker!file!mymessage.txt

Adds the specified .txt file to the ticker (miscellaneous files can be added to a presentation using the File > Presentation Properties > Files tab). Since you can’t mix adding files and adding individual strings, the ticker zone is reset before the file is added. Once you add a text file, you can’t add individual strings again unless you call ticker!scroll to recreate the tickerzone.

Adding the plugin



Adding a Send -- Plugin Message command




  • 0

    it has been years that I used this plugin but I am still subscribed to this post. Do you use Constant Bit rate mode (CBR) and what bitrate are you using?


    Try using CBR and a low bitrate  (like 5000kb/s) first to get things working. Scale up from there. Also in my project i did use a low video profile 4.1.

    Other things to try

    Try using different video's do they work? Perhaps you have a older brightsign player model with older firmware that you can test.

    If you want to provide us with more info regarding the video use the tool MediaINFO and send us the output of the text view

    link https://mediaarea.net/nl/MediaInfo



  • 0
    Bas Drissen

    Hi there,

    Thanks Jaap for your comments.

    I have tried many options in videos, but found out how to increase accuracy in the Seek command usage.
    It depends with keyframes, the seek command only sends the video playback to a keyframe point.
    When I increase the keyframes per second, for example a 30fps video and render with keyframe per frames, then I can use the seek command with a resolution 0.1s. if 1 keyframe per 30 fps, the Seek comand accuracy is 1s.

    Another question here, I have a few setups with players used in Advanced Synchronization, but can't use the Seek command here. Any suggestions for use Seek Plugin command with Synchronized players?
    These setups only have 2 players to create a Stereo Video (3D-SBS), but tested it with the current plugin "rotateplus-tckv7", with unfortunately no luck. It only pauses the Master video for a split second and causes the videos to be out of sync.

    Many thanks in advance for a helpful suggestion. 

  • 0
    Giovanni Desramault


    I've just downloaded the plugin and it works great for images and video's. We are using it in a project where I need to rotate Live text coming from an RSS feed? Is there a way to mirror that also? 

    Just to give a sense to why I need it: the screens are in a fitness room white a mirror on the other side of the room. People are looking in the mirror to see the image and not directly in the screen. 

    Thanks a lot :)

  • 0

    @Giovanni - there isn't a mirror for Clock/Ticker/Live Text - roTextWidget only has rotation.  I would try using a HTML page to display the feed and mirror it with CSS.

    Friendly reminder, the community forum is intended for user-to-user discussion.  It is not regularly monitored. For troubleshooting problems and to ensure a timely answer from a BrightSign representative, please submit a support ticket

  • 0
    Giovanni Desramault

    Hi Brandon, thanks a lot. 

    The think is that the feed from the rss are al separate live text because they need to be triggered with udp. Are is there a way to see the output from bright sign in HTML? Are what do you meen?


  • 0


    I was thinking along the lines of having the player display a HTML page (HTML5 state) and have that page's code parse and display the RSS/MRSS.  Perhaps via one of the answers in https://stackoverflow.com/questions/10943544/how-to-parse-an-rss-feed-using-javascript

    So instead of changing between Live Text states, you'd be changing between HTML5 states instead.

    Remember that there isn't a default background for HTML pages on BrightSign players - it's transparent so the existing presentation elements (video/image/etc) will show through empty spaces in the page, or if there's nothing, you'll see presentation background color.

    Also remember that HTML content appears above all other content and you should set the HWZ z-index if you're playing video to specify whether video appears above/below graphics/text.
    See https://docs.brightsign.biz/display/DOC/HTML+Development for more details.

    Friendly reminder, the community forum is intended for user-to-user discussion.  It is not regularly monitored. For troubleshooting problems and to ensure a timely answer from a BrightSign representative, please submit a support ticket

  • 0
    Giovanni Desramault


    Ik will take a look at that. 

Please sign in to leave a comment.