From VideoLAN Wiki
Revision as of 03:31, 2 November 2021 by J-b (talk | contribs)
Jump to navigation Jump to search

The libVLC (VLC SDK) media framework can be embedded into an application to get multimedia capabilities.

libVLC is a cross-platform audio and video API that provides a comprehensive multimedia API that can be used across mobile, server and desktop to render video and output audio as well as encode and stream.

Since VLC is based on libVLC, one should be able to have the same features that VLC media player has.

The libVLC media framework is already used by several applications; see who uses libVLC?


libVLC notably can:

  • Play every media file formats, every codec and every streaming protocols (RTSP, RTMP, Multicast, HLS/Dash/HDS, etc..)
  • Run on every platform, from desktop (Windows, Linux, Mac) to mobile (Android, iOS) and TVs (AppleTV, Android TV, Tizen) and Consoles (PS4/5, Xbox)
  • Hardware and efficient decoding on every platform, up to 8K
  • Network browsing for distant filesystems (SMB, FTP, SFTP, NFS...) and servers (UPnP, DLNA)
  • Playback of Audio CD, DVD and Bluray with menu navigation
  • Support for 8K and HDR, including tonemapping for SDR streams
  • Audio passthrough with SPDIF and HDMI, including for Audio HD codecs, like DD+, TrueHD or DTS-HD
  • Support for complex video and audio filters
  • Support for 360/VR video and 3D audio playback, including Ambisonics
  • Able to cast and stream to distant renderers, like Chromecast and UPnP renderers.


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:



Rendering and streaming

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

Outdated samples

Language & platform bindings

LibVLC is a C library. It has bindings to the following languages and frameworks:


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 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.