1

I have developed the gstreamer GPU encoding on Nvidia Jetson Tx2. but now i am trying for Desktop Nvidia GPU encoding using gstreamer.

I am not able get "omxh264enc" in the listed supported elements using "gst-inspect-1.0.exe".

so, i want to do hardware encoding on* desktop GPU* using Gstreamer.

Kindly guide me in right direction, or any sample command line or program for desktop gpu supported encoding. Note: i am trying on laptop gpu + visual studio 2015

Regards, adi

Amir Raza
  • 41
  • 6

1 Answers1

3

Depends on your GPU hardware. There is nvenc for NVIDIA and msdk for Intel at least. It may be that you have to build these elements yourself as they require proprietary libraries from 3rd party vendors that GStreamer can't redistribute. There is no omx on PC, that one is used for embedded devices primarily.

Florian Zwoch
  • 6,764
  • 2
  • 12
  • 21
  • thanks florian for clarification on "omx"... I have developed the gstreamer API code which uses x264enc , i want to replace it with nvenc (ffmpeg has h264_nvenc) in gstreamer .. so how to build nvenc elements for gstreamer on windows. can you guide me to some documentation or link .. for more info on how to use nvenc or cuda encoder with gstreamer. – Amir Raza May 24 '18 at 11:20
  • You need to start on reading the gstreamer documentation on how to build the plugins yourself.. – Florian Zwoch May 24 '18 at 13:27
  • @ Florian Zwoch , I have build the gstreamer src code using mingw as mentioned the gstreamer site , but not able to build gst-libav-1.0 and configure it for nvenc.. Without the gst-libav-1.0 package I am able to generate .exe ….kindly suggest any solution .. more details are their in below link https://stackoverflow.com/questions/50753745/building-gstreamer-from-source-in-windows-using-cerbero-issues-with-buildin – Amir Raza Jun 08 '18 at 05:14
  • You don't need the libav plugin. In fact that one will not use hardware encoding. There is a dedicated `nvenc` plugin in the `bad` plugins collection of Gstreamer. You want to build that one. The same applies for the `msdk` plugin. It is a standalone plugin in the `bad` repository (I think). – Florian Zwoch Jun 08 '18 at 07:37
  • Yeah , currently I am able to generate two executables (gstreamer-1.0.exe & gstreamer-1.0-devel-1.15.0.1.exe) But when I build gst-plugins-bad with nvenc , nvdec and cuda configure.log configure: *** checking feature: NVIDIA Encode API *** configure: WARNING: Could not find library nvidia-encode configure: *** These plugins will not be built: nvenc ISSUE: Now I am able to detect the cuda & nvdec but not nvenc . nvenc is looking for nvidia-encode.dll but in nvidia video sdk 8.2 , the nvidia-encode.dll is missing but its present in Linux folder as nvidia-encode.so . – Amir Raza Jun 14 '18 at 10:44