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
|