intel / gstreamer-media-SDK

GNU Lesser General Public License v2.1
90 stars 53 forks source link

getting erroneous pipeline: no element "vp8enc" #184

Closed manumenon closed 4 years ago

manumenon commented 4 years ago

my pipeline : gst-launch-1.0 \ videotestsrc ! \ video/x-raw,width=640,height=480,framerate=30/1 ! \ videoscale ! videorate ! videoconvert ! timeoverlay ! \ vp8enc error-resilient=1 ! \ rtpvp8pay ! udpsink host=192.168.1.47 port=10027

not able to find a solution erroneous pipeline: no element "vp8enc"

brmarkus commented 4 years ago

Please have a look at the usage-documentation under "https://github.com/intel/gstreamer-media-SDK/blob/master/README.USAGE". An VP8 encoder is not listed under the supported "Available GStreamer MSDK plugins". Which HW, which SOC are you currently working on? Have you checked with calling vainfo (requiring to set the ENV variables LIBVA_DRIVER_NAME and LIBVA_DRIVERS_PATH) whether a VP8 encoder capability is listed?

manumenon commented 4 years ago

Hi have intel-openvino-GStreamer-rt-ubuntu-bionic-2020.3.194 . i am running this in intel nuc. t want to transcode to rtp (vp8) and puts it to Janus. I need to use openvino for processing each frame also

brmarkus commented 4 years ago

Are you sure your used Intel NUC has an embedded Intel GPU? There are Intel GPUs without a GPU or with an AMD GPU. According to the "README.USAGE" this set of gstreamer plugins don't contain a VP8 encoder. I can see a plugin "vp8enc" here "https://gstreamer.freedesktop.org/documentation/vpx/vp8enc.html?gi-language=c", which would require that you install the vp8 plugins on your own, they are not contained in the OpenVINO installation package, I think.

Can you check with gst-inspect-1.0 | grep vp8enc, please?

Have you checked with vainfo whether your HW supports HW-accelerated VP8 encoding? If not then encoding would happen in SW, not using a GPU for acceleration (or requiring to install specific drivers in case your NUC has a AMD GPU).

manumenon commented 4 years ago

gst-inspect-1.0 | grep vp8en image

vainfo i am not able to run because it is running in a docker and no display is mapped

manumenon commented 4 years ago

This is giving output image

brmarkus commented 4 years ago

gst-inspect-1.0 | grep vp8en image

vainfo i am not able to run because it is running in a docker and no display is mapped

For calling vainfo you could do a export DISPLAY=:0 or e.g. export DISPLAY=:1 (or similar, or even make use of X11 forwarding and specifying an IP-address).

manumenon commented 4 years ago

gst-inspect-1.0 | grep vp8en image vainfo i am not able to run because it is running in a docker and no display is mapped

For calling vainfo you could do a export DISPLAY=:0 or e.g. export DISPLAY=:1 (or similar, or even make use of X11 forwarding and specifying an IP-address).

Thanks. i will try this. I have installed this gstreamer-good-plugins (https://gstreamer.freedesktop.org/documentation/vpx/vp8enc.html?gi-language=c) and done some debugging but even then it's showing same. I feel since the openvino is installing some custom paths for gst plugins this is not getting loaded.

brmarkus commented 4 years ago

This is giving output image

Ok, looks like you don't have the vp8 gstreamer plugins installed, which contains e.g. a vp8enc. A Google search showed me these as an example, but I haven't checked whether the description is still valid...:

brmarkus commented 4 years ago

Strange, the last link (http://gstreamer-devel.966125.n4.nabble.com/Can-t-install-VP9enc-or-Vp8enc-in-GStreamer-td4686609.html) shows that a user found the vp8enc being blacklisted by gstreamer:

Is it blacklisted for some reason?

[gst-master] vader@macula001:~/gst-build$ gst-inspect-1.0 -b Blacklisted files: libgstvalidate-1.0.so

Total count: 1 blacklisted file [gst-master] vader@macula001:~/gst-build$ gst-inspect-1.0 |grep vpx vpx: vp8dec: On2 VP8 Decoder vpx: vp8enc: On2 VP8 Encoder vpx: vp9dec: On2 VP9 Decoder vpx: vp9enc: On2 VP9 Encoder

But don't ask me why...

manumenon commented 4 years ago

this is what i mean image

not sure it is taking the plugins which i installed. i need to use openvino as well as GStreamer

manumenon commented 4 years ago

Thanks @brmarkus for "export GST_PLUGIN_PATH=$GST_PLUGIN_PATH:/usr/lib/x86_64-linux-gnu/gstreamer-1.0/"