Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gst-python is installed, but can't find plugins

I'm trying to run some Gstreamer examples for the Google Coral USB accelerator - I'm not using the Coral dev board. The driver is installed and works and I can classify images from my camera using OpenCV and the edgetpu library. I'd like to get the web server demo running. I've narrowed it down to Gstreamer not being able to find a plugin that Coral provides.

The plugins are from this repo (which also contains the demo code edgetpu_detect_server and edgetpu_detect: https://coral.googlesource.com/edgetpuvision/+/refs/heads/master/plugins/

There are three plugins that Coral provides:

linaro@linaro-alip:~$ ls /home/linaro/edgetpuvision/plugins/
glbox.py  glsvgoverlaysink.py  glsvgoverlaysrc.py

The error I get when trying to run, e.g. the detection server is:

(edgetpu_detect:28764): dbind-WARNING **: 11:38:56.589: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
v4l2src device=/dev/video0 ! video/x-raw,format=YUYV,width=640,height=512,framerate=30/1 ! glupload ! tee name=t
t. ! queue ! glsvgoverlaysink name=glsink
t. ! queue max-size-buffers=1 leaky=downstream ! glfilterbin filter=glbox ! video/x-raw,format=RGB,width=300,height=300 ! appsink name=appsink emit-signals=True max-buffers=1 drop=True sync=False
Traceback (most recent call last):
  File "/usr/local/bin/edgetpu_detect", line 11, in <module>
    load_entry_point('edgetpuvision==1.0', 'console_scripts', 'edgetpu_detect')()
  File "/home/linaro/.local/lib/python3.7/site-packages/edgetpuvision/detect.py", line 207, in main
    run_app(add_render_gen_args, render_gen)
  File "/home/linaro/.local/lib/python3.7/site-packages/edgetpuvision/apps.py", line 70, in run_app
    display=args.displaymode):
  File "/home/linaro/.local/lib/python3.7/site-packages/edgetpuvision/gstreamer.py", line 248, in run_gen
    display=display)
  File "/home/linaro/.local/lib/python3.7/site-packages/edgetpuvision/gstreamer.py", line 254, in run
    run_pipeline(pipeline, layout, loop, render_overlay, display)
  File "/home/linaro/.local/lib/python3.7/site-packages/edgetpuvision/gstreamer.py", line 300, in run_pipeline
    pipeline = Gst.parse_launch(pipeline)
gi.repository.GLib.Error: gst_parse_error: no element "glsvgoverlaysink" (1)

I've installed gst-python from source as described here: lifestyletransfer.com/how-to-install-gstreamer-from-sources-on-ubuntu/

Seems to be OK, I've linked it against Python 3.7.

linaro@linaro-alip:$ gst-inspect-1.0 /usr/local/lib/gstreamer-1.0/libgstpython.cpython-37m-aarch64-linux-gnu.so
Plugin Details:
  Name                     python
  Description              loader for plugins written in python
  Filename                 /usr/local/lib/gstreamer-1.0/libgstpython.cpython-37m-aarch64-linux-gnu.so
  Version                  1.14.2
  License                  LGPL
  Source module            gst-python
  Binary package           GStreamer GObject Introspection overrides for Python
  Origin URL               http://gstreamer.freedesktop.org


  0 features:

However when I try to load the plugins, gst-inspect can't find them, e.g.

gst-inspect-1.0 --gst-plugin-path=$PWD | grep glbox

Is there some other configuration thing I need to do?

EDIT: Interestingly on the dev board itself (which works), the gstreamer libs don't even seem to be installed (there is no gst-inspect), but the demo clearly uses gstreamer somewhere via Python.

like image 766
Josh Avatar asked Jan 27 '20 12:01

Josh


1 Answers

I would check if the python plugins are located in $GST_PLUGIN_PATH/python directory.

like image 58
lt_carrot Avatar answered Oct 06 '22 10:10

lt_carrot