Announcement

Collapse
No announcement yet.

Using NVIDIA's NVENC On Linux With FFmpeg

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

  • ubuntuaddicted
    replied
    Originally posted by ubuntuaddicted View Post
    I'm trying to get ffmpeg to compile with libnvenc enabled but i'm failing miserably. as per instructions i found on the dark net (joke) i downloaded the "windows" NVENC SDK which was available at https://developer.nvidia.com/nvidia-video-codec-sdk. (note i read that i needed the windows version of the sdk for whatever reason) I extract the nvEncodeAPI.h header file and make my PKGBUILD see it but ffmpeg is choking on opencl portion of the ffmpeg libraries. It probably doesn't help that I am very new to Arch linux, this is the first PKGBUILD I've ever created and the fact that I don't know C+ makes this all very complex. I was getting some help from someone over IRC but basically we think that the person here https://github.com/Brainiarc7/ffmpeg_libnvenc got it to work in Ubuntu 14.04 because his opencl libraries are out of date so it works. I'm trying to build it in Arch which has mostly up to date packages. If anyone is able to assist me in getting my PKGBUILD to work I would great appreciate it. Thanks..

    here's my makepkg -L log: https://clbin.com/bIeUI

    and here's the PKGBUILD: https://clbin.com/NNno7

    NOTE: the end goal is to use ffmpeg w/ libnvenc enabled to encode video for either local recordings and or livestreaming to a rtmp server using simplescreenrecorder or even make obs-studio use libnvenc as well. Not sure about kdenlive using it since melt is involved there and as I said I'm not a programmer
    stupid i couldn't edit my previous post but I did end up getting it working with some voodoo magic. Here's the final PKGBUILD if anyone is interested but there's a lot of notes to read at the top. https://clbin.com/ITbKg

    Leave a comment:


  • ubuntuaddicted
    replied
    can't compile ffmpeg w/ libnvenc enabled

    I'm trying to get ffmpeg to compile with libnvenc enabled but i'm failing miserably. as per instructions i found on the dark net (joke) i downloaded the "windows" NVENC SDK which was available at https://developer.nvidia.com/nvidia-video-codec-sdk. (note i read that i needed the windows version of the sdk for whatever reason) I extract the nvEncodeAPI.h header file and make my PKGBUILD see it but ffmpeg is choking on opencl portion of the ffmpeg libraries. It probably doesn't help that I am very new to Arch linux, this is the first PKGBUILD I've ever created and the fact that I don't know C+ makes this all very complex. I was getting some help from someone over IRC but basically we think that the person here https://github.com/Brainiarc7/ffmpeg_libnvenc got it to work in Ubuntu 14.04 because his opencl libraries are out of date so it works. I'm trying to build it in Arch which has mostly up to date packages. If anyone is able to assist me in getting my PKGBUILD to work I would great appreciate it. Thanks..

    here's my makepkg -L log: https://clbin.com/bIeUI

    and here's the PKGBUILD: https://clbin.com/NNno7

    NOTE: the end goal is to use ffmpeg w/ libnvenc enabled to encode video for either local recordings and or livestreaming to a rtmp server using simplescreenrecorder or even make obs-studio use libnvenc as well. Not sure about kdenlive using it since melt is involved there and as I said I'm not a programmer

    Leave a comment:


  • Nille
    replied
    Originally posted by nanonyme View Post
    I don't know what the situation there is wrt encoding.
    The way to go should a Media Foundation/DirectShow encoder that support the Hardware Encoder. Unfortunately not all applications support this codecs or the vendor ship those codecs. As Example, AMD has installed a Encoder and some filters but Intel doesn't do that.

    Leave a comment:


  • nanonyme
    replied
    Originally posted by Nille View Post
    Yes, and now you can troll somewhere else.
    Well, further decoding API's are irrelevant on Windows anyway because everyone uses DirectX Video Acceleration. I don't know what the situation there is wrt encoding.

    Leave a comment:


  • Nille
    replied
    Originally posted by drSeehas View Post
    Oh, I see: the whole os world consists only of Windows and Linux.
    Yes, and now you can troll somewhere else.

    Leave a comment:


  • drSeehas
    replied
    Originally posted by Nille
    And both are Linux Only. ...
    Originally posted by Nille View Post
    ... non of the vendors support this apis on windows. ...
    Oh, I see: the whole os world consists only of Windows and Linux.

    Leave a comment:


  • Nille
    replied
    Originally posted by lovenemesis View Post
    OpenMAX and VAAPI are cross-platform.
    However, the underlying hardware can still be accessed via other platform specific APIs.

    ffmpeg should be able to utilize them for encoding, just like how it utilizes vaapi for decoding, or how gstreamer uses openmax for decoding and encoding.
    That not an answer of my question. And Yes you are right, vaapi and openmax are cross platform but non of the vendors support this apis on windows.

    But back to my question: How to use openmax or va-api for encoding in ffmpeg.

    Leave a comment:


  • drSeehas
    replied
    Originally posted by Nille View Post
    And both are Linux Only. ...
    No!

    VA API/libVA is available at least on the *BSDs too.
    At least OpenMAX IL/Bellagio is available on FreeBSD.

    Leave a comment:


  • lovenemesis
    replied
    Originally posted by Nille View Post
    And both are Linux Only. But only of interest, how can ffmpeg use openmax or vaapi for encoding?
    OpenMAX and VAAPI are cross-platform.
    However, the underlying hardware can still be accessed via other platform specific APIs.

    ffmpeg should be able to utilize them for encoding, just like how it utilizes vaapi for decoding, or how gstreamer uses openmax for decoding and encoding.

    Leave a comment:


  • Nille
    replied
    Originally posted by lovenemesis View Post
    VCE support is already there in OpenMAX while QuickSync is in VA-API.
    And both are Linux Only. But only of interest, how can ffmpeg use openmax or vaapi for encoding?

    Leave a comment:

Working...
X