DVX Client Using Microsoft DirectShow

posted Aug 15, 2011, 2:06 PM by Joshua A. Miele, Ph.D   [ updated Sep 7, 2011, 10:53 AM by Owen Edwards ]

The DVX Client is the player/recorder part of the Descriptive Video Exchange (DVX) project. This is the application that blind viewers will use to actually play the described DVDs that will be produced by DVX. Amateur describers will use the same application to quickly and easily record their descriptions.

We didn’t want to write our own video player from scratch. That would be an enormous challenge, and there are already plenty of options that can be adapted for our use. The only problem was making the choice of which video player to start with. Some of the most important requirements for selecting the video player that will be the core technology for the DVX Client include:

·                     No cost to distribute

·                     Easy to install and use

·                     Easy to modify software and add new features

·                     Provides software method of identifying the video

·                     Provides software method for obtaining accurate video timing information

·                     Provides software method for interacting with DVD menus

Here, “software method,” means that the DVX Client needs to have a way of communicating behind the scenes with the pre-existing video player. This will allow the DVX Client to perform accessibility and description functions based on interactions with the video player.

We investigated a number of open-source video players and video frameworks. There were many excellent candidates, including Ambulant, VLC Media Player, and LiveDescribe. We evaluated each, taking into account the criteria above, as well as a number of other technical and practical considerations.

Of course, we only need to make a choice for the first prototype DVX player. The concept of DVX allows for players to be implemented in different ways and on many different platforms. For example, LiveDescribe could (and probably will) include DVX functionality, and it runs on Windows. Other DVX players may use other player infrastructure, and could run on Android, iPhone, HTML5, and so on.

Ultimately, we decided to build the first DVX client on the Microsoft media framework called DirectShow. DirectShow is already available in any modern version of Windows, and provides an extremely rich set of commands (or APIs) that allows other programs to control it and get information from it. These APIs include everything needed by the DVX Client, and much more.

Using DirectShow does mean that the first DVX Client prototype will only run on Windows, but this will be sufficient for our proof-of-concept research into the effectiveness of amateur description techniques. When the DVX Server API is ready for release, we expect to see more DVX Clients for more platforms.