Viewport

From ETC Public Wiki
Jump to: navigation, search

Overview

The bridge video wall is a software-based video player with master-slave network synchronization and video overlay capabilities. It is designed to render video content spanning one or more displays while keeping the displays in rough synchronization with the designated master. The application is controlled via network based OSC messages and can therefore be controlled by any application capable of sending the OSC protocol.

Software

The primary video player application is known as Viewport and is currently on version 3.0. It is a Windows Presentation Foundation (WPF) application written in C# and compiled in Visual Studio 2010. Panda/Python applications can communicate with Viewport via the provided HelmControl library. There is an interactive command line program called Console which can be used for testing purposes.

Features

Multiple Layers

This latest version of Viewport, (Viewport3) gives us the ability to overlay in a foreground layer, have blast doors in a middle layer, and have the space animations in the background layer.

Foreground Transparency

The foreground layer can be used for welcomes, or other fun little things like a tiny robot cleaning space gunk off the windows. The foreground layer has an alpha channel applied, so anything that is pure black will become transparent.

Known Issues

Restart

Viewport3 doesn't seem to work when the machines are restarting overnight.

The solution has been to add a delay, because on the individual machines Viewport is starting and running itself, before it can get the message of what to play. So when it opens and doesn't know what to do right away, it hangs on the "Viewport Initialized" state.

Adding welcomes

When adding welcomes to the bridge, this changes the core functionality. Now all 6 stations are no longer playing all the same video. Now stations 2 and 5 will never see the space scene, they will only see the closed blast doors and the welcome movie. This is done by changing the TV Playlist. But just changing the playlist is not enough. If this is done, Viewport on those tv's will hang on the "Viewport Initialized" state.

You have to go to the brainbox and look for the little grey window called "Panda" (yes this has changed, but I'm not 100% what it was changed to. It has buttons that say "OpenBD" "CloseBD" etc. You need to click on Close VP. This closes the Viewports on all of the Stations. But since the stations are automated, they will see that Viewport if closed and re-open it. Once you see the machines start reading that it's open, click on the "Restart" Button.

Stuttering Video

There has been ongoing investigation into this issue, the variables investigated so far are:

  • Compression CODEC - H.264, MS-MPEG4, VC-1
  • File format - AVI, MP4, WMV
  • VNC screen mirror driver
  • Phidget events
  • Presence of a soundtrack or not.
  • Frame rate

One puzzling piece has been that Big Buck Bunny has always played successfully regardless of what system it was tested on and regardless of whether it was the H.264 or MS-MPEG4 version. One thing to note was that BBB is encoded at 24fps, not 30, and includes a soundtrack. According to Programming Microsoft DirectShow For Digital Video and Television (Microsoft Press, 2009), the audio clock is the preferred multimedia timing clock as it is generally the most reliable and accurate, however, under most circumstances it is not added to the filter graph (the chain of software nodes used to process multimedia) unless the media contains and audio track.

There has been no visible stutter since Viewport3.

Update 01-APR-2011

Tests of VC-1 encoded WMV files on the ETC-WIN7-BRIDGE test machine yielded very poor performance. After turning off DirectX Video Acceleration for WMV files (DXVA) in Windows Media Player, performance improved dramatically. Further investigation reveals that there are known issues with DXVA and ATI drivers, especially with 4000 series cards like the one used on the Bridge machines. More tests required.

This issue has changed since the Video Cards were replaced (with nVIDIA ones), though testing VC-1 WMV files has not been re-attempted.

Update 12-DEC-2011

Currently working on pipeline for for encoding compatible VC-1 WMV files from Adobe After Effects. Settings

Render Settings: Best Settings
Output Module: Custom
Format: Windows Media
Format Options...
Preset: Custom
Video Codec: Windows Media Video 9 Advanced Profile
Bitrate Mode: Variable Quality
Frames Per Second: 30
Pixel Aspect Ratio: Square Pixel (1.0)
VBR Quality: 75
Key Frame Interval: 1

This has not been tested with Viewport 3, for the best known method for rendering see:

Bottom-most Window

Viewport will start it self up as the bottommost window and ignores mouse click attempts to bring it to the front. The window can still be brought to the front via ALT+TAB or clicking on the Viewport icon on the Task Bar. If this proves to be an issue, additional workarounds will need to be found. The window will always return to the background on a change to the maximized state. To force the window to the background again, simply minimize then maximize.

This issue has been fixed with the latest Viewport update.