Announcement

Collapse
No announcement yet.

FFmpeg Expands Its NVDEC CUDA-Accelerated Video Decoding

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

  • FFmpeg Expands Its NVDEC CUDA-Accelerated Video Decoding

    Phoronix: FFmpeg Expands Its NVDEC CUDA-Accelerated Video Decoding

    A few days back I wrote about FFmpeg picking up NVDEC-accelerated H.264 video decoding and since then more FFmpeg improvements have landed...

    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
    If I compile and install ffmpeg from git mpv won't use it because it uses libav (or whatever mpv is using), right? What player uses ffmpeg?
    Last edited by cl333r; 14 November 2017, 07:03 AM.

    Comment


    • #3
      Does this mean that instead of implementing support for VDPAU, VAAPI, some other API that any driver could theoretically support developers now have to support this Nvidia-only sollution while still maintaining some other acceleration method for Intel's and AMD's Chips?

      Comment


      • #4
        Originally posted by GruenSein View Post
        Does this mean that instead of implementing support for VDPAU, VAAPI, some other API that any driver could theoretically support developers now have to support this Nvidia-only sollution while still maintaining some other acceleration method for Intel's and AMD's Chips?
        Yes.
        While theoretically any driver could implement the nvenc API, seeing as it uses CUDA, that's not going to happen...

        Comment


        • #5
          Originally posted by cl333r View Post
          If I compile and install ffmpeg from git mpv won't use it because it uses libav (or whatever mpv is using), right? What player uses ffmpeg?
          Most players use FFMPEG, including mpv. But VLC is the most popular and it does not have any support for NVDEC, because the devs won't implement it, citing that VDPAU is enough. Well, VDPAU was killed off by Nvidia about two years ago, so it's not going to be updated ever again and certainly not for 4K use. You have to use the 3.X branch of FFMPEG to get full use of newer hardware and not the 2.X branch that most distros are using, which is also what VLC devs use for their own work.

          Comment


          • #6
            Hope to see NVENC support arrive too!

            Originally posted by TheLexMachine View Post

            Most players use FFMPEG, including mpv. But VLC is the most popular and it does not have any support for NVDEC, because the devs won't implement it, citing that VDPAU is enough. ... which is also what VLC devs use for their own work.
            If VLC uses FFMPEG, why wouldn't they add the NVDEC support when it's made available in a future release of theirs? It'd be presumably much easier than supporting NVDEC themselves directly if the support is already there with FFMPEG?

            I like and use VLC, but if that isn't the case I'd be willing to give another player a try. Is MPV a good choice for this sort of support in future? I think I've tried to use MPV in the past on KDE and it was causing issues blocking compositing like a game at fullscreen would, even if MPV wasn't fullscreen iirc. If VDPAU can't handle 4k and has poor support for newer GPU, surely that'd mean the VLC devs would change that opinion in future and consider the switch?

            Comment


            • #7
              Isn't "Cross-platform" and "CUDA" a contradiction in itself?

              Comment


              • #8
                Originally posted by polarathene View Post
                Hope to see NVENC support arrive too!



                If VLC uses FFMPEG, why wouldn't they add the NVDEC support when it's made available in a future release of theirs? It'd be presumably much easier than supporting NVDEC themselves directly if the support is already there with FFMPEG?

                I like and use VLC, but if that isn't the case I'd be willing to give another player a try. Is MPV a good choice for this sort of support in future? I think I've tried to use MPV in the past on KDE and it was causing issues blocking compositing like a game at fullscreen would, even if MPV wasn't fullscreen iirc. If VDPAU can't handle 4k and has poor support for newer GPU, surely that'd mean the VLC devs would change that opinion in future and consider the switch?
                You're not really understanding how it works. VLC cannot use NVDEC directly. It's only available via FFMPEG, which has supported it for a long enough period to have it available in VLC. But most distros use the older 2.X FFMPEG and not the 3.X and later FFMPEG required for NVDEC. It should already be in VLC for the purposes of development, but it's not and they won't add it. Next year, some distros should start shipping with the 3.X FFMPEG, but the guy who runs VLC doesn't want to add support for NVDEC. Everyone who has asked for it has had it shut down by him or one of the other inner circle. He says VDPAU is good enough and works, which it isn't and doesn't. You can't use VDPAU with the newer Nvidia GPUs beyond 1080P because it doesn't do 4K or properly support the newer codecs now in use, because Nvidia left the code broken/unfinished when they ended support for VDPAU, in favor of NVDEC, which is a cross-platform CUDA-enabled API for Linux and Windows. Because of that, there is no choice for owners of newer Nvidia hardware. From what I've seen on the VLC dev forums, everything is focused on Windows development and there isn't much interest in Linux stuff, despite the fact that VLC is the dominant media player for Linux. Nvidia still fully supports PureVideo (DXVA) on Windows, so there's no push to have NVDEC added in the Windows version of VLC, which means there is literally, no interest whatsoever from the VLC people in adding it.

                As for mpv, it's shit. It has no interface to speak of and you have to do everything via command line. you can download a GUI wrapper for it, but I've never gotten it to work and I only get nothing but crash messages when I try to use it. The NVDEC support with it is not solid yet because it's the older version of NVDEC that was called CUVID, which did not use the video decoding block - NVDEC can use the video decoding hardware like VDPAU did AND it also has the option of using the CUDA shaders - and shunted the video to the CUDA cores, so it's not good for much of anything right now. Unfortunately, there really is no choice on Linux. VLC is really as good as it gets until someone comes up with something better, which nobody is going to do or likely can do at this point.

                Comment


                • #9
                  I use ffmpeg, mpv and smplayer. I only ever see the smplayer gui. This works great with vaapi on my intel processor and vdpau on my amd graphics card. I look forward to having hardware that does VP9 and 10bit decoding

                  Comment


                  • #10
                    Kodi should support it soon, that would be best...

                    Comment

                    Working...
                    X