vlc unity

LibVLC plugin for Unity to integrate multimedia playback inside your Unity apps and games

145
39
C

VLC for Unity

Join the chat at https://discord.gg/3h3K3JF

This repository contains the native Unity plugin that bridges LibVLCSharp with LibVLC for performance oriented video rendering in Unity3D applications and games. Available on the Videolabs Store.

LibVLC Features

Given that this plugin is using LibVLCSharp (which uses LibVLC), it exposes more or less the same feature set and same codecs support than VLC, such as:

  • Play every media file formats, every codec and every streaming protocols
  • Run on every platform, from desktop (Windows, Linux, Mac) to mobile (Android, iOS) and TVs
  • 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 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 video and audio filters
  • Support for 360 video and 3D audio playback, including Ambisonics
  • Able to cast and stream to distant renderers, like Chromecast and UPnP renderers.

And more.

Supported platforms

  • Windows Classic
    • Minimum OS version: Windows 7.
    • ABI supported: x64.
    • Graphics API: Direct3D 11
  • Windows Modern (UWP)
    • Minimum OS version: Windows 10.
    • ABI supported: x64, ARM64.
    • Graphics API: Direct3D 11
  • Android:
    • Minimum OS version: Android 4.2 (API 17).
    • ABIs supposed: armeabi-v7a, arm64-v8a, x86, x86_64.
    • Graphics API: OpenGL ES 2/3
  • iOS:
    • Minimum OS version: iOS 9.
    • ABI supported: ARM64. Simulator support will come later.
    • Graphics API: Metal
  • macOS:
    • Minimum OS version: macOS 10.11.
    • ABI supported: Intel x64, Apple Silicon ARM64.
    • Graphics API: Metal

Installation

The recommended way to install the VLC for Unity plugin is through the Videolabs Store. This also ensures you get commercial support with your build.

Platform Videolabs Store Asset
Windows VLCUnityBadge
UWP VLCUnityBadge
Android VLCUnityBadge
iOS VLCUnityBadge
macOS VLCUnityBadge

Download the Free Trial Version.

Getting started

There is a quick documentation.txt file included in the package. It gives some context and high level overview of how things work and how to get started.

Since this Unity plugin largely shares the same API than LibVLCSharp, most LibVLCSharp samples and documentation apply, do check those out!

Documentation

See the LibVLCSharp documentation.

It includes best practices, Q&A guide, libvlc specific information and tutorials.

Support

If you encounter a problem with VLC for Unity, please open an issue using the issue template. The template provides a structure that you can fill in to give us all the necessary information for us to troubleshoot your issue.

Support is done on a volunteer base, professional support is only available for paying customers.

StackOverflow

We regularly monitor the stackoverflow-libvlcsharp and stackoverflow-vlc-unity tags on StackOverflow.

Sample scenes

Several Unity sample scenes are available to help you get started quickly!

  • A minimal playback example with buttons,
  • 360 playback with keyboard navigation built-in,
  • A video with subtitles showcasing support,
  • The VLCPlayerExample provides a great base with more controls,
  • 3D scene you can move around in with a movie screen and chairs in a cinema room.

More LibVLCSharp samples can be found here.

Roadmap

Future platforms support

  • tvOS,
  • Browser,
  • Linux.

Future graphics APIs

  • Vulkan,
  • WebGL

Other improvements

  • Provide in-Editor MediaPlayer customization, so you can customize LibVLC and playback parameters directly from the Unity Editor.

Release Notes

Check out the NEWS file for details about each release.

Debugging

Editor crash location: C:\Users\YourUserName\AppData\Local\Temp\Unity\Editor\Crashes

Code of Conduct

Please read and follow the VideoLAN CoC.

Commercial services

The VLC for Unity integration makes use of several software components to provide a full featured and easy to use VLC player in your Unity apps and games. It goes without saying that this represents significant work. This work is handled by both the OSS community and opensource consulting partners. The frontiers and rules of commercial and open-source cohabitation can sometimes be blurry and confusing. The following information aims to clarify that.

Distribution

Distribution can be defined as the way in which you acquire a piece of software, in this case, a VLC for Unity asset.

Distribution $$$ Cost
Build from source Free
Download from the Unity Asset Store 100$ per target platform

The whole of the VLC for Unity asset is open-source. Which means that you can definitely build it yourself and use it, for free.
Depending on your experience building native and managed code, it can be a challenging (yet rewarding) endeavor.

For convenience, Videolabs provides the already built binaries through the Videolabs Store. Building and publishing these assets properly takes time and skill, this is the reason for the financial cost.

Support

VLC for Unity combines wide and powerful bricks of software. Bugs happen and feature requests, too. That is an expected part of software development. If you encounter an issue on VLC for Unity, depending on which component is at play, you have a few options to choose from at your disposal:

Support $$$ Cost
Debug and fix the code by yourself Free
Limited support Free
Bug in the Unity integration Free (+ paid if urgent)
Feature request for the Unity integration Paid
Bug in VLC Paid
Feature request for VLC Paid
Performance optimization for VLC or Unity Paid

If you encounter a problem with VLC for Unity, please open an issue using the issue template. The template provides a structure that you can fill in to give us all the necessary information for us to troubleshoot your issue.

Important note

VLC is a large ecosystem run by the VideoLAN non-profit and a community of volunteers.
Videolabs is an independent company providing development services around VLC open source technologies.
While Videolabs does ship and sell the Unity integration, Videolabs declines all responsibility for issues specific to VLC.

However, Videolabs being the main contributors to VLC improvements, feel free to reach out in case of related commercial projects.

More services

If you would like VLC developers to provide you with:

  • custom development on LibVLC, VLC for Unity and/or LibVLCSharp,
  • training and workshops,
  • support services,
  • consulting services,
  • other multimedia services.

Feel free to contact us.

License

Licensed under the LGPL 2.1 and proprietary license via Videolabs.