Open source programs

Some of the most well-known open source programs are the Linux operating system and the Firefox Web browser. You can find open source software for an amazing array of professional media applications. Many of these applications run behind the scenes, but they are critical to professional media applications.

What is open source?

To understand open source, think back to the origins of the Internet. The Internet was developed through funding from the U.S. Department of Defense with major contributions by the academic community. One of the first uses of the Internet was collaborative development in an academic setting. Not surprisingly, much of this collaboration was centered on software development. Interested developers worked together on software projects that were maintained by a few core programmers. Contributors worked for free, and the resulting software and source code was distributed free of charge. Any developer could fix bugs or add functionality, and the changes that were accepted by the coordinators appeared in subsequent releases. Developers contributing their time wanted to be sure that the resulting software would remain free. This led to the creation of the General Public License (GPL), one of the first open source licenses.

Just what is open source? Fortunately, the Open Source Initiative (www.opensource.org) has defined open source. As stated by the Initiative, “Open source doesn't just mean access to the source code.” Below is an excerpt from the complete definition, which can be found at www.opensource.org/osd.html. Note that the explanations of the terms are mine:

  • Free redistributionThe license allows for free redistribution, meaning that the software may be freely distributed by people other than the original creators of the software. For example, anyone can burn CDs and distribute Linux. You can even charge money for this service, even though someone can go directly to www.linux.org and download the code for free.
  • Source codeThe distribution must include the source code. This allows others to see what is going on in a program, and it enables easy modification of the original program.
  • Derived worksAn open source license allows you to modify the software to make new software without having to pay anyone. This is a clear reflection of the collaborative spirit of the academic community where it is common for future researchers to build on previous work.
  • Integrity of the author's source codeA software developer cannot keep you from adding new code to his work, but he can require that you identify what is original and what was added.
  • No discrimination against persons or groupsOpen source is an open party, and everyone is invited!
  • No discrimination against fields of endeavorBasically, open source software can be used everywhere. You cannot restrict how people may use the software once it is contributed.

Much of the Web functions on open source software, and it was a factor in the explosive growth of the Internet. Examples include the TCP/IP protocol stack, the Domain Name System and the Apache Web server. Two other major open source software projects still dominant today are the Linux operating system developed by Linus Torvalds and Mozilla's Firefox Web browser, which can trace its beginnings to the Netscape browser.

Open source for pro media

While it is true that open source has been a mainstream IT effort, there have been some significant contributions in the open source community specifically targeted at the professional media market. Many of these contributions are targeted at other developers, not at end users. However, these contributions have been significant:

  • Ingex (ingex.sourceforge.net). Ingex was developed by a team led by Phil Tudor at the BBC R&D Labs. It started out as a logging application in a studio environment and has grown into a major production workflow tool. In a nutshell, it allows a user to capture multiple camera feeds in real time, add annotation and director's cut information, and send this information directly to editing workstations.Tudor described the core of Ingex this way: “The heart of the system is the recorder, which is a direct-to-disk recorder consisting of a high-end multicore PC, multiple SDI/HD-SDI capture cards and the software. Under the control of a user interface in a production gallery, recorders are used to capture the studio feeds at full quality, encode them in real time to the required production formats and store the results in standard file formats such as MXF or QuickTime. With advances in processing power, the software is able to simultaneously capture and encode four channels on each recorder, and store the results in the required full-resolution and offline formats for editing. Each unit is typically built with several terabytes of local storage to allow self-contained operation for several days of recording.”The system is specifically tailored for the multicamera studio environment. Not only does it capture video, audio and logging data, but it also captures metadata related to cuts between cameras made during the live production session. These decisions can be fed to the post-production editor, who can use this information to see what the director was thinking at the time of the shoot. Furthermore, the system creates low-resolution proxies, which can be viewed over a network or on a mobile device.
  • Advanced Authoring Format (AAF) Software Developer's Kit (SDK) (amwa.tv). Created by the Advanced Media Workflow Association, the AAF SDK provides an API that can be used to import and export digital video, audio and associated metadata between applications. The SDK includes example source code and utilities for creating, using and examining AAF files. The SDK also reads and writes MXF files. It is used in several commercial products as the AAF/MXF import/export engine.
  • MAJ API (majapi.sourceforge.net). MAJ API gives access to functionality contained in the AAF SDK for people who program in Java.
  • mxflib (freeMXF.org). mxflib is a multiplatform C++ library for reading and writing MXF files. It was developed by Matt Beard and allows programmers to read, write and manipulate MXF files.
  • Dirac video compression (diracvideo.org). Almost all video compression algorithms are proprietary and require implementers to pay licensing fees. Dirac is one of the few truly open source professional video codecs.

How to download it

You can get open source software any number of ways. The most obvious is to download it directly from the authors. For example, you can download Linux from www.linux.org. Similarly, you can download the Firefox browser from Mozilla at www.mozilla.org. But the granddaddy of all open source developer sites is SourceForge (www.sourceforge.net), and in fact, all of the professional media open source projects listed in this article are hosted at SourceForge.

Brad Gilmer is President of Gilmer & Associates and executive director of the Advanced Media Workflow Association.

Send questions and comments to:brad.gilmer@penton.com