
KMediaNet
Source (link to git-repo or to original if based on someone elses unmodified work):
The official web of NMM is http://www.networkmultimeida.org. 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.
KMediaNet now has two applications:
- kio_nmm : A kio slave for konqueror that is used to see the resources (DVD, TV Card, files, ...) that a remote or local computer is sharing.
- nmm_dcop : Is the player. When you clic at a resource into kio_nmm this call to nmm_dcop to launch a player. You can launch a player without use kio_nmm using kdcop or dcop to do the correct call.
Using it you can play a tvcard (v4l2 driver), the dvd player or a file as if this resources would be installed at the local computer. The screenshot 2 is a dvd play from a remote machine and you can manipulate menus.
This applications can be improved but now is a usable stage.
-----------------------
INSTALL:
You must be installed at your system the NMM cvs version that you can find at:
http://www.networkmultimedia.org/NMM/Download/index.html
You must be installed "libextractor" and "avinfo" at the system that is running serverregistry. When you finish installation of NMM then you can install kio_nmm and nmm_dcop. Both applications are need to a correct work.
You must set the enviroment variable NMM_DEV_DIR at /etc/profile.local or other but this variable must be see by KDE. The directories that contains the nmm libs must be added to /etc/ld.so.conf.
-----------------------------------
USAGE:
The remote machine must run the serverregistry application from NMM. Review your firewalls because a connection from remote to local is done and if the firewall is blocking it the player doesn't work.
Then at local machine, launch a konqueror and put at location bar: nmm://"remote_machine_name". You cannt't put the ip. If you want to use ip do this:
nmm://"remote_machine_name"?ip=
and at remotemachine_name put the name that is used at the remote machine as linux name.
--------------------
I'm searching collaborators to do the web page of these applications and to continuate the develop of this project.
Version 0.4.1:
- Bug fix release
- Now LADSPA Plugins are used. By this you have to set LADSPA enviroment:
How do I use LADSPA with NMM?
(1) setup the environment variable LADSPA_PATH; otherwise no LADSPA plugins were found by the LADSPANode. There are som LADSPA plugins in /lib/ladspa
(2) in the directory /resources exists a XML file named LADSPAPlugin_presets.xml containing presets for some plugins. It is possible to create additional 'profiles'. To create a new profile, simple copy another profile for the plugin of choice and change the values between the and tags. The default profile is set up to make the plugins my appear neutral.
(3) there is a graph description (mp3ladspa.gd). Additional parameters are 1 or more mp3 encoded file(s).
New many improvements:
- kopete - kmedianet : Is a Jabber protocol plugin for kopete. With it you can controlate and manipulate all parameters of kmedianet. The remote user configure all parameters at KMediaNet Kopete and the local users receive it by clicking at the remote user with right click and selecting "Request NMM Resources".
- New graphs: Video Conference, Call Conference and VNC Viewer.
Ratings & Comments
13 Comments
Hi, first af all muchas gracias for your efforts :-) I m very much interested in video conferencing which I currently do by Gnomemeeting (which does a great job but is H261 only :-( ) I also learned that you use the better H.263 codec or maybe anything else ffmpeg provides. One question remains: Is signalling done by sip or some proprietary protocoll? If so, has anyone tried to hook it up to Asterisk? Kind regards Conrad
Hello, Thanks. This system has a little problem, well I think that this is not a problem is a feature ;-), that is that all multimedia process is done by NMM. At other words it doesn't use SIP or another protocol. There is a posibility that is construct a SIP client using NMM to capture and sent data using RTP. The only thing that NMM doesn't do is the SIP, you can sent multimedia data using RTP. There is a project to build a RTP server with NMM, please review the homepage of NMM. We can integrate it at this project when it'll be finished. Regards.
Keep it on - Its great, especially the io-slave !! How may I support you - apart from voting as often as possible =)
Hello, If you have web or c++ knowledge then you can join to the project. Only this. If you have iterest , please send me a e-mail. Regards.
I have compilation Problem on my SlackWare 10.2, this is only the end of the compilation output nmm.cpp:550: error: `int kndDebug()' previously defined here nmm.cpp:889: error: redefinition of `int kndDebug()' nmm.cpp:526: error: `int kndDebug()' previously defined here nmm.cpp:889: error: syntax error before `
I don't know because this errors happen you. But you can delete the lines indicates by the error. These lines start by kdDebug() and the unique purpose is that I have information to depure the program. Thanks by use KMediaNet. Regards.
I've tried to compile nmm_dcop-0.3 but it gives the following errors: /bin/sh ../libtool --silent --tag=CXX --mode=link g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wno-non-virtual-dtor -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -fexceptions -L/usr/local/lib -L/usr/local/lib/nmm -L/usr/lib -L/usr/X11R6/lib -L/usr/lib/qt3/lib -o nmm_dcop -L/usr/lib -L/usr/lib/qt3//lib -L/usr/X11R6/lib -R /usr/local/lib -R /usr/lib -R /usr/lib/qt3//lib -R /usr/X11R6/lib -L/usr/local/src/nmm-cvs/lib/nmm main.o nmm_dcop.o nmmtask.o filegraph.o qnmmeventdispatcher.o dvdnavgraph.o qnmmapplication.o tvcard2graph.o basegraph.o nmmmanager.o filesavegraph.o nmm_dcop_skel.o frmmain.o qnmmapplication.moc.o -lkio -lnmmivideo -lnmmidisplay -lnmmserialize -lnmmregistry -lnmmcontribifile -lnmmutils -lnmmifile -lnmmbase -lnmmutilsthread -lnmmIMPEGDemux filegraph.o(.text+0x27f1): In function `FileGraph::~FileGraph()': : undefined reference to `NMM::GraphBuilder2::~GraphBuilder2()' filegraph.o(.text+0x2a91): In function `FileGraph::~FileGraph()': : undefined reference to `NMM::GraphBuilder2::~GraphBuilder2()' filegraph.o(.text+0x2d21): In function `FileGraph::~FileGraph()': : undefined reference to `NMM::GraphBuilder2::~GraphBuilder2()' filegraph.o(.text+0x329b): In function `FileGraph::FileGraph(QString, int, QString, QString)': : undefined reference to `NMM::GraphBuilder2::GraphBuilder2()' filegraph.o(.text+0x3563): In function `FileGraph::FileGraph(QString, int, QString, QString)': : undefined reference to `NMM::GraphBuilder2::~GraphBuilder2()' filegraph.o(.text+0x38eb): In function `FileGraph::FileGraph(QString, int, QString, QString)': : undefined reference to `NMM::GraphBuilder2::GraphBuilder2()' filegraph.o(.text+0x3bb3): In function `FileGraph::FileGraph(QString, int, QString, QString)': : undefined reference to `NMM::GraphBuilder2::~GraphBuilder2()' filegraph.o(.text+0x430f): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::setURL(std::basic_string const&)' filegraph.o(.text+0x4c2a): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::setMultiAudioVideoSynchronizer(NMM::IMultiAudioVideoSynchronizer*)' filegraph.o(.text+0x4c62): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::setAudioSink(NMM::NodeDescription const&, std::basic_string const&)' filegraph.o(.text+0x4ca8): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::setVideoSink(NMM::NodeDescription const&, std::basic_string const&)' filegraph.o(.text+0x4ce6): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::setDemuxAudioJackTag(std::basic_string const&)' filegraph.o(.text+0x4d24): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::setDemuxVideoJackTag(std::basic_string const&)' filegraph.o(.text+0x4d42): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::setAudioVideoPrefetchingEnabled(bool)' filegraph.o(.text+0x4df7): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::createGraph(NMM::NMMApplication&)' filegraph.o(.text+0x4e10): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::getGraphDescription()' filegraph.o(.text+0x4e46): In function `FileGraph::run()': : undefined reference to `NMM::GraphBuilder2::getAudioSinkNodeDescription()' filegraph.o(.text+0x7387): In function `FileGraph::doPlay()': : undefined reference to `NMM::GraphBuilder2::GraphBuilder2()' filegraph.o(.text+0x7a97): In function `FileGraph::doPlay()': : undefined reference to `NMM::GraphBuilder2::~GraphBuilder2()' filegraph.o(.text+0x7b1d): In function `FileGraph::doPlay()': : undefined reference to `NMM::GraphBuilder2::~GraphBuilder2()' dvdnavgraph.o(.text+0x4887): In function `DVDNavGraph::run()': : undefined reference to `NMM::IDevice::setDevice_event' dvdnavgraph.o(.text+0x5976): In function `DVDNavGraph::run()': : undefined reference to `typeinfo for NMM::IDVD' dvdnavgraph.o(.text+0x59ce): In function `DVDNavGraph::run()': : undefined reference to `typeinfo for NMM::IDVDNav' dvdnavgraph.o(.gnu.linkonce.t._ZN3NMM9NMMObject15getOwnInterfaceINS_4IDVDEEEPT_v+0x30): In function `NMM::IDVD* NMM::NMMObject::getOwnInterface()': : undefined reference to `typeinfo for NMM::IDVD' dvdnavgraph.o(.gnu.linkonce.t._ZN3NMM9NMMObject15getOwnInterfaceINS_7IDVDNavEEEPT_v+0x30): In function `NMM::IDVDNav* NMM::NMMObject::getOwnInterface()': : undefined reference to `typeinfo for NMM::IDVDNav' tvcard2graph.o(.text+0x2e28): In function `TVCard2Graph::run()': : undefined reference to `NMM::IDevice::setDevice_event' tvcard2graph.o(.text+0x2eb0): In function `TVCard2Graph::run()': : undefined reference to `NMM::ITV::setCurrentInput_event' collect2: ld returned 1 exit status make[2]: *** [nmm_dcop] Error 1 make[2]: Leaving directory `/usr/local/src/nmm_dcop-0.3/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/nmm_dcop-0.3' make: *** [all] Error 2 I've installed nmm from CVS (12 Oct 2005), have configured it and it works OK. The compilation and the install of kio_nmm-0.3 is OK. I'm using Mandrake 2005LE, kernel 2.6.13, KDE is 3.3.2
Hello Phobosk, Excuse me by the late but I was away for a few days. Have you set the LD_LIBRARY_PATH or /etc/ld.so.conf with the correct paths? Have you set the NMM_DEV_DIR? What is the value? Thanks by use KMediaNet. Regards.
Hi, Everything from NMM is installed as needed, including the neccesary path changes: NMM-cvs sources are in /usr/local/src/nmm-cvs and the prefix in the configure script is /usr/local. In .bashrc of the profile that I use to compile programs I have these: NMM_DEV_DIR=/usr/local/src/nmm-cvs export NMM_DEV_DIR LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/X11R6/lib:/usr/lib/qt3/lib:/usr/lib/wine:/usr/lib/hk_classes:/usr/i486-linux-libc5/lib:/usr/local/mozilla:/usr/local/lib/python2.4/site-packages/gtk-2.0:/usr/local/lib/python2.4/site-packages/gtk-2.0/gtk:/usr/local/lib/nmm export LD_LIBRARY_PATH CPPFLAGS="-I/usr/local/include -I/usr/include -I/usr/X11R6/include -I/usr/lib/qt3/include -I/usr/local/include/nmm" LDFLAGS="-L/usr/local/lib -L/usr/local/lib/nmm -L/usr/lib -L/usr/X11R6/lib -L/usr/lib/qt3/lib -L/usr/local/lib/nmm" export CPPFLAGS LDFLAGS Is there anything else I can do to help you debuging this error?
In version 0.4 of nmm_dcop, the problem with the compilation stays :(
Hello Phobosk your problem is strange. I can see that you set NMM_DEV_DIR to a dir that finish at nmm-cvs, but you have set LD_LIBRARY_PATH to a dir finished at nmm. I think that you have set all to the same dir. Other posibility can see the next. I detected that if you compile and install the cvs of NMM the libs and includes are installed at /lib/nmm and /includes/nmm respectly. But if you downloads the cvs version binary the dirs are /lib and /include. See if the dirs at compiling and install are correctly stablished. Regards.
I compiled some other programs that need nmm and everything is OK, so I think that the configuration is working. Maybe the problem is that i use the distribution's (Mandriva) devel files and not the nmm files as external libraries like lirc, libMagick, cdda etc. Anyway I'll stop my efforts to compile nmm_dcop for now and maybe will try later with the stable version of nmm (the homepage of nmm is out for a couple of days) and a more stable version of nmm_dcop.
Hello Phobosk, Please try it using the compiled version of nmm 0.9.1 that you can download at: ftp://ftp.networkmultimedia.org/www/NMM/Packages/rpm That I discover now ;-). Regards.