LibVLCSharp 3.0: The first stable release of VideoLAN’s crossplatform .NET binding for LibVLC

LibVLCSharp is the first official VideoLAN .NET binding for the multimedia LibVLC library that is fully cross-platform. It has been downloaded over 10K times.

It provides a simple cross-platform audio and video API for .NET on all platforms. Its comprehensive multimedia API can be used across mobile, server and desktop to render video and output audio as well as encode and stream.

What can LibVLCSharp do?

The full libvlc 3.0 set of public C APIs are surfaced as .NET APIs with LibVLCSharp.

You can explore LibVLC features by playing with the official VLC apps or reading the Wikipedia page.

The TL;DR is this:

  • Plays all audio and video formats
  • Network browsing for distant filesystems (SMB, FTP, SFTP, NFS…).
  • HDMI pass-through for Audio HD codecs, like E-AC3, TrueHD or DTS-HD.
  • Stream to distant renderers, like Chromecast.
  • 360 video and 3D audio playback with viewpoint change.
  • Support for Ambisonics audio and more than 8 audio channels.
  • Subtitles size modification live.
  • Hardware and software decoding on all platforms.
  • DVD playback and menu navigation.
  • Equalizer support.

And a lot more…

Supports all major platforms

This is the first crossplatform libvlc binding by VideoLAN that is available and integrated with such a wide range of platforms.

LibVLCSharp can now be used on Mac, Linux or Windows to develop applications in C#, F# and VB.NET.

It is integrated with most GUI toolkits such as Windows Forms, WPF, UWP, Cocoa and GTK so it can be used seamlessly to display video and output audio on Android, iOS, macOS, tvOS, Windows (including Xbox and Mobile) as well as Linux (including Raspberry Pi).

With LibVLCSharp.Forms, we also support Xamarin.Forms for native crossplatform UI development.

If you would like to have a quick look at minimal samples, you can find those here.

You could also follow our Getting Started guide

Versioning

Our versioning story is tied to the libvlc major versions as explained in our versioning document. Other LibVLC bindings also follow that versioning scheme. This explains why the first stable release is not a 1.0 version.

LibVLCSharp 3.x works with LibVLC 3.x. LibVLCSharp 4.x will work with LibVLC 4.x.

What’s next?

  • More platform support, notably game engines (Unity, Unreal, Godot…).
  • Implement libvlc 4.0 APIs and demo new features.
  • Documentation. Since we closely follow the libvlc API you can always refer to the C header for docs, but we are in the process of setting up docs for LibVLCSharp/.NET specific information.
  • MediaElement, a Xamarin.Forms crossplatform full featured MediaElement. Work has been started by one of our contributor, kakone, and we are looking for help.

We are always looking for new contributors, so feel free to reach out on our Gitter or GitLab if you are interested :-)

If you would like to contribute, we accept pull requests on both GitHub and GitLab. Please read and follow our contributing guide.

As always, you may download the packages from our NuGet account.

Thanks to @JeremyVignelles, @jsuarezruiz, @mitermite, @wjax and @Ch4rg3r.