Announcement

Collapse
No announcement yet.

Libav Adds H.264 & HEVC Encoders For NVIDIA's NVENC

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

  • Libav Adds H.264 & HEVC Encoders For NVIDIA's NVENC

    Phoronix: Libav Adds H.264 & HEVC Encoders For NVIDIA's NVENC

    Following FFmpeg in supporting NVENC for NVIDIA's GPU-based video encoding on Linux systems, the forked Libav project has now written up their own NVENC support for H.264 and H.265/HEVC...

    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
    The whole libav project seems like a waste of time. It's only alive due to Ubuntu's and Debian's political decision to use it instead.

    Comment


    • #3
      Originally posted by caligula View Post
      The whole libav project seems like a waste of time. It's only alive due to Ubuntu's and Debian's political decision to use it instead.

      Not quite.

      Actually just Debian's political decision. Ubuntu just copies all the packages from Debian.

      And that's not quite true either, because apparently just a few Debian guys still prefer libav over ffmpeg. Namely Reinhard Tartler, Jonas Smedegaard and a few others.

      That might change soon though, see this thread:

      Comment


      • #4
        Zero support for Intel's VAAPI which has been around for years, but as soon as NVIDIA comes out with something.....yeah, when people start claiming that open source drivers are inferior, it's bullshit.

        Comment


        • #5
          Originally posted by sandy8925 View Post
          Zero support for Intel's VAAPI which has been around for years
          Wait, what?

          Code:
          $ ./configure --list-hwaccels
          h263_vaapi              hevc_d3d11va            mpeg4_vdpau
          h263_vdpau              hevc_dxva2              vc1_d3d11va
          h264_d3d11va            mpeg1_vdpau             vc1_dxva2
          h264_dxva2              mpeg1_xvmc              vc1_vaapi
          h264_mmal               mpeg2_d3d11va           vc1_vdpau
          h264_qsv                mpeg2_dxva2             wmv3_d3d11va
          h264_vaapi              mpeg2_vaapi             wmv3_dxva2
          h264_vda                mpeg2_vdpau             wmv3_vaapi
          h264_vda_old            mpeg2_xvmc              wmv3_vdpau
          h264_vdpau              mpeg4_vaapi
          See those _vaapi entries in there? That's not just cosmetics, they fully work, mpv makes use of them. Ok, this is ffmpeg, I have no idea about libav, but I'd find it weird if it doesn't have them.

          Edit: Hmm, it just occurred to me you might be talking about encoding. Well, no idea why Intel's encoders aren't supported. I do know that at least the lead mpv developer considers Nvidia's APIs way better than what Intel comes up with (VDPAU is better designed that VAAPI and such). It's very likely others share his view, that's why they're more eager to implement Nvidia's stuff than they are Intel's
          Last edited by Gusar; 31 May 2015, 03:38 PM.

          Comment


          • #6
            Originally posted by Gusar View Post
            Wait, what?

            Code:
            $ ./configure --list-hwaccels
            h263_vaapi hevc_d3d11va mpeg4_vdpau
            h263_vdpau hevc_dxva2 vc1_d3d11va
            h264_d3d11va mpeg1_vdpau vc1_dxva2
            h264_dxva2 mpeg1_xvmc vc1_vaapi
            h264_mmal mpeg2_d3d11va vc1_vdpau
            h264_qsv mpeg2_dxva2 wmv3_d3d11va
            h264_vaapi mpeg2_vaapi wmv3_dxva2
            h264_vda mpeg2_vdpau wmv3_vaapi
            h264_vda_old mpeg2_xvmc wmv3_vdpau
            h264_vdpau mpeg4_vaapi
            See those _vaapi entries in there? That's not just cosmetics, they fully work, mpv makes use of them. Ok, this is ffmpeg, I have no idea about libav, but I'd find it weird if it doesn't have them.

            Edit: Hmm, it just occurred to me you might be talking about encoding. Well, no idea why Intel's encoders aren't supported. I do know that at least the lead mpv developer considers Nvidia's APIs way better than what Intel comes up with (VDPAU is better designed that VAAPI and such). It's very likely others share his view, that's why they're more eager to implement Nvidia's stuff than they are Intel's

            I did some encoding with libvpx (VP8) and x264 with ffmpeg and I'm pretty sure that there is hardware accel for vaapi (Intel). I have a passable room heater with libvpx with fun "fan ambient sound", while I have speedy realtime H264 capture and encoding at 1080p. En/Transcoding is also about 10x times faster for H264 videos. So yes, I'm pretty sure you gussed right, x264 is acellerated.

            ps. Off topic, but thanks to the new forum design I can't switch input language for spelling in Chrome because it hi-jacks the context menu with some meaningless clutter..

            Comment


            • #7
              Hello,

              I'm the one who added the original NVENC h264 support to ffmpeg.
              I was also trying to add libva(vaapi) based hardware encoding, but the quality of that library and its API is so horribly bad, that after two weeks of basicaly no progress i gave up on it.
              So in theory libva based hardware encoding is possible since years, but there only is one actual implementation using it, which is a gstreamer module. I wasn't able to get it working though.

              For Windows, libmfx(QuickSync) support is already merged in ffmpeg master and will be in 2.7. It provides hardware accelerated h264 encoding on most modern Intel GPUs.
              QuickSync/libmfx is only available on Windows though(And on Linux via some proprietary, 500$, SDK from Intel, which wraps it on top of their own closed fork of libva).

              x264 and libvpx are not hardware accelerated at all. x264 does have some opencl support, but the gains from that are barely noticable.

              Comment


              • #8
                Originally posted by skriticos View Post
                I did some encoding with libvpx (VP8) and x264 with ffmpeg and I'm pretty sure that there is hardware accel for vaapi (Intel). I have a passable room heater with libvpx with fun "fan ambient sound", while I have speedy realtime H264 capture and encoding at 1080p. En/Transcoding is also about 10x times faster for H264 videos. So yes, I'm pretty sure you gussed right, x264 is acellerated.
                x264 is mostly software. Optionally it can do one tiny part (the lookahead pass) in hardware using OpenCL, but the speed increase from that is minimal. I don't know why you're seeing such differences. While VP9 encoding is still very slow, VP8 is plenty fast. See my little encoding test here: http://www.phoronix.com/forums/forum...830#post629830


                Originally posted by BtbN View Post
                I was also trying to add libva(vaapi) based hardware encoding, but the quality of that library and its API is so horribly bad, that after two weeks of basicaly no progress i gave up on it.
                Haha. So I was right, wm4 (main mpv developer) isn't the only one with a serious dislike for VAAPI. Read mpv commit messages every time VAAPI is involved, they always put a smile on my face . Despite that though, mpv with VAAPI actually works really well for me

                Comment


                • #9
                  Could someone please explain how well supported different vendors hardware encoding is in linux?
                  It seems from this thread that that Nvidia has an good api and Intel a bad one is this true and how's AMD?

                  Comment


                  • #10
                    Originally posted by Isedonde View Post
                    Not quite.

                    Actually just Debian's political decision. Ubuntu just copies all the packages from Debian.

                    And that's not quite true either, because apparently just a few Debian guys still prefer libav over ffmpeg. Namely Reinhard Tartler, Jonas Smedegaard and a few others.

                    That might change soon though, see this thread:
                    http://lists.alioth.debian.org/piper...ay/043979.html
                    Yea, and Gentoo recently switched back to FFmpeg as default as well.

                    Comment

                    Working...
                    X