LibVLCSharp is a cross-platform audio and video API for .NET platforms based on VideoLAN’s LibVLC Library. It 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.

Check out libvlc-nuget to get a basic understanding of how libvlc works, what it can offer and how to install it with NuGet.
Some of the features include:
Most things you can achieve with the regular VLC desktop app, you can also achieve using libvlc.
Full featured video control for Xamarin.Forms available in LibVLCSharp.Forms (iOS/Android) and Uno platform (iOS/Android/UWP).
Mono, .NET Framework and .NET Core runtimes are supported.
Follow the Getting started guide. The general documentation is part of the repository, and there is also an API docs website.
In September 2022, The Good Parts of LibVLC — the first book ever about LibVLC, the VideoLAN community and LibVLCSharp — was released.

using var libvlc = new LibVLC(enableDebugLogs: true);
using var media = new Media(libvlc, new Uri(@"C:\tmp\big_buck_bunny.mp4"));
using var mediaplayer = new MediaPlayer(media);
mediaplayer.Play();
Console.ReadKey();
LibVLC.cs: Main object pointing to a native libvlc instance in native code.MediaPlayer.cs: Manages playback, offers event listeners and more. Accessible from VideoView with data-binding support.Media.cs: Class representing and providing information about a media such as a video or audio file or stream.VideoView.cs: Custom native view which holds a MediaPlayer object.MediaDiscoverer.cs: This object should be used to find media on NAS and any SMB/UPnP-enabled device on your local network.RendererDiscoverer.cs: Use this to find and use a Chromecast or other distant renderers.Dialog.cs: Dialogs can be raised from the libvlc engine in some cases. Register callbacks with this object.The LibVLCSharp.Forms and Uno packages features a MediaPlayerElement control, similar to the ones provided by the .NET Framework on WPF and UWP. It currently supports iOS, Android and UWP (Uno only).
For more advanced samples, have a look at libvlcsharp-samples with apps such as:
Pull requests are more than welcome! If you do submit one, please make sure to read the contributing guidelines first, and use our pull request template.
You can look through issues we currently have on the VideoLAN Gitlab. Please pick one of our GitLab issue templates so we can assist you better.
There are up for grabs tickets as well if you would like to start contributing.
Please read and follow the VideoLAN Code of Conduct.
You can create issues on our Gitlab (using an issue template) for .NET related questions/problems. For LibVLC/VLC specific issues, usually native code, please go to the bug tracker of the VLC project.
We are on Discord and we regularly monitor the libvlcsharp tag on StackOverflow. For general questions, visit our forum.
If you would like VLC developers to provide you with custom development on LibVLC and/or LibVLCSharp, training and workshops, commercial licenses, support services, consulting services, or other multimedia services, feel free to contact us.