Welcome to the home page of EMIPLIB.
The name EMIPLIB stands for 'EDM Media over IP library'. This library was developed at the Expertise Centre for Digital Media (EDM), a research institute of the Hasselt University. As the name suggests, the goal of the library is to make it easier to stream several kinds of media, including (but not limited to) audio and video.
The latest version of the library is 1.2.0. You can take a look at the ChangeLog, or follow the development of the library at GitHub.
Current features include:
The library has been tested on the following platforms:
Note that not all components are available on all platforms.
For more detailed information about the library, please refer to the documentation.
The following screenshot shows the
avsession example when no other streams are being received. Only the local video stream is being rendered.
In the following example, a 2D world is subdivided into a number of regions, indicated by the smaller rectangles. The position of a participant is indicated by a blue or red disc. The line in the disc shows the direction in which the disc would be moved if it would take a step forward. The rectangle above and to the right of a participant's disc shows what this person's webcam is filming. In this application, only participants in the same region can see and hear each other. Furthermore, the audio streams are processed using the 3D audio component so that the sound actually appears to originate from each user's position in the world.
The next screenshot shows a WinCE SIP-based VoIP application, which uses EMIPLIB for the VoIP part and reSIProcate for the SIP functions. In the screenshot, you can see a SIP phone trying to set up a call to the WinCE application.
The license that applies to the library is the LGPL. However, it is possible to specify that you wish to use GPL licensed components as well, which then causes the GPL to apply to the entire library. The license texts of these two licenses are also included in the library source archive.
Note that when creating an application, you have to take the licenses of other libraries into account too. For example, if your application uses the Qt component and you accepted the GPL license for the Qt library, linking with the Qt library requires your application to be GPL too. Similarly, if your version of libavcodec was compiled as a GPL library, using the libavcodec component of EMIPLIB will require your application to be GPL too, since you'll need to link against your GPL version of libavcodec.
The library depends on the libraries JThread and JRTPLIB
You can download the library source code here:
Documentation can be generated using Doxygen. You can also browse the documentation on-line at emiplib.readthedocs.io
Questions, comments and bug reports can be sent to