NMM

Network-Integrated Multimedia Middleware



FAQ

Home
News
Status
Download
Publications
Gallery
FAQ
People
Contact
Links

General Building/Compiling Running NMM Development Hardware

General

What does NMM stand for? NMM stands for Network-Integrated Multimedia Middleware.

What is NMM? The Network-Integrated Multimedia Middleware (NMM) provides an architecture that allows to create distributed multimedia application easily: local and remote multimedia devices or software components can be controlled transparently and integrated into a common multimedia processing flow graph. NMM is both a research project and an Open Source project. NMM runs under Linux, is implemented in C++, and distributed under the LGPL and GPL. For more information, please read The Network-Integrated Multimedia Middleware (NMM) : Basic Introduction.

What is the NMM project? The NMM project is a joint R&D effort of Motama, a spin-off company of Saarland University, Germany, and the Computer Graphics Lab at Saarland University. This project started back in late 2000.

What is so special about NMM? What is special about NMM is the fact that NMM flow graphs can be distributed across the network: local and remote multimedia devices or software components can be controlled and integrated into a common multimedia processing flow graph. While this distribution is transparent for application developers, no overhead is added to all locally operating parts of the flow graph. Currently, NMM is the only Open Source middleware solution available that allows for network-integrated multimedia. For more information, please read The Network-Integrated Multimedia Middleware (NMM) : Basic Introduction.

What is the Multimedia-Box? The Multimedia-Box application is based on NMM and provides an integrated and extensible software solution for a networked multimedia home entertainment center running on a commodity Linux-PC.

What is so special about the Multimedia-Box? There are many other approaches for building PC based multimedia home entertainment centers using Open Source software. However, there are a lot of distinct features provided by the Multimedia-Box. First, the Multimedia-Box is built completely on top of NMM. This means that all functionality is realized using NMM components, e.g. the media playback, but also the on-screen display. This is contrast to other solutions that simply try to add a nice looking graphical user interface on top of other applications. Why is this important? Well, this allows to use the power and extensibility of NMM within your multimedia center: you can distribute multimedia processing within the network, e.g. you can transparently use a TV board installed in a remote host, or you can access TV with several running Multimedia-Boxes and render audio and video synchronously, or you can distribute time consuming jobs like DVD transcoding within the network, or ... Secondly, this allows to realize multi-tasking: e.g. browse the electronic program guide (EPG) while watching TV, or a DVD, in the background, or start a transcoding job while watching a recorded TV show, or browse your picture archive while listening to MP3s, ... Furthermore, this gives a better user experience: all functionality offers the same consistent user interface.

What license is NMM distributed under? The base system is distributed under the LGPL. Most of the plug-ins, and all examples and applications (like the Multimedia-Box) are distributed under the GPL.


Building/Compiling

I downloaded NMM, how do I build it? Follow the instructions provided here.

I get an error when compiling plug-in XYZ, what can I do? Please send the corresponding error message to our mailing list [nmm-dev]. Maybe you do not need the plug-in, then just try to call 'make -k' to tell make to continue building as much as possible after an error.

I do not have package XYZ installed, can I compile the Multimedia-Box anyway? Maybe. If the plug-in is not needed by the Multimedia-Box, it should work.

Building NMM takes a long time, what can I do to speed this up? Try something like 'make -j4 parallel'. '-j' specifies the number of jobs (commands) to run simultaneously. 'parallel' tells make to process independent sub-directories in parallel. You can also disable a lot of sub-directories, see './configure --help' and look for '--disable'. With this, you can, for example, disable building of all example applications, or just build the Multimedia-Box. We also recommend distcc if you have more than one host available for compiling (hey, NMM is a 'networked' multimedia architecture.)

If I start to develop a new plug-in or application for NMM, will it also take such a long time to compile? No, you will only need to compile the code you have written. Also, if you change an existing plug-in or application, you will only have to compile that plug-in/application. Simply change to the corresponding sub-directory and type 'make'.

There is a newer version of library XYZ available, why are you using an older one instead for NMM? NMM internally uses a lot of external libraries. Updating to new libraries takes time. Sometimes updating to new libraries breaks other code. Fixing this takes even more time. So there must be a good reason for us to update. If you can give us a good reason, we will update (although we would prefer that you do the update yourself and send us a patch ;)


Running NMM

I try to run an example (from the examples/ or bin/ sub-directory) or an application (from the apps/ or bin/ sub-directory), but it does not work, what can I do? Check that the NMM_DEV_DIR is set to the nmm root directory and that the LD_LIBRARY_PATH is set appropriately. Try to run the example or application with the '-v' option for getting all error messages (or use '-vv' for error and warning messages), try if you can figure out what went wrong. Maybe you want to fix it yourself and send us a patch ;) or, write mail to our developer mailing list [nmm-dev]. Please, try to not send more than 10 kBytes of debug output to the mailing-list. Also, try to run another example: e.g. './clic gd/playback/audio/mp3play.gd -i some_mp3_file.mp3'. Again, add '-v' or '-vv'. '--help' will show a list of options for clic. More information is available here)

The Multimedia-Box application simply does not run, what can I do? Check whether you followed the steps described here. Check the output of './mmbox -v' or './mmbox -vv', check the installations paths of NMM and the external libraries, check NMM_DEV_DIR, check LD_LIBRARY_PATH, check your personal .mmboxrc

How can I control the Multimedia-Box application without a remote control? You will find the key assignments of the Multimedia-Box application here.


Development

How can I take part in the development of NMM? If you would like to get involved in the development of NMM, or you want to develop an application on top of NMM, or you simply want to ask a question or report a bug, you are welcome to subscribe to our developer mailing list [nmm-dev].

Is there a sourceforge CVS? Yes, here.

How do I use the sourceforge CVS? You can find instructions here.

What should I do if I encounter a technical problem using the sourceforge CVS? Please check the status of the SourceForge homepage that can be found here. If the problem is not reported on this web page, please send a detailed description of the problem to our developer mailing list [nmm-dev].

What are the plans for the future of NMM and the Multimedia-Box? The things we are working on can be found on the status pages. We try to update these pages as often as possible.


Hardware

I would like to have this nice small keyboard/remote control that can be seen on this picture of the Multimedia-Box, where did you buy it? What you can see on the picture is the remote control of our secretary's phone (Philips Sopho Ergoline D340) ;) We do not know if you can buy it separately. If you know, please mail us. Update: Henrik wrote:
Hi!
I know where to buy the "small keyboard/remote control", i contacted philips sweden (http://www.sopho.philips.se/kontakt.htm) and they said following:
It costs 820:- Sek or 102 US$, the keyboard is available in lightgray or darkgray.
I hope this information will help someone ;-)

Henrik

What hardware do I need to build a Multimedia-Box? A detailed description of the hardware and the system configuration of our current Multimedia-Box can be found on our Hermes page. We also provide a German version of the Hermes page. The hardware we used for our first Multimedia-Box is described in the report named The Multimedia-Box - Design and Development of a Multimedia Home Entertainment System for Linux; the second Multimedia-Box is described in Marc Klein's Diploma Thesis (german only, sorry). All documents can be found here. If you have successfully built a Multimedia-Box, we would like to hear from you