VLC for Unity now supported on Linux

(code.videolan.org)

131 points | by martz 12 hours ago

10 comments

  • tmtvl 9 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 8 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 5 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 7 hours ago

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

        • Elfener 5 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 3 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 2 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 6 hours ago

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

        • martz 8 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 9 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 8 hours ago

                thanks for your comment, will look into it!

              • SurajMishra 9 hours ago

                Thank you very much.

              • Hendrikto 8 hours ago

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

              • fusslo 9 hours ago

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

                For cutscene playback?

                • harrisoned 9 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 8 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 7 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 8 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 2 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 2 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.

                            • maxlin 8 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.

                              • happyPersonR 5 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 ?

                                • ekjhgkejhgk 9 hours ago

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

                                  • nisiddharth 8 hours ago

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

                                    • xena 7 hours ago

                                      Why do you do this to yourself?

                                      • TiredOfLife 5 hours ago

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