View on GitHub

QtMEL

Qt Media Encoding Library

Download this project as a .zip file Download this project as a tar.gz file

Welcome to the QtMEL project website.

QtMEL is a Qt library that wraps Libav, OpenCV and RtAudio libraries and allows you easily grab your desktop screen, your cameras, your audio input devices and finally encode audio/video streams.

Project description

Platform: currently only Windows (Linux version is partially done)
License: LGPL
Current version: 1.0 Alpha
Issue tracker: Here

Key features

Dependencies to build the project

  1. Libav - Here is a git-14d94a1 version (**QtMEL** is tested only with this version). It contains inlude and lib folders.
  2. OpenCV - Download here.
  3. QtMultimediaKit - Download here. There are includes and dlls that were build using Qt 4.7.4/MinGW.
  4. RtAudio - you don't need to download anything it is in QtMEL.

Ready to use builds

Just download this archive and you will be able to use the QtMEL library in your projects! All you need is to modify your .pro file like this:

#add QtMEL library
INCLUDEPATH += QTMEL_INCLUDE_PATH //just replace this with the actual path
LIBS += -LQTMEL_LIB_PATH //just replace this with the actual path

CONFIG(debug, debug|release) {
    LIBS += -lqtmeld1
} else {
    LIBS += -lqtmel1
}

Then you must to include the headers this way:

#include <AudioGrabber>
#include <CameraGrabber>
#include <ScreenGrabber>
#include <Recorder>
...

Happy coding!

Examples

In order to understand how to use the classes provided by QtMEL you can look at the examples folder in sources.

  1. EncoderExample - it is the first example that allows you to capture your desktop screen(or parts of it) and record the streams(video/audio) to a file. Also this example contains the code that generates 500 frames and then encodes them to a video using fixed frame rate.
  2. CameraExample - this example allows you to capture your web-cameras (with audio).

You can download these examples here(compiled).

Thanks

I want to thank Daniel Roggen for his QtFFmpegWrapper! It became the starting point for my QtMEL project.