MediaInfo is top-notch cross-platform media analysis software

By

If you’ve ever downloaded a video or audio file, tried to play it, and were told you didn’t have the proper codec – but not told what codec you needed – then what you need is a utility called MediaInfo.

MediaInfo displays detailed technical and tag information about video and audio files. If that sounds attractive, but you’re thinking, it probably doesn’t run on my operating system or in my language, well, you’re probably wrong. Not only can you run versions of MediaInfo under Windows, Linux, Solaris, and Mac OS X, you can also run it from the command line, and its interface is available in about 20 languages. Developer Jérôme Martinez even provides a DLL for Windows, .so file for Linux, and .dylib file for Mac OS X so third-party developers who want to display details about their files can use MediaInfo to get at the data. In short, MediaInfo is about the most universal media file analysis tool you can have.

Users and companies employ MediaInfo in a variety of ways:

• Some users want to know why a media file can be read by one hardware player but not another, even though the format is the same. “This is often due to encoder configuration,” Martinez says.
• Many people recommend MediaInfo to users who ask in online forums why a certain file won’t work on their machine, so they can gather more comprehensive information about the file in question.
• Some video sharing websites want to filter and sort their customers’ files before processing them, or want to analyze in real time the contents of broadcast channels.
• Some companies use it to produced statistics about their data: which codecs their customers use, which bitrate, or which encoder, for instance.

Like many open source programmers, Martinez began writing the program to scratch a personal itch. “At the beginning, I was curious about the structure of my data files, and I was frustrated with the available software. Most of the utilities were dedicated to a specific format and/or for Windows only. I decided to create a program that was not limited in format. Today MediaInfo analyzes everything from common formats like AVI to uncommon formats like MXF.”

Martinez is that rare open source software developer who earns a living from his OSS coding. “I worked on MediaInfo in my spare time for some years, and now I have worked on it full-time for two years, thanks to some companies who trust my competence in video data analyzing.”

Because Martinez makes a living from his work on MediaInfo, he has to be selective about his priorities for enhancement requests. “Open source software is free, but people are behind it,” he tells people. “Don’t say a feature is important if you are not ready to pay for it. And when something is wrong, you don’t need to insult the project manager. 99.99% of my users are nice, but managing the other 0.01% is tiresome.”

Martinez says future versions of MediaInfo will have even more details about files, and support even more formats. “This is not sexy, and users are sometimes disappointed because there is no GUI improvement, no sexy interface, but I work mainly on what I can make a living from, so the priority is on paid feature requests, which are not sexy.”

Martinez created his own code to dig into the internals of audio and video files. “I don’t use any third-party libraries for analyzing because often they have too many limitations. They often are not cross-platform, or they don’t provide enough information about technical details.”

Programming the GUI was even more complex. “I started using Borland C++Builder, proprietary software, because I had it at home, but it was limited to Windows. For Linux and Mac OS X I decided to use wxWidgets because it uses a lot of native widgets. Unfortunately, wxWidgets is good on Windows but a bit poor on Linux and ugly on Mac OS X, from my point of view, so I am currently moving to Qt, which is more powerful – it manages layouts itself, and supports better interaction with the OS on Linux and Mac OS X. For compilers, I use mainly Visual C++ on Windows, but I provide Autotools and CMake projects for people who want to compile on other platforms.”

Of course Martinez offers the source code, as well as binaries for Windows, Mac OS X, and several flavors of Linux. “I currently provide APT and RPM package for all major distros, thanks to openSUSE Build Service, and make files available on SourceForge.net, which distros can include in their official repositories.”

Given the scope of the project, Martinez says he welcomes help. “If you know how to have better integration in Linux (KDE, GNOME, other desktop environments) or Mac OS X, or if you know a lot about video formats, contact me!”