{"id":16352056,"url":"https://github.com/mfkl/libvlc-nuget","last_synced_at":"2025-04-09T14:15:30.549Z","repository":{"id":46161539,"uuid":"104454088","full_name":"mfkl/libvlc-nuget","owner":"mfkl","description":"NuGet packaging setup for LibVLC","archived":false,"fork":false,"pushed_at":"2024-11-25T17:27:57.000Z","size":143,"stargazers_count":62,"open_issues_count":5,"forks_count":10,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-02T08:41:06.470Z","etag":null,"topics":["audio","c","dotnet","libvlc","media","native","nuget-packaging","player","video","vlc"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mfkl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://videolabs.io/solutions/libvlcsharp"}},"created_at":"2017-09-22T09:00:05.000Z","updated_at":"2025-02-28T15:24:12.000Z","dependencies_parsed_at":"2023-11-29T11:30:51.474Z","dependency_job_id":"d9c7de15-e017-417f-b574-7770d0d1d57c","html_url":"https://github.com/mfkl/libvlc-nuget","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfkl%2Flibvlc-nuget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfkl%2Flibvlc-nuget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfkl%2Flibvlc-nuget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfkl%2Flibvlc-nuget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mfkl","download_url":"https://codeload.github.com/mfkl/libvlc-nuget/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248054194,"owners_count":21039952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","c","dotnet","libvlc","media","native","nuget-packaging","player","video","vlc"],"created_at":"2024-10-11T01:24:49.546Z","updated_at":"2025-04-09T14:15:30.517Z","avatar_url":"https://github.com/mfkl.png","language":"C#","funding_links":["https://videolabs.io/solutions/libvlcsharp"],"categories":[],"sub_categories":[],"readme":"# `libvlc` for .NET\n\n[![Join the chat at https://discord.gg/3h3K3JF](https://img.shields.io/discord/716939396464508958?label=discord)](https://discord.gg/3h3K3JF)\n\nThis repository is about presenting `libvlc` and its capabilities to .NET developers.\nIt also contains packaging tools and files for nuget packaging/deployment.\nIn other words: It's just the same thing as if you had downloaded the files from VideoLAN's website, in a NuGet package,\nthat you can add in your .NET project so that it gets copied into the output directory.\n\n- [What is libvlc?](#What-is-libvlc)\n- [How do I use this thing from .NET?](#How-do-I-use-this-thing-from-.NET)\n- [Build and packaging customization with MSBuild](#Build-and-packaging-customization-with-MSBuild)\n- [Supported platforms](#Supported-platforms)\n  - [Windows Classic](#windows-classic)\n  - [Windows Universal](#windows-universal)\n  - [Android](#android)\n  - [iOS](#iOS)\n  - [macOS](#macOS)\n  - [tvOS](#tvOS)\n  - [Linux](#linux)\n  - [Unity3D](#Unity3D)\n- [Roadmap](#roadmap)\n- [Commercial services](#Commercial-services)\n\n# What is libvlc?\n\n`libvlc` is the multimedia framework powering the VLC applications. It is fully opensource, so other apps use it too.\n\n**API documentation**: https://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc.html\n\nit contains all modules, data structures and functions documentation to understand how to use the `libvlc` C API.\n\nThe **source** is in the main VLC repository: https://github.com/videolan/vlc\n\n`libvlc` is *modularized* into hundreds of plugins, which may be loaded at runtime. This architecture provides great flexibility to developers (both VLC devs and devs consuming the library). The unified, complete and (somewhat) high level `libvlc` C API allows a wide range of operations, such as:\n- Play every media file formats, every codec and every streaming protocols\n- Run on every platform, from desktop (Windows, Linux, Mac) to mobile (Android, iOS) and TVs\n- Hardware and efficient decoding on every platform, up to 8K\n- Network browsing for distant filesystems (SMB, FTP, SFTP, NFS...) and servers (UPnP, DLNA)\n- Playback of Audio CD, DVD and Bluray with menu navigation\n- Support for HDR, including tonemapping for SDR streams\n- Audio passthrough with SPDIF and HDMI, including for Audio HD codecs, like DD+, TrueHD or DTS-HD\n- Support for video and audio filters\n- Support for 360 video and 3D audio playback, including Ambisonics\n- Able to cast and stream to distant renderers, like Chromecast and UPnP renderers.\n\nFull list of the new 3.0 features can be found here: https://www.videolan.org/vlc/releases/3.0.0.html\n\nFull directory tree overview of what's included (dlls, headers, lib files) in the nuget can be found at https://github.com/mfkl/libvlc-nuget/blob/master/tree.md\n\n# How do I use this thing from .NET?\n\nThere are usually 2 ways to go about consuming C code from .NET:\n- Using [C++/CX](https://docs.microsoft.com/en-us/cpp/cppcx/visual-c-language-reference-c-cx). This allows to author [Windows Runtime components](https://docs.microsoft.com/en-us/cpp/windows/windows-runtime-cpp-template-library-wrl) and it is Windows-specific. [VLC for UWP](https://code.videolan.org/videolan/vlc-winrt) currrently works this way using both [libvlcppcx](https://github.com/kakone/libVLCX) and [libvlcpp](https://code.videolan.org/videolan/libvlcpp).\n- Using [P/Invoke](http://www.mono-project.com/docs/advanced/pinvoke/). If crossplatform is a focus, you should checkout [LibVLCSharp](https://github.com/videolan/libvlcsharp).\n\nVersioning of the nuget packages naturally follow the libvlc versioning.\n\n# Build and packaging customization with MSBuild\n\nHow do I configure what gets copied to my output directory?\n\nCurrently, you can customize three things during the build:\n\n- [Whether the library gets copied or not](library-copy-enabling.md)\n- [Where the library is placed in the output folder](files-location-selection.md)\n- [Which files are copied](cherry-picking.md)\n\n# Supported platforms\n\n#### LibVLC 3:\n\nLatest stable version is [3.0.21](https://code.videolan.org/videolan/vlc/-/tags). Feel free to check out the [release notes](https://code.videolan.org/videolan/vlc/-/blob/3.0.x/NEWS).\n\nMinimum OS version supported by LibVLC 3.x:\n\n- Windows XP\n- macOS 10.7\n- iOS 7\n- Android 2.3\n\n## Windows Classic\n\n```cmd\n dotnet add package VideoLAN.LibVLC.Windows\n```\n\n*For the GPL version, use the following command:*\n```cmd\n dotnet add package VideoLAN.LibVLC.Windows.GPL\n```\n\n[![NuGet version](https://img.shields.io/nuget/v/VideoLAN.LibVLC.Windows.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.Windows)\n[![NuGet downloads](https://img.shields.io/nuget/dt/VideoLAN.LibVLC.Windows.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.Windows)\n\n#### Supported CPU architectures:\n\n- x86\n- x64\n\n*Note: if you intend to use libvlc with UWP projects, you probably need to install the [UWP](#windows-universal) package instead because this build directly uses win32 APIs.*\n\n## Windows Universal\n\n```cmd\n dotnet add package VideoLAN.LibVLC.UWP\n```\n\n[![NuGet version](https://img.shields.io/nuget/v/VideoLAN.LibVLC.UWP.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.UWP)\n[![NuGet downloads](https://img.shields.io/nuget/dt/VideoLAN.LibVLC.UWP.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.UWP)\n\n#### Supported CPU architectures:\n\n- x86\n- x64\n- ARM\n\n## Android\n\n```cmd\ndotnet add package VideoLAN.LibVLC.Android\n```\n\n[![NuGet Stats](https://img.shields.io/nuget/v/VideoLAN.LibVLC.Android.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.Android)\n[![NuGet Stats](https://img.shields.io/nuget/dt/VideoLAN.LibVLC.Android.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.Android)\n\n#### Supported CPU architectures:\n\n- armeabi-v7a\n- arm64-v8a\n- x86\n- x86_64\n\n## iOS\n\n```cmd\ndotnet add package VideoLAN.LibVLC.iOS\n```\n\n[![NuGet Stats](https://img.shields.io/nuget/v/VideoLAN.LibVLC.iOS.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.iOS)\n[![NuGet Stats](https://img.shields.io/nuget/dt/VideoLAN.LibVLC.iOS.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.iOS)\n\n#### Supported CPU architectures:\n\n- i386\n- x86_64\n- ARMv7\n- ARM64\n\n## macOS\n\n```cmd\ndotnet add package VideoLAN.LibVLC.Mac\n```\n\n[![NuGet Stats](https://img.shields.io/nuget/v/VideoLAN.LibVLC.Mac.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.Mac)\n[![NuGet Stats](https://img.shields.io/nuget/dt/VideoLAN.LibVLC.Mac.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.Mac)\n\n#### Supported CPU architecture:\n\n- x86_64\n\n## tvOS\n\n```cmd\n dotnet add package VideoLAN.LibVLC.tvOS \n```\n\n[![NuGet Stats](https://img.shields.io/nuget/v/VideoLAN.LibVLC.tvOS.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.tvOS)\n[![NuGet Stats](https://img.shields.io/nuget/dt/VideoLAN.LibVLC.tvOS.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.tvOS)\n\n#### Supported CPU architecture:\n\n- x86_64\n- ARM64\n\n## Linux\n\nFor Ubuntu, follow this [guide](https://code.videolan.org/videolan/LibVLCSharp/blob/master/docs/linux-setup.md).\n\n## Unity3D\n\n| Platform          |  Unity Store Asset                             |\n| ----------------- | ---------------------------------------------- |\n| Unity3D - Windows | [![VLCUnityBadge]][VLCUnityStore]              |\n| Unity3D - UWP     | [![VLCUnityBadge]][VLCUnityStore]              |\n| Unity3D - Android | [![VLCUnityBadge]][VLCUnityStore]              |\n| Unity3D - iOS     | [![VLCUnityBadge]][VLCUnityStore]              |\n| Unity3D - macOS   | [![VLCUnityBadge]][VLCUnityStore]              |\n\n[VLCUnityStore]: https://videolabs.io/store/unity\n[VLCUnityBadge]: https://img.shields.io/badge/Made%20with-Unity-57b9d3.svg?style=flat\u0026logo=unity\n\n# Roadmap\n\n- More Unity back-ends and other game engines\n- WebAssembly\n- LibVLC 4\n\n# Commercial services\n\nIf you would like VLC developers to provide you with:\n- custom development on LibVLC and/or LibVLCSharp, \n- training and workshops,\n- [LibVLCSharp commercial licenses](https://videolabs.io/solutions/libvlcsharp),\n- support services,\n- consulting services,\n- other multimedia services.\n\nFeel free to [contact us](https://videolabs.io/#contact).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfkl%2Flibvlc-nuget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmfkl%2Flibvlc-nuget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfkl%2Flibvlc-nuget/lists"}