Announcement

Collapse
No announcement yet.

GStreamer Lands New NVIDIA Video Encoder Implementation

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

  • GStreamer Lands New NVIDIA Video Encoder Implementation

    Phoronix: GStreamer Lands New NVIDIA Video Encoder Implementation

    For those relying on software that leverages the GStreamer multimedia framework and you use the NVIDIA proprietary driver stack on Windows or Linux, with the next release you will be able to enjoy a better NVIDIA GPU-based video encoding experience...

    https://www.phoronix.com/scan.php?pa...-NVIDIA-Encode

  • #2
    What about decoding?

    Comment


    • #3
      Originally posted by LinAGKar View Post
      What about decoding?
      It's just a rewrite of the existing implementation, support has been there for a while.

      Comment


      • #4
        can someone kind enough to explain to me why you would use gstreamer instead of something like ffmpeg? i've been using both for over a decade but never figured out why gstreamer exists.

        Comment


        • #5
          Originally posted by middy View Post
          can someone kind enough to explain to me why you would use gstreamer instead of something like ffmpeg? i've been using both for over a decade but never figured out why gstreamer exists.
          If you've ever followed the development and commits of programs using ffmpeg/libavcodec directly (like mpv), you'd quickly figure out why gstreamer exists. It's for developers' convenience/ease. gstreamer offers devs a simpler/cleaner API and it offers distros a clear way to workaround the patent/copyright BS. On top of that, gstreamer can also leverage ffmpeg through a module/plugin. It's good stuff.

          Comment


          • #6
            Originally posted by middy View Post
            can someone kind enough to explain to me why you would use gstreamer instead of something like ffmpeg? i've been using both for over a decade but never figured out why gstreamer exists.
            Why they both exist is that they were created as independent projects. ffmpeg is its own thing, whereas GStreamer is part of the GNOME project and heavily relies on GLib. It seems to be inspired by Microsoft's DirectShow API/framework. It started out with very general, framework-oriented intentions, whereas I gather ffmpeg evolved to have more generality.

            Also, GStreamer is more of a bindings layer & plugin framework, whereas ffmpeg seems to focus more on implementing parsers, decoders, etc. Also, I don't know if ffmpeg has the same level of support or focus and capabilities around runtime-loaded plugins. Another area where GStreamer has made great strides is in their Python & Rust support - not sure about ffmpeg, in these areas.

            Lastly, GStreamer is important to Nvidia because of their DeepStream project, which is a set of GStreamer plugins for deep learning-based video processing. That's almost certainly their motivation for streamlining and optimizing their NVDEC (and, to a lesser extent, NVENC) plugins.

            Comment


            • #7
              I on Tumbleweed only install ffmpeg, apart from something pre-installed GStreamer. However ffmpeg offers full coverage for the codec.

              Comment


              • #8
                Lastly, GStreamer is important to Nvidia because of their DeepStream project, which is a set of GStreamer plugins for deep learning-based video processing. That's almost certainly their motivation for streamlining and optimizing their NVDEC (and, to a lesser extent, NVENC) plugins.
                The first part of this is true, but the second part is not. The GStreamer plugin for hardware-accelerated encoding/decoding that ships with Nvidia's DeepStream SDK is nvvideo4linux2, which is LGPL-2 but developed in private by Nvidia (source is available in the SDK). It uses custom extensions to the Linux kernel's V4L2 ioctls. I am not sure why this work isn't upstream; perhaps it is planned and just hasn't been a priority so far.

                The cross-platform nvcodec plugin which this article is about, uses the NVENC and NVDEC APIs but was not written by Nvidia and does not have any contributions from Nvidia as far as I know. Nvidia does contribute to GStreamer in other ways, though.

                Comment


                • #9
                  working hard for those article photos I see

                  Comment

                  Working...
                  X