Robotic Camera Follow – SoloShot, Swivl, AIMe

May 29, 2014

Most of the live video projects I do includes a primary close-up camera tasked with following the key talent.

The skill involved in this is task is very simple.  It just requires someone to be attentive, panning the camera side-to-side as the presenter moves around.  It would be great to automate this basic motion.

Three companies have released products that do just that: SoloShot, JigaBot’s AIMe. Read the rest of this entry »

WUI for Computer Appliances

May 28, 2014

I’ve recently been working on a couple programming projects that utilize the RaspberryPi computer.

It’s a tiny cheap computer with a network port, usb ports, HDMI output, and an SD card.  With the right peripherals (mouse, keyboard, monitor), it can function like a normal computer.  But, it also works well as a programable “brain” for projects that utilize those interconnects.

For both of these projects, the “computer” works behind the scenes.  If the project is designed and implemented well, the user won’t even know there’s a computer involved.  These projects have been more like designing an appliance than an application.  The user doesn’t really know there’s a computer doing any work.

The problem with a Computer Appliance is you occasionally need a more typical user interface to make adjustments to settings.  I decided to explore providing a web interface to make these adjustments.

Here’s some of the options I found for creating a WUI — web user interface — for an embedded project:


  • Qt Framework version 4.x – The projects this interface was needed for both were built on the Qt framework.  Version 4.8, though old, is the current default for the Raspbian linux install on the Raspberry Pi.
  • Needs to provide a web server, not a client.
  • Serves webpages and dynamic content.

Here’s what I found:

  1. HTTP Server Demo
    1. Would need to extend this to provide dynamic content.
  2. QtWebApp – Best option for truly highly dynamic content.
  3. Pillow
  4. QHttpServer – Best option for simple embedded web service
  5. QXServlet
  6. QXT Web Module
  7. QtWebSocket
  8. QtWUI
  9. Tufao 0.x Branch
  10. QServe
  11. Node-Qt
  12. QWebSockets / QtWebSockets
  13. QtWebKit-Bridge
  14. QWebsocket
  15. Wt
  16. sj-http-server
  17. QWebClient
  18. Cutelyst

Bonjour? mDNS/mDNSd? Rendezvous? ZeroConf?

May 28, 2014

ZeroConf is when a networked devices automatically configure itself on a network with the user doing zero configuration.  Bonjour is Apple’s implementation of it, which was formerly known as Rendezvous.  mDNS/mDNSd is the system name for the program.  See also: or

ZeroConf deals with three network concepts:

  1. Network Address Selection (“.local”/Link-Local Addressing)
  2. Computer Name Address Translation (Multicast DNS)
  3. Service Discovery and Broadcasting (DNS Service Discovery)

Ultimately, I’m interested in the third category — finding computers on the network that provide a service such as an SSH Remote Login, ProPresenter Text Stream, etc.; or, for alerting computers on the network to what services my device is providing. Read the rest of this entry »

Perl Grading

April 3, 2014

Our file server has a folder into which students “Hand In” files by dropping completed assignments into.  Within this folder, I move files into a folder for each assignment.  Any files not in a folder are new, and still need to be graded.

To prevent students from copying another students assignment, the Hand In folder is write-only.

The down side to this Read the rest of this entry »

CMYK vs RGB vs YUV vs 422 Color Images

February 8, 2014

If you’ve ever replaced the ink or toner in a color printer, you know the three colors Cyan, Yellow, and Magenta are used in various combinations to print any color.  On your computer screen it’s mixtures of Red, Green, and Blue.

Each tiny dot in a picture, called a pixel, has three numbers: How much red, how much green, and how much blue get mixed together to form the color of that specific pixel.  Typically the amount of each color is stored as a number ranging from 0 to 255.

On a computer, a picture is really just a whole lot of numbers representing the reds, greens, and blues of every dot in the picture.

Then, along came digital video… Read the rest of this entry »

Cable Management

February 3, 2014


For bundles of cable that won’t be let go again, we’ve used zip ties.

If a long cable is wound up, and likely to be unwound and rewound again, we have the reusable velcro ties.

Parallel runs of cable in the studio we hold together with translucent cable wrap.

But there is no simple solution for the cornucopia of usb, hdmi, sdi, network, and power cables strung to and from the various control room stations and the studio.

Typically the rat’s nest of cables goes unnoticed.  But, when something needs to be changed, or worse, when something stops working, ignorance quickly turns to frustration.

Read the rest of this entry »

ProPresenter Text Stream

January 29, 2014
Continuation of Part 1 – Poor Man’s Lyric Overlay

There is a significant limitation to the “Poor Man’s” Lyric Overlay discussed earlier.  When the lyric overlay is enabled, any shots other than wide full-stage views suffer from having only the lower 2/3rds available.

Closeup with Overlay

This is the reason lyric overlay typically is only the words without the background fill.  Separating the text from the background is accomplished on the switcher by inputting both the text (on any background) and a second input of the alpha cutout mask.

Read the rest of this entry »


Get every new post delivered to your Inbox.