The libVLC (VLC SDK) media framework can be embedded into an application to get multimedia capabilities.
The libVLC media framework is already used by several applications; see who uses libVLC?
Please refer to the Doxygen documentation, which is the reference documentation.
Make sure that the documentation matches the LibVLC version. (if not, you can build it from the source code)
Some further topics are covered here:
- LibVLC Memory Management explained: covers the basics on the _new(), _retain(), _release().
- LibVLC Media List Management explained: covers the basics on setting up a playlist.
- Generate a .lib for using libVLC on Windows (before libVLC 2.1.0)
To build LibVLC you need VLC source code and follow VLC compilation instructions since LibVLC it is directly shipped in VLC source code.
You will find headers in vlc-src/include/vlc and libvlc.so binaries in the hidden folder vlc-src/lib/.libs.
When using your custom LibVLC build you will need to define the environment variable VLC_PLUGIN_PATH pointing to VLC modules located in vlc-src/modules.
- Current version (1.1.x and later)
- Gtk Player: doc/libvlc/gtk_player.c
- Qt Player: doc/libvlc/QtPlayer/player.cpp
- WxWidgets Player: doc/libvlc/wx_player.cpp
Rendering and streaming
- Use LibVLC in an SDL application
- Stream into a memory zone
- Generate thumbnails using LibVLC: doc/libvlc/vlc-thumb.c
- Quick DVD ripper: doc/libvlc/libvlc_DVD_ripper.c
More complex examples
libVLC on Android
VLCKit for Cocoa (iOS/macOS)
You can find details on features and implementation on a designated page.
Crossplatform .NET/Mono support with LibVLCSharp
- Versions 0.9.x and 1.0.x
- Version 0.8.6
- Visual C++ (uses "old" legacy API)
- VCL component for Delphi (out-of-date)
Language & platform bindings
LibVLC is a C library. It has bindings to the following languages and frameworks:
- C++, using the libvlcpp library
- The Web plugin for ActiveX (e.g. MSIE) and NPAPI (e.g. Firefox)
- WebChimera browser plugin with NW.js support
- WebChimera.js - another way to bind libvlc to node.js/io.js/NW.js/Electron
- Objective-C/Swift for iOS and macOS
- Phonon (Qt/KDE) in C++
- Java bindings
- Java/Scala/Kotlin/JNI Android
- QmlVlc - Qt 5 QML binding
- VLC-Qt - Qt bindings
- wxWidgets MediaCtrl backend also in C++
- Using libvlc with Delphi
- ActiveX with the built-in VLC browser plugin for MSIE (obsolete)