We will support HEVC playback via Media Foundation transform (MFT).

HEVC playback will be supported via the Media Foundation Transform (MFT) and WMF decoder module will check if there is any avaliable MFT which can be used for HEVC then reports the support information.

HEVC playback can only be support on (1) users have purchased paid HEVC extension on their computer (SW decoding) (2) HEVC hardware decoding is available on users’ computer

For now, I’d like to only enable HEVC for the media engine playback, but keep the HEVC default off on the MFT. Because the media engine is an experimental feature, which is off by default, it’s fine to enable HEVC for that.

HEVC playback needs hardware decoding, and it currently only support on Windows. HEVC playback check would be run when the task is in the mda-gpu, which has the ability for hardware decoding. On other platforms, HEVC should not be supported.

    • Spectacle8011@lemmy.comfysnug.spaceOP
      link
      fedilink
      arrow-up
      9
      arrow-down
      1
      ·
      1 year ago

      Windows users have been asking for HEVC support for years: https://bugzilla.mozilla.org/show_bug.cgi?id=1332136

      7 years ago, this was the answer:

      Mozilla currently has no plans to support H.265. Our focus will be on AV1.

      The reason we won’t support H265 has nothing to do with the difficulty in finding a decoder, or that a decoder source code is released under GPL. Those are trivial matters.

      We will not support h265 video while its patent encumbered.

      BTW, even today vp9 provides better results than H265.

      The conversation changed to, “Firefox could at least do hardware decode support without worrying about patents, right?”

      My guess is they’re doing this because Chrome added HEVC hardware decoding support last year.

      • jmcs@discuss.tchncs.de
        link
        fedilink
        arrow-up
        5
        arrow-down
        2
        ·
        1 year ago

        So fuck users that do don’t use Windows right? Firefox contributing to the fragmentation of the web and pushing users to surveillance software is the exact opposite of what it should be doing.

        • Spectacle8011@lemmy.comfysnug.spaceOP
          link
          fedilink
          arrow-up
          3
          arrow-down
          1
          ·
          1 year ago

          I’m on GNU/Linux myself, and personally, I don’t use HEVC at all. I don’t even decode video in my browser most of the time. I’m usually using mpv with yt-dlp. Streaming services like YouTube, Facebook and Netflix don’t use HEVC to my knowledge (being AOM members and all), but I don’t use services that require me to enable DRM in my browser. I don’t know of a service that requires HEVC decoding support.

          It’s possible Mozilla will support HEVC decoding on other operating systems in the future. Windows is just the easiest one to start with. It’s worth noting that Chrome’s HEVC hardware decoding support does not support Widevine, the DRM Netflix and other streaming services use. So you won’t see them adopting HEVC in browsers, at least.

          The fact that this bug for macOS is a part of the hevc meta-bug indicates that Mozilla also wants to support HEVC decoding on macOS: https://bugzilla.mozilla.org/show_bug.cgi?id=1839107

          Chrome supports HEVC decoding on GNU/Linux, so I don’t see any reason why Firefox wouldn’t too, eventually.

          • TrustingZebra@lemmy.one
            link
            fedilink
            arrow-up
            4
            arrow-down
            2
            ·
            1 year ago

            Speak for yourself. I am Linux user as well and use HEVC for everything. Most of the videos on my Jellyfin server are encoded for HEVC (both 1080P and 4K).

            I use HEVC because it has significantly better compression than older codecs, and many modern devices have hardware decoding support for HEVC. My server also has Intel QuickSync which can transcode HEVC if needed.

            • Spectacle8011@lemmy.comfysnug.spaceOP
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              This was a use case I was introduced to directly before I discovered Firefox was introducing support for HEVC decoding.

              I use HEVC because it has significantly better compression than older codecs, and many modern devices have hardware decoding support for HEVC.

              If it weren’t for iOS, VP9 could take its place, or so the Mozilla developers thought. HEVC and newer codecs like VP9, AV1, VVC, EVC, etc. offer better compression but often at the cost of compute. I imagine hardware decoding evens the scales a lot; I haven’t done any benchmarking myself. I don’t know how much impact the complexity of H.265 vs H.264 has on battery life, if any. Of course, hardware encoding on VP9 is not really a thing (AV1 is ahead of it, even), so HEVC has the edge there.

              In a few years, AV1 hardware implementations will hopefully be ubiquitous; that would solve the efficiency and software patent problems at the same time. It’ll probably coincide with the last of H.264’s patents expiring. So on the one hand, I can understand why Mozilla is in no rush to support HEVC.

              So I imagine you use a Chromium-based browser for Jellyfin?

              • TrustingZebra@lemmy.one
                link
                fedilink
                arrow-up
                1
                ·
                1 year ago

                So I imagine you use a Chromium-based browser for Jellyfin?

                I use a variety of different Jellyfin clients.

                • Jellyfin for Android
                • Jellyfin for Android TV
                • Jellyfin for WebOS
                • Jellyfin Media Player (Windows)
                • Jellyfin Media Player (Flathub, Linux)

                The confusing thing is that although every device I use supports hardware decoding, I am not completely sure if it actually works for each Jellyfin client (I am even less sure after this thread). Regardless HEVC hardware transcoding works on my server (using Intel QuickSync), so my files can always play even if they aren’t directly supported by the client.

                As for AV1, I want to move to it in the future, but as of right now, most of my clients don’t have hardware decoding for it. My server can’t transcode AV1 either, I would need a newer GPU or iGPU. Even the NVIDIA SHIELD TV that I have (a powerful media device), does not have hardware decoding for AV1 (I am still looking forward to a SHIELD refresh).

                • Spectacle8011@lemmy.comfysnug.spaceOP
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  1 year ago

                  Ah, okay. It sounds like you have a physical server, too…you would need to upgrade it yourself if you wanted to use AV1, right? Sounds expensive and annoying…

                  My understanding is the client needs to explicitly support hardware decoding with the relevant APIs, and Jellyfin probably accomplishes it with FFmpeg. There is no way Jellyfin would be implementing a software decoder for HEVC, but they should have no problem implementing hardware decoders for every platform.

                  iOS doesn’t even have a software decoder for AV1 yet, but the iPhone 15 Pro hardware decoder is a start. Likewise, only expensive Android phones have hardware AV1 decoders right now. More desktop GPUs are implementing AV1 decoders. But this transition looks like it’s going to take another 3 years (?) to hit every market segment (cheapest to most expensive)… sigh. I don’t have an AV1 hardware decoder on any of my devices either. It’s insane how long it takes for new hardware decoders to become mainstream. Many HEVC patents might be close to expiring by then, lol.

      • Spectacle8011@lemmy.comfysnug.spaceOP
        link
        fedilink
        arrow-up
        17
        ·
        edit-2
        1 year ago

        In about 5 years, the last patents for the baseline H.264 (AVC) video codec will expire. This means Firefox will finally be able to support decoding for H.264 (the codec most commonly used with the MP4 container) without Cisco needing to cover the licensing fees for them. DaVinci Resolve will also be able to support decoding/encoding on GNU/Linux. Basically, anyone will be able to implement a H.264 decoder/encoder without needing to pay royalties, which means free software programs like Firefox which don’t charge their users will be able to implement it. The codec will no longer be patent-encumbered. See Wikipedia’s debate on whether to support H.264 in 2014 for lots of opinions on this: https://commons.wikimedia.org/wiki/Commons:Requests_for_comment/MP4_Video

        However, H.265 (also called HEVC) is the “next-generation” video codec after H.264. The patent pool situation is so confusing and expensive compared to H.264 that Mozilla, Google, Apple, Microsoft, Netflix, and dozens of other companies using video compression technology formed the Alliance for Open Media to develop a royalty-free codec they could use instead of HEVC. As a result, HEVC has seen very little adoption, particularly on the web. Most companies continue to use H.264. Windows 10 asks you to pay $0.99 for HEVC decoding support in the default video player. In fact, Google even announced they were dropping support for H.264 in 2011 because of their “focus on open web principles”: https://blog.chromium.org/2011/01/html-video-codec-support-in-chrome.html

        They never went through with it, of course.

        AV1 is finally at a point where there are production-ready encoders and decoders. The iPhone 15 Pro is shipping with AV1 hardware decoding support, so even Apple is on board (though only for the most expensive phone so far). So, we’ll see hardware decoding support in more phones in a few years, and hopefully AV1 will see a lot of adoption.

        Adding support for HEVC in browsers feels like a step back because it legitimizes the codec and works against AV1 adoption. Many of these companies have resisted implementing HEVC support (aside from Apple) because it positions AV1 as the only realistic option to shift to from H.264. With HEVC in the picture now, it might be a realistic option in the future. Well, there’s VP9 too, but there are some patent disputes over that codec that might make companies sheepish about adopting it. Not that AV1 is free from those disputes either, but they are far more confident about it and Unified Patents is doing great work invalidating Sisvel’s AV1 patent claims (and even some HEVC patents here and there).

        My opinion is that the ship has already sailed. Chrome caving in and adding HEVC support last year, albeit only with hardware decoders, was all it took with their 90%+ market share. Firefox’s 3% market share isn’t going to make a dent, and not doing it risks keeping users who need HEVC support on Chrome. I also don’t think hardware decoding support is a big deal right now due to all the older devices without HEVC hardware decoders, but it opens the door to ask for more support down the line. I very much doubt Google is going to do that, though.