Product icon Help book icon Video Mill : User's Guide

Performance and Limitations

Performance Tips

Program Warm-up

For snappiest performance at show time, we recommend you "Warm-up" the program prior to show time. Play a video at least a few seconds long. This will cause .Net to load all of the programs modules and codecs that are needed for video playback into RAM memory. Subsequent plays will start much faster because the modules are now resident in RAM.

For example, if your media is a set of MP4 videos, then create a 10 second MP4 as a warm up video and play it sometime prior to the performance. It can be as simple as a video of a black screen so the audience is not even aware that it's been played.

Use a Load Template Whenever Possible

When you play a video, a separate program window is created by the Windows OS. That takes a fraction of a second or so to create the window before the video can be played. A Load Template opens one window for a Media Screen, then reuses it for subsequent videos. Thus it avoids the delay of creating a new window everytime a video is played. So if you are playing every video on the same display and the same size (or full screen), it is more efficient to use a basic Load Template.

Disable Anti-Virus and/or Firewall

You may get a quicker video start by disabling your anti-virus (AV) program during shows. AV may be scanning the video file before it allow the program to open it. The same may be true of your firewall if you are playing Web streaming videos.

Close Unnecessary Programs

Every running program takes up RAM memory and some may cause periodic wake-ups that could drain CPU cycles. Close any programs and unneeded services that you aren't currently using.

GPU Hardware

Video Mill will use computer GPU Hardware (graphics processing unit) capabilities when the video codec allows it. So it is dependent on the format of the video and the codec used to render that format. Video Mill uses the .Net WPF MediaElement as a video rendering element (WPF: Windows Presentation Foundation). Check your GPU Hardware user guide to see if it offers tweaks for the WPF MediaElement. The GPU may also offer WPF Graphics Rendering Tiers tweaks.

Benchmarking Performance

There are many things that will affect performance: CPU speed and number of cores, hard disk seek/read speed, system bus speed, RAM memory speed, gigabytes of RAM, operating system version, OS services running, other programs running such as antivirus, and more.

Just loading and playing a few videos simultaneously can be easily done on a very modest performance computer. When loading a large number of screens simultaneously, performance may become a key consideration.

Benchmarking Methodology

Our recommended testing method is to open the Windows Task Manager by right mouse-click on the Windows Task Bar. Click on the Performance tab. Shut down all unused programs so that they don't throttle the CPU while testing. Take note of the average system idle CPU Utilization (typically 1-3%). Now Play a video on a test monitor and note the CPU Utilization. There will a spike as the video Load takes place. Play more videos simultaneously to see how they add to overall performance. When you reach 85-90% CPU Utilization that will tell you the limit on how many videos the computer can play simultaneously.

In Figure 1, our mid-range lab test machine (i5 2.5Ghz CPU) show about 10% CPU Utilization playing one 720p HD video on a 1080p display.

Figure 1. Benchmarking Performance with Task Manager
Figure 1. Benchmarking Performance with Task Manager

Image Sizes

Recommendation: When creating images (png, jpg, etc.) with your photo editor, size them close to your display size. Images somewhat larger than the display screen size can be used. But images that are very much larger *may* affect performance.

Video Mill will automatically scale videos and images up/down to fit the Media Screen dimensions (or Full Screen display size). But if the Media Natural Size (width, height) is far larger than the display size, it will cause unnecessary memory usage and CPU processing resulting in slower load time. There is no benefit to creating media that is far larger than the display size. The audience will only see the media at the display's resolution, regardless of the media's natural resolution.

For example, images that are originally created for print media posters may be far too large for rendering on a digital display. They should be resized using a photo editor to the shrink size down close to display size (and thus reduce number of pixels). A customer reported receiving a large size event poster {Width=14400, Height=21600}, an image 20 times the height of a 1080P screen. When this image is played in Video Mill, it uses a memory buffer of 302 Mb (Mega bytes) of RAM. When the image is resized with a photo editor to match a 1080P display {Width=1920, Height=1080}, it will use only 2Mb of RAM. And all these extra pixels tax the computer CPU processing power.

Streaming Media

No HTTPS Links

No Guarantee

Video Mill has enabled the ability to add streaming media URIs (Web links). However, there is no guarantee that streams will operate exactly as Video Mill functions are specified to work. And you will likely find some streams that will not Load at all. More on that below.

Limited Function

Streaming media is limited in terms of program features that will work. If the stream is well behaved (see Streaming Media Consistency section below), these Play Control buttons should work: Play, Stop, Pause, Resume . There are additional features in the Play Modifiers that may work depending on the media format. And some features such as Pause / Resume may behave differently based on the stream format.

Streaming Media Consistency

Stream behavior and functionality is very much hit or miss. Not all stream formats are created equal. That means that Stop/Pause/Resume may not behave the same way for different formats. Some stream formats will pause the stream feed and resume at the point it was pause -- not dropping any content. Other formats may simply drop any content that streams by while paused.

In fact we found one test stream that did not even respond to the Stop button -- that Stream was stopped by unloading the Media Screen. Apple formats were especially ill-behaved in our testing -- not surprizing since our media drivers are Windows based.

Load Times

Load time will depend on multiple factors: Your computer's Internet bandwidth; The streaming media server's current user load (number of people hitting their server at a given time); media server's speed; and more. We also found some streams took two or three attempts to load -- simply by clicking Unload , then Load again.

Automation Issues

If you Play streaming media with a Script Step, it will likely prevent further Steps from executing since a stream has no end. And even if it does end, there is no guarentee that it will report Media Ended back to Video Mill . Our recommendation is to avoid streaming media in Automation Scripts.

Notable Feature Limitations
    Key feature limitations of streaming media.
  • Play Position Scrubber Track bar - The scrubber bar does not work for all streams. It depends on the stream format characteristics.
  • Play Modifiers - Only a few of the Media Item Play Modifiers will work with streams. And the ones that do work depend on how well behaved the stream is. These Play Modifiers worked in our testing: Pre-Delay, End-At Marker (but not Start-At Marker). You'll just have to test to see if a Play Modifier will work for a given stream.


The following are limits and exceptions to normal operating behavior as described in the Help document.

  • Video file size limit - In our testing, we successfully loaded video files of over 1 Gigabyte -- full length feature films. File size limit will depend on your computer configuration, mostly a factor of total available RAM (system memory). If a file fails to load, try shutting down unused computer services that are occupying memory. Or try converting to a format that compresses the video.