VLC for Unity now supported on Linux

(code.videolan.org)

137 points | by martz 12 hours ago ago

39 comments

  • tmtvl 10 hours ago

    On a similar note: Godot VLC (<https://github.com/xiSage/godot-vlc>), because let's not pretend we don't remember the Unity terms change controversy.

    • thih9 9 hours ago

      Context about the Unity terms change controversy: https://www.gamedeveloper.com/business/unity-is-killing-its-...

      > Initially, the Runtime Fee sought to charge developers a per install tariff once projects had passed certain milestones. It was a decision that left many users reeling, resulting in a colossal backlash (…)

      How users reacted: https://old.reddit.com/r/OutOfTheLoop/comments/16h9lnw/whats...

      > Any install, any reinstall, any installation on a second device, each and every one slap the dev with a fee. It gets dumber, because that cracked copy of your game on the high seas still incurs a fee when the pirate installs it. You might think we're at peak stupidity. You might think anyone who makes anything with Unity is a "fucking idiot" (the CEO certainly does), but we're not done yet. It's retroactive. (…)

      • arijun 6 hours ago

        Side note--is there any way to access reddit now for people who refuse to log in or get the app? Old reddit asks tells me I have to use new reddit for "security" and new reddit says "Get the app to keep using Reddit".

      • benoau 8 hours ago

        Sounds similar to Apple's "Core Technology Fee", literally a mechanism for sabotaging third party app distribution in the EU.

        • Elfener 6 hours ago

          This is a very big oversight in that EU law.

          Allowing third-party "app stores" is completely useless when all apps must be approved by the operating system company.

          It's also being abused by google (technically, will be, very soon), I guess they saw that since the legal framework for this kind of thing has now been written, they can do it too.

          • lukeschlather 4 hours ago

            There was no oversight. The EU told Apple the CTC did not comply with the law. Apple's new scheme still seems bad but I don't think this is the end of it.

            https://ec.europa.eu/commission/presscorner/detail/en/ip_24_...

            • benoau 3 hours ago

              Google just got fined €430 million for a very similar fee scheme, practically copied from Apple, so it's highly unlikely that Apple will get away with it forever. Theoretically Apple should have a monster fine brewing since they're a repeat offender and it should be retroactively applied.

        • gumby271 7 hours ago

          Except at least there are alternatives to Unity without replacing your entire OS and hardware.

    • martz 9 hours ago

      yes this is good too, actually started contributing to this :)

  • martz 12 hours ago

    Recently added support for Linux to VLC for Unity, with full hardware decoding.

    It uses OpenGL rendering through GLX and EGL, with DMA-BUF texture sharing to pass video frames efficiently to Unity’s renderer.

    Only x86_64 is supported at this time. In the future, I will add ARM64 support as well as Vulkan.

    • torginus 5 hours ago

      Would it not be more efficient to create the decoder in-process, then you could feed it the bitstream via a compute buffer, and the video would be rendered to a texture.

    • sylware 10 hours ago

      Don't forget to build 'correct' ELF64 binaries for broad elf(glibc)/linux distro support (-static-libgcc -static-libstdc++, and tight glibc ABI version control with binutils VERSION scripts).

      At least those build options should be default.

      • martz 9 hours ago

        thanks for your comment, will look into it!

    • SurajMishra 10 hours ago

      Thank you very much.

  • Hendrikto 9 hours ago

    To everybody else being confused: This is about Unity the game engine, not Unity the desktop environment.

    • tokai 7 hours ago

      Unity (the DE) was discontinued 9 years ago..

  • fusslo 10 hours ago

    Can a unity dev/game dev help elucidate why you'd use vlc in unity?

    For cutscene playback?

    • harrisoned 10 hours ago

      For a sandbox game this is very useful, where you can spawn video players in-game. For social games (like VRChat) this is also great since synced video playback is a very popular feature for people to watch content together in VR.

    • csande17 9 hours ago

      Unity includes its own video player implementation ( https://docs.unity3d.com/Manual/Video.html ), so presumably you'd mainly want to use VLC for wider range of supported codecs?

      • kjjohnsen 8 hours ago

        Basically. Unity video player is fine if you control the content. The other very reasonable option is to funnel shared content through a synced web browser interface. I've developed a few collaborative XR applications, and have used a blend of things to support sharing.

      • ComputerGuru 6 hours ago

        It’s not hard to use libavcodec to transcode, though.

    • martz 9 hours ago

      RTSP support, twitch-style in-game visio, any kind of non-game Unity apps (there are many), 360 video playback, mediaplayer in VR headset, simulators of all kinds, etc..

  • jokoon 3 hours ago

    I don't know why, but on windows, the first time I start VLC after a windows boot, it takes about 5s to 8s to open a video file, any sort of video file

    I suspect it's a graphics driver issue, or something else

    • krono 3 hours ago

      It's caused by a stale plugin cache, which somehow triggers a blocking windows defender scan on application launch.

      I only managed to figure that out thanks to this[1] reddit comment, which also includes a solution:

        Noticed this a while back with 3.0.23. Managed to troubleshoot via debug logs.
        
        Basically the plugin cache goes stale and has to rebuild itself every first launch. No clue why.
        
        To fix: go to C:\Program Files\VideoLAN\VLC (or wherever you installed) with a terminal in administrator mode.
        run the command: ./vlc-cache-gen.exe "C:\Program Files\VideoLAN\VLC\plugins"
        
        That will rebuild the plugins.dat file which should fix it.
      
      No windows defender exclusion required.

      [1]: https://old.reddit.com/r/VLC/comments/1skofwx/vlc_3023_windo...

  • hparadiz 5 hours ago

    VRChat folks will love this. Videoplayers are embedded into Unity scenes aka "maps" as a regular imported lib. The videoplayer is a drawn surface where users can see video playback. Most commonly used for streaming live music from a stream like Twitch.

  • torginus 5 hours ago

    Forgive me for my ignorance - but my understanding is that VLC is a frontend for ffmpeg, and even ffmpeg is 'just' a wrapper for hardware video decoders such as NVDEC when viewing supported codecs, like h264/5.

  • happyPersonR 6 hours ago

    Sidenote:

    Video game programming with unity was an absolute nightmare to try and get working with any kind of gitops and or with multiple people working on the same code base a couple of years ago

    Wonder if that changed ?

    • 1bpp 11 minutes ago

      They acquired Plastic SCM around 2020 and I believe they integrated it into the engine, but that was shortly after I stopped using Unity

  • maxlin 25 minutes ago

    I wish Unity's built-in videoplayer wasn't such a disappointment. The performance on Windows is god awful. Have had to write a mass video reference recompressor/in-scene replacer that just attempts to pick the best compression flags and reduces resolution just avoid dropping frames playing ~1080p videos on multi-core PC's with discrete GPU's. Mac was fine playing even the overly high res original footage, high 2000+ pixel portrait tutorial videos.

    Wrote a proper double-buffering video/audio player in Unity using parts of an ffmpeg wrapper over ten years ago. Seems silly they never did anything similar officially, just used lackluster platform API's.

  • ekjhgkejhgk 10 hours ago

    Blocked because I don't use cookies. Ok, I've always preferred mpv anyway.

    • nisiddharth 9 hours ago

      I've 3rd party cookies blocked and it works just fine. Have you disabled all cookies?!

    • xena 8 hours ago

      Why do you do this to yourself?

      • TiredOfLife 6 hours ago

        Yeah, why use software that works instead of software that doesn't