Difference between revisions of "LibVLC"

From VideoLAN Wiki
Jump to navigation Jump to search
m (Misc.)
Line 1: Line 1:
 
{{Lowercase}}
 
{{Lowercase}}
The [[libVLC]] (VLC {{SDK}}) media framework can be embedded into an application to get multimedia capabilities.
+
The '''libVLC''' (VLC {{SDK}}) media framework can be embedded into an application to get multimedia capabilities.
  
Since VLC is based on [[libVLC]], one should be able to have the same features that {{VLC}} has.
+
Since VLC is based on libVLC, one should be able to have the same features that {{VLC}} has.
  
 
The libVLC media framework is already used by several applications; see [[LibVLC_Users|who uses libVLC?]]
 
The libVLC media framework is already used by several applications; see [[LibVLC_Users|who uses libVLC?]]
Line 8: Line 8:
 
== Documentation ==
 
== Documentation ==
  
Please refer to the [http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc.html Doxygen documentation], which is the reference documentation.
+
Please refer to the [https://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc.html 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)
+
<u>''Make sure that the documentation matches the LibVLC version.''</u> (if not, you can build it from the source code)
  
 
Some further topics are covered here:
 
Some further topics are covered here:
  
* [[LibVLC_Memory_Management| LibVLC Memory Management]] explained: covers the basics on the _new(), _retain(), _release().
+
* [[LibVLC Memory Management]] explained: covers the basics on the <code>_new()</code>, <code>_retain()</code>, <code>_release()</code>.
* [[LibVLC_Media_List_Management| LibVLC Media List Management]] explained: covers the basics on setting up a playlist.
+
* [[LibVLC Media List Management]] explained: covers the basics on setting up a playlist.
 
* [[GenerateLibFromDll|Generate a .lib for using libVLC on Windows]] (before libVLC 2.1.0)
 
* [[GenerateLibFromDll|Generate a .lib for using libVLC on Windows]] (before libVLC 2.1.0)
  
 
== Compiling ==  
 
== Compiling ==  
To build LibVLC you need [[GetTheSource|VLC source code]] and follow [[Compile_VLC|VLC compilation instructions]] since LibVLC it is directly shipped in VLC source code.<br />
+
To build LibVLC you need [[VLC source code]] and follow [[Compile_VLC|VLC compilation instructions]] since LibVLC it is directly shipped in VLC source code.<br />
 
You will find headers in vlc-src/include/vlc and libvlc.so binaries in the ''hidden'' folder vlc-src/lib/.libs.<br />
 
You will find headers in vlc-src/include/vlc and libvlc.so binaries in the ''hidden'' folder vlc-src/lib/.libs.<br />
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.
+
When using your custom LibVLC build you will need to define the environment variable <var>VLC_PLUGIN_PATH</var> pointing to VLC modules located in vlc-src/modules.
  
 
== Examples ==
 
== Examples ==
Line 38: Line 38:
  
 
=== More complex examples ===
 
=== More complex examples ===
* [http://git.videolan.org/?p=libvlc-demos.git;a=tree;f=vlcinfo;hb=HEAD MediaInfo clone]
+
* {{VLCSourceFolder|p=libvlc-demos.git|vlcinfo|l=MediaInfo clone}}
* [http://git.videolan.org/?p=libvlc-demos.git;a=tree;f=webcam;hb=HEAD Webcam / Cheese clone]
+
* {{VLCSourceFolder|p=libvlc-demos.git|webcam|l=Webcam / Cheese clone}}
  
 
=== libVLC on Android ===
 
=== libVLC on Android ===
Line 73: Line 73:
 
* [https://github.com/RSATom/WebChimera.js WebChimera.js] - another way to bind libvlc to node.js/io.js/NW.js/Electron
 
* [https://github.com/RSATom/WebChimera.js WebChimera.js] - another way to bind libvlc to node.js/io.js/NW.js/Electron
 
* [[VLCKit|Objective-C/Swift for iOS and macOS]]
 
* [[VLCKit|Objective-C/Swift for iOS and macOS]]
* [[Perl bindings]]
+
* [[Perl bindings|Perl]]
 
* [[PythonBinding|Python]]
 
* [[PythonBinding|Python]]
 
* [http://phonon.kde.org/ Phonon (Qt/KDE) in C++]
 
* [http://phonon.kde.org/ Phonon (Qt/KDE) in C++]
* [[Java bindings]]
+
* [[Java bindings|Java]]
 
* [https://code.videolan.org/videolan/vlc-android/tree/master/libvlc/jni Java/Scala/Kotlin/JNI Android]
 
* [https://code.videolan.org/videolan/vlc-android/tree/master/libvlc/jni Java/Scala/Kotlin/JNI Android]
 
* [https://code.videolan.org/videolan/libvlcsharp C#/F#/.NET]
 
* [https://code.videolan.org/videolan/libvlcsharp C#/F#/.NET]

Revision as of 09:26, 27 March 2019

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

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?

Documentation

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:

Compiling

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.

Examples

Playback

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.

macOS

iOS

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: