• Ephera@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    1 month ago

    Btw, what is up to gstreamer vs. MPV vs. ffmpeg ? I dont get the difference.

    As far as I understand, MPV is a video player application and offers libmpv as a high-level video playback library. I’m not sure, if it makes use of GStreamer or ffmpeg under the hood, but it wouldn’t surprise me.

    GStreamer is somewhat lower in the stack and much more generic. It allows orchestrating various steps in a media processing pipeline, so could also be used for video editing or transcoding or the like.

    And ffmpeg is a library specifically for transcoding of as many formats as possible. You can use ffmpeg as part of GStreamer via a plugin, for example. But there is also a really useful ffmpeg CLI, with which you can script all kinds of file conversions, like MP3 to OGG Opus is something I do often.

    • boredsquirrel
      link
      fedilink
      arrow-up
      2
      ·
      1 month ago

      But you can also use ffmpeg to play videos, through ffplay. Which might use gstreamer under the hood or not?

      • Ephera@lemmy.ml
        link
        fedilink
        arrow-up
        4
        ·
        1 month ago

        Yeah. The ffplay documentation says:

        FFplay is a very simple and portable media player using the FFmpeg libraries and the SDL library. It is mostly used as a testbed for the various FFmpeg APIs.

        Given that, I would expect that it actually doesn’t make use of GStreamer, just to really keep things as simple as possible.

        From a programming perspective, it isn’t really surprising that these projects have overlap. You see that quite often, that some venerable library, like ffmpeg, does a massive chunk of the grunt work and then you’ve got libraries like GStreamer and libmpv, which sit on top of that, and ‘just’ integrate it into a wider framework or tie it all together for a specific purpose.

        From an outside perspective, that will make it look like they’re all similar, because the core of the magic, ffmpeg, is included into all of them (I assume).
        It’s just more confusing here than in other projects, because each of these projects is visible to us users in some way.

        • boredsquirrel
          link
          fedilink
          arrow-up
          2
          ·
          1 month ago

          Very strange :D

          Then Fedora only ships libav stuff, which is forked off ffmpeg, and only includes the free stuff. I wonder how these now work together