Announcement

Collapse
No announcement yet.

FFmpeg Lands CLI Multi-Threading As Its "Most Complex Refactoring" In Decades

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • FFmpeg Lands CLI Multi-Threading As Its "Most Complex Refactoring" In Decades

    Phoronix: FFmpeg Lands CLI Multi-Threading As Its "Most Complex Refactoring" In Decades

    The long-in-development work for a fully-functional multi-threaded FFmpeg command line has been merged! The FFmpeg CLI with multi-threaded transcoding pipelines is now merged to FFmpeg Git ahead of FFmpeg 7.0 releasing early next year. FFmpeg is widely-used throughout many industries for video transcoding and in today's many-core world this is a terrific improvement for this key open-source project...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    That's great!
    I wish that all web browsers will just use it and stop with their shenanigans of using their own embedded libraries or old versions of FFmpeg.

    Comment


    • #3
      Originally posted by Danny3 View Post
      That's great!
      I wish that all web browsers will just use it and stop with their shenanigans of using their own embedded libraries or old versions of FFmpeg.
      They certainly cannot get rid of embedded versions since platforms cannot just be expected to have the right version of FFmpeg available already and certainly there is no guarantee at all that random versions out there is going to work the same as the version tested by the browsers. They bundle for good reasons.

      Comment


      • #4
        Originally posted by spicfoo View Post

        They certainly cannot get rid of embedded versions since platforms cannot just be expected to have the right version of FFmpeg available already and certainly there is no guarantee at all that random versions out there is going to work the same as the version tested by the browsers. They bundle for good reasons.
        Perhaps more accurately, they bundle for pragmatic reasons in the very fragmented distribution ecosystem that is Linux (which is both a strength, and a weakness, of Linux).

        Comment


        • #5
          Originally posted by spicfoo View Post

          They certainly cannot get rid of embedded versions since platforms cannot just be expected to have the right version of FFmpeg available already and certainly there is no guarantee at all that random versions out there is going to work the same as the version tested by the browsers. They bundle for good reasons.
          They bundle it because of Windows, where there's no guarantee that FFmpeg installed and few people probably have it installed anyway.

          Then it's also them who give us the lame excuse for not supporing HEVC decoding being afraid of having code inside the web browser that can decode such a patent encumbered codec, instead of using what's available on the system and avoid legal problems.

          I assume the missing HDR support might also be somewhat related to this.

          How hard it would be for them to just use the system's FFmpeg, if it's installed, if not use their own internal things?

          Or at least update their internal Ffmpeg copy on every release so it stays in sync with the upstream?

          No wonder Firefox at least always craps itself and loses frames decoding 4K streams on Youtube and probably other websites too!

          If we add other quality features to those streams, like 60 FPS or high bitrate, it's even worse.

          And that's without HDR as HDR is not supported at all, even though there are lots of HDR videos on Youtube and HDR movies elsewhere.

          But yeah, why should Mozilla take full advantage of FFmpeg, when paying their CEO an astronomical salary is all that they want to do?

          Comment


          • #6
            Originally posted by Danny3 View Post

            They bundle it because of Windows, where there's no guarantee that FFmpeg installed and few people probably have it installed anyway.

            How hard it would be for them to just use the system's FFmpeg, if it's installed, if not use their own internal things?
            It's not just Windows. Plenty of Linux distributions don't ship with FFmpeg by default or ship versions that don't have the same feature set, ABI etc that that the bundled version has. As I already noted before, you can't rely on an external version even it exists because among other things distributions change the defaults or patch out codecs since FFmpeg doesn't support plugins. There is zero platform stability that any browser can rely on for multimedia on Linux, Windows or anywhere else really.

            Comment


            • #7
              Originally posted by spicfoo View Post
              They certainly cannot get rid of embedded versions since platforms cannot just be expected to have the right version of FFmpeg available already and certainly there is no guarantee at all that random versions out there is going to work the same as the version tested by the browsers. They bundle for good reasons.
              This makes sense, but since most browsers have advanced configs, it'd be cool if they allowed you to override libraries and binaries. On the other hand, part of me wonders if users could just simply use symlinks, though I'm guessing it's never that simple.

              Comment


              • #8
                Originally posted by spicfoo View Post

                They certainly cannot get rid of embedded versions since platforms cannot just be expected to have the right version of FFmpeg available already and certainly there is no guarantee at all that random versions out there is going to work the same as the version tested by the browsers. They bundle for good reasons.
                it would be a lot easier if ffmpeg would stop changing the API so often

                Comment


                • #9
                  AFAIK at least the linux ecossystem is producing long-term options to make this simpler in the future:

                  Pipewire video capabilities (see https://www.pipewire.org/)

                  Vulkan Video (see https://www.khronos.org/blog/an-intr...o-vulkan-video)

                  Nvidia VAAPI compatibility layer (see https://github.com/elFarto/nvidia-vaapi-driver)
                  ps: IIRC done by 3rd-parties to ensure that API is available everywhere despite Nvidia's best efforts to ignore it and offer exclusive alternatives, split the market, etc
                  edit: now that i found the github link and added it, it seems it was done explicitly to fix the video acceleration mess around firefox when they at least implemented VAAPI but nvidia couldn't use it

                  etc...


                  and yes, many FOSS video players bundle some version of ffmpeg or similar but at least allow the user to point towards their own...
                  ...which brings me to an important question: does firefox have a launch parameter or advanced config hidden somewhere for this or is it really completely limited to its own unless you compile FF yourself? (a pretty daunting task IMHO)
                  Last edited by marlock; 12 December 2023, 05:15 PM.

                  Comment


                  • #10
                    I am glad the FFmpeg / Libav split is no longer a thing. I don't use ffmpeg much directly, though know I use all the time indirectly. Is of great use when I have needed it. In regards to browsers (i.e. Firefox in this discussion) bundling their own version, the arguments for doing so make perfect sense. That said, a user flag/setting to use the user/OS installed version as an override would be nice. But totally get why it would be bundled.

                    By the way, Fabrice is a coding machine, even is he is no longer involved (I have no idea.)

                    Comment

                    Working...
                    X