Add filters (background blur, etc) to your webcam on Linux.

Overview

PyPI

webcam-filters

Add filters (background blur, etc) to your webcam on Linux.

Video conferencing applications tend to either lack video effects altogether or support only a limited set of capabilities on Linux (e.g. Zoom [1], Google Meets [2]).

Goal here is to provide a virtual webcam via v4l2loopback with a common set of filters that can be used everywhere.

Usage

Passthrough (no-op):

$ webcam-filters --input-dev /dev/video0 --output-dev /dev/video3

Blur background:

$ webcam-filters --input-dev /dev/video0 --output-dev /dev/video3 --background-blur 150

Dependencies

Other than the Python dependencies that can be automatically installed by Pip, there are a few system dependencies that require manual attention.

v4l2loopback

v4l2loopback kernel module is required to emulate a virtual webcam. See your distro's docs or v4l2loopback on how to install and set it up (e.g. https://archlinux.org/packages/community/any/v4l2loopback-dkms/).

You'll probably want to create at least one loopback device (that's persistent on boot):

$ sudo tee /etc/modprobe.d/v4l2loopback.conf << "EOF"
# /dev/video3
options v4l2loopback video_nr=3
options v4l2loopback card_label="Virtual Webcam"
options v4l2loopback exclusive_caps=1
EOF
$ sudo modprobe v4l2loopback
$ v4l2-ctl --device /dev/video3 --info

Gstreamer

Installation

You can either use pipx or pip. Pipx is recommend to keep dependencies isolated.

Latest stable:

$ pipx install --system-site-packages webcam-filters
$ # Or
$ pip install --user webcam-filters

Latest pre-release:

$ pipx install --system-site-packages --pip-args='--pre' webcam-filters
$ # Or
$ pip install --user --pre webcam-filters

Git:

$ url="git+https://github.com/jashandeep-sohi/webcam-filters.git"
$ pipx install --system-site-packages "$url"
$ # Or
$ pip install --user "$url"
[1] Zoom desktop client supports background blur as of version 5.7.6. Zoom on web does not.
[2] Google Meets supports background blur only on Chrome.
Comments
  • Hardware acceleration does not work with the radeonsi driver

    Hardware acceleration does not work with the radeonsi driver

    Hi :wave:

    When I try to use --hw-accel vaapi the GStreamer pipeline does not run. I don't know if I miss something or if some feature is missing (NYI?) in the driver...?

    $ GST_DEBUG=2 webcam-filters --input-dev /dev/video0 --output-dev /dev/video3 --background-blur 150 --hw-accel-api vaapi
    Selected input: media-type=image/jpeg, width=1280 height=720 framerate=30/1
    0:00:00.452510507 78424      0x1ea2550 WARN              vaapiblend gstvaapiblend.c:184:gst_vaapi_blend_initialize:<vaapiblend0> VPP does not support global alpha blending
    
    (python3:78424): GStreamer-CRITICAL **: 21:06:44.103: The created element should be floating, this is probably caused by faulty bindings
    
    (python3:78424): GStreamer-CRITICAL **: 21:06:44.104: The created element should be floating, this is probably caused by faulty bindings
    
    (python3:78424): GStreamer-CRITICAL **: 21:06:44.105: The created element should be floating, this is probably caused by faulty bindings
    Pipeline: READY
    Pipeline: PAUSED
    0:00:00.533376004 78424      0x201ecc0 WARN          v4l2bufferpool gstv4l2bufferpool.c:814:gst_v4l2_buffer_pool_start:<v4l2src1:pool0:src> Uncertain or not enough buffers, enabling copy threshold
    INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
    0:00:01.189612022 78424      0x201ef00 WARN             vaapifilter gstvaapifilter.c:2409:gst_vaapi_filter_set_colorimetry_unlocked:<vaapifilter2> driver does not support '2:4:5:1' input colorimetry. vpp may fail or produce unexpected results.
    0:00:01.189625357 78424      0x201ef00 WARN             vaapifilter gstvaapifilter.c:2419:gst_vaapi_filter_set_colorimetry_unlocked:<vaapifilter2> driver does not support 'sRGB' output colorimetry. vpp may fail or produce unexpected results.
    0:00:01.209019915 78424      0x201ecc0 WARN                 v4l2src gstv4l2src.c:1001:gst_v4l2src_create:<v4l2src1> lost frames detected: count = 1 - ts: 0:00:00.671366999
    0:00:01.212918189 78424 0x7f93140021e0 WARN           basetransform gstbasetransform.c:1370:gst_base_transform_setcaps:<vaapipostproc1> transform could not transform video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)30/1, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, format=(string)RGBx in anything we support
    

    The last line then repeats... Any idea? (Maybe the line ending with VPP does not support global alpha blending shows the problem)

    bug 
    opened by mid1221213 24
  • "Invalid literal for Fraction"

    On Ubuntu 21.04 (on which I had to install python3-gst-1.0):

    $ webcam-filters --version
    0.2.0
    $ webcam-filters --input-dev /dev/video0 --output-dev /dev/video3 --background-blur 150
    Traceback (most recent call last):
      File "/home/me/.local/bin/webcam-filters", line 8, in <module>
        sys.exit(cli())
      File "/home/me/.local/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
        return self.main(*args, **kwargs)
      File "/home/me/.local/lib/python3.9/site-packages/click/core.py", line 1062, in main
        rv = self.invoke(ctx)
      File "/home/me/.local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/home/me/.local/lib/python3.9/site-packages/click/core.py", line 763, in invoke
        return __callback(*args, **kwargs)
      File "/home/me/.local/lib/python3.9/site-packages/webcam_filters/main.py", line 137, in cli
        add_filters(
      File "/home/me/.local/lib/python3.9/site-packages/webcam_filters/gst.py", line 87, in add_filters
        structs = sorted(
      File "/home/me/.local/lib/python3.9/site-packages/webcam_filters/gst.py", line 90, in <lambda>
        Fraction(str(x.get_value("framerate"))),
      File "/usr/lib/python3.9/fractions.py", line 115, in __new__
        raise ValueError('Invalid literal for Fraction: %r' %
    ValueError: Invalid literal for Fraction: '{15/2,5/1}'
    
    bug 
    opened by mid1221213 13
  • Python plugins not loading on OpenSUSE

    Python plugins not loading on OpenSUSE

    [23:21:59] ~ $ GST_DEBUG=GST_PLUGIN_LOADING:4,pyplugin:6 webcam-filters --background-blur 50 --input-dev /dev/video5 --output-dev /dev/video0
    0:00:00.000268384 18134 0x5626dde96a70 INFO      GST_PLUGIN_LOADING gstplugin.c:325:_priv_gst_plugin_initialize: registering 0 static plugins
    0:00:00.000325815 18134 0x5626dde96a70 INFO      GST_PLUGIN_LOADING gstplugin.c:233:gst_plugin_register_static: registered static plugin "staticelements"
    0:00:00.000332994 18134 0x5626dde96a70 INFO      GST_PLUGIN_LOADING gstplugin.c:235:gst_plugin_register_static: added static plugin "staticelements", result: 1
    0:00:00.197454235 18134 0x5626dde96a70 INFO      GST_PLUGIN_LOADING gstplugin.c:915:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib64/gstreamer-1.0/libgstvideo4linux2.so" loaded
    Selectd input: media-type=image/jpeg, width=1280 height=720 framerate=30/1
    0:00:00.210186485 18134 0x5626dde96a70 INFO      GST_PLUGIN_LOADING gstplugin.c:915:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib64/gstreamer-1.0/libgstcoreelements.so" loaded
    0:00:00.215944899 18134 0x5626dde96a70 INFO      GST_PLUGIN_LOADING gstplugin.c:915:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib64/gstreamer-1.0/libgstplayback.so" loaded
    0:00:00.218019679 18134 0x5626dde96a70 INFO      GST_PLUGIN_LOADING gstplugin.c:915:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib64/gstreamer-1.0/libgstvideoconvert.so" loaded
    Traceback (most recent call last):
      File "/home/hector/.local/bin/webcam-filters", line 8, in <module>
        sys.exit(cli())
      File "/home/hector/.local/pipx/venvs/webcam-filters/lib64/python3.9/site-packages/click/core.py", line 1137, in __call__
        return self.main(*args, **kwargs)
      File "/home/hector/.local/pipx/venvs/webcam-filters/lib64/python3.9/site-packages/click/core.py", line 1062, in main
        rv = self.invoke(ctx)
      File "/home/hector/.local/pipx/venvs/webcam-filters/lib64/python3.9/site-packages/click/core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/home/hector/.local/pipx/venvs/webcam-filters/lib64/python3.9/site-packages/click/core.py", line 763, in invoke
        return __callback(*args, **kwargs)
      File "/home/hector/.local/pipx/venvs/webcam-filters/lib64/python3.9/site-packages/webcam_filters/main.py", line 139, in cli
        add_filters(
      File "/home/hector/.local/pipx/venvs/webcam-filters/lib64/python3.9/site-packages/webcam_filters/gst.py", line 159, in add_filters
        selfie.set_property("model", selfie_segmentation_model)
    AttributeError: 'NoneType' object has no attribute 'set_property'
    

    @hsanjuan creating a new issue for this.

    I don't see libgstpython.so being loaded, which means none of Python plugins also get loaded. Normally, it looks something like this:

    0:00:01.029100122 12710 0x55eb5f0b6c70 LOG                 pyplugin gstpythonplugin.c:232:plugin_init: Checking to see if libpython is already loaded                                                                                    
    0:00:01.029108435 12710 0x55eb5f0b6c70 LOG                 pyplugin gstpythonplugin.c:235:plugin_init: libpython is already loaded                
    0:00:01.029111008 12710 0x55eb5f0b6c70 LOG                 pyplugin gstpythonplugin.c:254:plugin_init: python was already initialized
    0:00:01.029116664 12710 0x55eb5f0b6c70 LOG                 pyplugin gstpythonplugin.c:274:plugin_init: Running with python version '3.9.6 (default, Jun 30 2021, 10:22:16) 
    [GCC 11.1.0]'                                                                                                                                                                                                                                 
    0:00:01.029118772 12710 0x55eb5f0b6c70 LOG                 pyplugin gstpythonplugin.c:276:plugin_init: initializing pygobject                           
    0:00:01.029188105 12710 0x55eb5f0b6c70 DEBUG               pyplugin gstpythonplugin.c:156:gst_python_plugin_load: GST_PLUGIN_PATH set to /home/gamma/.local/pipx/venvs/webcam-filters/lib/python3.9/site-packages/webcam_filters/plugins:
    0:00:01.029203475 12710 0x55eb5f0b6c70 DEBUG               pyplugin gstpythonplugin.c:48:gst_python_plugin_load_file: loading plugin cv2_boxfilter                                                               
    0:00:01.164450264 12710 0x55eb5f0b6c70 INFO                pyplugin gstpythonplugin.c:103:gst_python_plugin_load_file: Valid plugin             
    0:00:01.164474670 12710 0x55eb5f0b6c70 DEBUG               pyplugin gstpythonplugin.c:48:gst_python_plugin_load_file: loading plugin numpy_where                                                                                              0:00:01.166064073 12710 0x55eb5f0b6c70 INFO                pyplugin gstpythonplugin.c:103:gst_python_plugin_load_file: Valid plugin
    0:00:01.166078845 12710 0x55eb5f0b6c70 DEBUG               pyplugin gstpythonplugin.c:48:gst_python_plugin_load_file: loading plugin selfie_segmentation                                                                           
    0:00:01.356304339 12710 0x55eb5f0b6c70 INFO                pyplugin gstpythonplugin.c:103:gst_python_plugin_load_file: Valid plugin                                                
    0:00:01.356338024 12710 0x55eb5f0b6c70 DEBUG               pyplugin gstpythonplugin.c:121:gst_python_load_directory: Couldn't open Python plugin dir: Error opening directory “python”: No such file or directory
    0:00:01.356344484 12710 0x55eb5f0b6c70 DEBUG               pyplugin gstpythonplugin.c:176:gst_python_plugin_load: GST_PLUGIN_SYSTEM_PATH not set
    0:00:01.356352301 12710 0x55eb5f0b6c70 DEBUG               pyplugin gstpythonplugin.c:121:gst_python_load_directory: Couldn't open Python plugin dir: Error opening directory “/home/gamma/.gstreamer-1.0/plugins/python”: No such file or dir
    ectory                                                                                                                                                                                                                                        
    0:00:01.356358134 12710 0x55eb5f0b6c70 DEBUG               pyplugin gstpythonplugin.c:121:gst_python_load_directory: Couldn't open Python plugin dir: Error opening directory “lib/gstreamer-1.0/python”: No such file or directory
    0:00:01.356364671 12710 0x55eb5f0b6c70 INFO      GST_PLUGIN_LOADING gstplugin.c:915:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/gstreamer-1.0/libgstpython.so" loaded
    

    The only thing I can think of is libgstpython.so isn't in a path that GStreamer looks for plugins by default. What happens if you add /usr/lib64/gstreamer-1.0/ to GST_PLUGIN_PATH?

    GST_PLUGIN_PATH="/usr/lib64/gstreamer-1.0:$GST_PLUGIN_PATH" GST_DEBUG=GST_PLUGIN_LOADING:4,pyplugin:6 webcam-filters --background-blur 50 ...
    

    Originally posted by @hsanjuan in https://github.com/jashandeep-sohi/webcam-filters/issues/4#issuecomment-913229787

    opened by jashandeep-sohi 10
  • "AttributeError: 'NoneType' object has no attribute 'set_property'" when setting blur

    Running Debian bullseye here, with python 3.9 and gstreamer 1.18.4 (though python3-gst 1.18.3). When I try to start things up (after creating a v4l2loopback device per the README, at /dev/video11):

    $ webcam-filters --input-dev /dev/video2 --output-dev /dev/video11 --background-blur 150
    Traceback (most recent call last):
      File "/home/brian/.local/bin/webcam-filters", line 8, in <module>
        sys.exit(cli())
      File "/home/brian/.local/pipx/venvs/webcam-filters/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
        return self.main(*args, **kwargs)
      File "/home/brian/.local/pipx/venvs/webcam-filters/lib/python3.9/site-packages/click/core.py", line 1062, in main
        rv = self.invoke(ctx)
      File "/home/brian/.local/pipx/venvs/webcam-filters/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/home/brian/.local/pipx/venvs/webcam-filters/lib/python3.9/site-packages/click/core.py", line 763, in invoke
        return __callback(*args, **kwargs)
      File "/home/brian/.local/pipx/venvs/webcam-filters/lib/python3.9/site-packages/webcam_filters/main.py", line 137, in cli
        add_filters(
      File "/home/brian/.local/pipx/venvs/webcam-filters/lib/python3.9/site-packages/webcam_filters/gst.py", line 152, in add_filters
        selfie.set_property("model", selfie_segmentation_model)
    AttributeError: 'NoneType' object has no attribute 'set_property'
    
    opened by kelnos 9
  • numpy_where element does not negoitate cap correctly

    numpy_where element does not negoitate cap correctly

    As stated in #3, I have a problem where the command, when launched with some parameters for resolution / framerate, exits after one second without showing any error message. Example:

    $ webcam-filters --input-dev /dev/video0 --output-dev /dev/video3 --background-blur 150
    Selectd input: media-type=image/jpeg, width=1280 height=720 framerate=30/1
    
    (python3:125359): GStreamer-CRITICAL **: 20:04:27.677: The created element should be floating, this is probably caused by faulty bindings
    
    (python3:125359): GStreamer-CRITICAL **: 20:04:27.677: The created element should be floating, this is probably caused by faulty bindings
    
    (python3:125359): GStreamer-CRITICAL **: 20:04:27.678: The created element should be floating, this is probably caused by faulty bindings
    INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
    $ 
    

    Actually, at least with my webcam (a Logitech HD Pro C920), the only working parameters are when setting the resolution / framerate to 1920x1080 at 30 FPS (image/jpeg).

    Just tried at the moment to run it with the env variable GST_DEBUG=1 and I get this error just before it gives back the prompt:

    0:00:01.066575233 125506      0x215ac00 ERROR                 python numpy_where.py:148:do_aggregate: buffer is too small for requested array
    
    bug 
    opened by mid1221213 6
  • Unable to install

    Unable to install

    1. Created a virtualenv
    2. Installed pipx
    3. Got below error:
    PIP STDOUT
    ----------
    
    PIP STDERR
    ----------
    ERROR: Could not find a version that satisfies the requirement webcam-filters (from versions: none)
    ERROR: No matching distribution found for webcam-filters
    

    $ python3 --version Python 3.7.7

    opened by SoumenDass 6
  • Error while running the demo commands

    Error while running the demo commands

    $ webcam-filters --input-dev /dev/video0 --output-dev /dev/video3 --background-blur 150

    Traceback (most recent call last):
      File "/home/eeroh/.local/bin/webcam-filters", line 8, in <module>
        sys.exit(cli())
      File "/home/eeroh/.local/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
        return self.main(*args, **kwargs)
      File "/home/eeroh/.local/lib/python3.9/site-packages/click/core.py", line 1062, in main
        rv = self.invoke(ctx)
      File "/home/eeroh/.local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/home/eeroh/.local/lib/python3.9/site-packages/click/core.py", line 763, in invoke
        return __callback(*args, **kwargs)
      File "/home/eeroh/.local/lib/python3.9/site-packages/webcam_filters/main.py", line 137, in cli
        add_filters(
      File "/home/eeroh/.local/lib/python3.9/site-packages/webcam_filters/gst.py", line 68, in add_filters
        for c in caps:
    TypeError: 'Caps' object is not iterable
    
    documentation 
    opened by vincit-haihala 5
  • Caps is not iterable

    Caps is not iterable

    I'm on master

    ❯ webcam-filters --input-dev /dev/video0 --output-dev /dev/vid
    eo3 --background-blur 150
    Traceback (most recent call last):
      File "/home/raffaele/.local/bin/webcam-filters", line 8, in <module>
        sys.exit(main())
      File "/home/raffaele/.local/lib/python3.10/site-packages/webcam_filters/__main__.py", line 5, in main
        cli.main(prog_name="webcam-filters")
      File "/home/raffaele/.local/lib/python3.10/site-packages/click/core.py", line 1055, in main
        rv = self.invoke(ctx)
      File "/home/raffaele/.local/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/home/raffaele/.local/lib/python3.10/site-packages/click/core.py", line 760, in invoke
        return __callback(*args, **kwargs)
      File "/home/raffaele/.local/lib/python3.10/site-packages/webcam_filters/main.py", line 156, in cli
        p.run()
      File "/home/raffaele/.local/lib/python3.10/site-packages/webcam_filters/gst.py", line 114, in run
        pipeline = self.build_pipeline()
      File "/home/raffaele/.local/lib/python3.10/site-packages/webcam_filters/gst.py", line 186, in build_pipeline
        input_caps = self.select_input()
      File "/home/raffaele/.local/lib/python3.10/site-packages/webcam_filters/gst.py", line 150, in select_input
        for s in caps:
    TypeError: 'Caps' object is not iterable
    
    opened by raffaem 4
  • AttributeError: __enter__ when running with blur

    AttributeError: __enter__ when running with blur

    Hi, I'm still struggling to get blur to work on Ubuntu 20.04. I struggled with #4 but got past that by installing gstreamer1.0-python3-plugin-loader. The command does not 'crash' now but it spits out an infinite stream of errors:

    % GST_DEBUG=GST_PLUGIN_LOADING:4,pyplugin:6 webcam-filters --input-dev /dev/video0 --output-dev /dev/video3 --background-blur 150 | sed 's/jgrgt/jgrgt/g'
    0:00:00.000339346 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:318:_priv_gst_plugin_initialize: registering 0 static plugins
    0:00:00.000423577 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:226:gst_plugin_register_static: registered static plugin "staticelements"
    0:00:00.000450943 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:228:gst_plugin_register_static: added static plugin "staticelements", result: 1
    0:00:00.008871418 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:1524:gst_plugin_ext_dep_extract_env_vars_paths:<plugin36> ignoring environment variable content '': either not an absolute path or not a path at all
    0:00:00.008884089 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:1524:gst_plugin_ext_dep_extract_env_vars_paths:<plugin36> ignoring environment variable content '1': either not an absolute path or not a path at all
    0:00:00.009128618 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:1524:gst_plugin_ext_dep_extract_env_vars_paths:<plugin106> ignoring environment variable content '': either not an absolute path or not a path at all
    0:00:00.013450325 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvideo4linux2.so" loaded
    Selectd input: media-type=image/jpeg, width=1280 height=720 framerate=30/1
    0:00:00.016463374 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so" loaded
    0:00:00.017510553 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so" loaded
    0:00:00.018003740 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvideoconvert.so" loaded
    0:00:00.021918098 88314      0x1229670 LOG                 pyplugin gstpythonplugin.c:227:plugin_init: Checking to see if libpython is already loaded
    0:00:00.021953189 88314      0x1229670 LOG                 pyplugin gstpythonplugin.c:230:plugin_init: libpython is already loaded
    0:00:00.021958312 88314      0x1229670 LOG                 pyplugin gstpythonplugin.c:249:plugin_init: python was already initialized
    0:00:00.021967731 88314      0x1229670 LOG                 pyplugin gstpythonplugin.c:253:plugin_init: Running with python version '3.8.10 (default, Jun  2 2021, 10:49:15) 
    [GCC 9.4.0]'
    0:00:00.021972050 88314      0x1229670 LOG                 pyplugin gstpythonplugin.c:255:plugin_init: initializing pygobject
    0:00:00.022180382 88314      0x1229670 DEBUG               pyplugin gstpythonplugin.c:154:gst_python_plugin_load: GST_PLUGIN_PATH set to /home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins:
    0:00:00.022221452 88314      0x1229670 DEBUG               pyplugin gstpythonplugin.c:48:gst_python_plugin_load_file: loading plugin cv2_boxfilter
    0:00:00.144117053 88314      0x1229670 INFO                pyplugin gstpythonplugin.c:103:gst_python_plugin_load_file: Valid plugin
    0:00:00.144157775 88314      0x1229670 DEBUG               pyplugin gstpythonplugin.c:48:gst_python_plugin_load_file: loading plugin selfie_segmentation
    0:00:00.395388933 88314      0x1229670 INFO                pyplugin gstpythonplugin.c:103:gst_python_plugin_load_file: Valid plugin
    0:00:00.395410970 88314      0x1229670 DEBUG               pyplugin gstpythonplugin.c:48:gst_python_plugin_load_file: loading plugin numpy_where
    0:00:00.396734247 88314      0x1229670 INFO                pyplugin gstpythonplugin.c:103:gst_python_plugin_load_file: Valid plugin
    0:00:00.396762556 88314      0x1229670 DEBUG               pyplugin gstpythonplugin.c:121:gst_python_load_directory: Couldn't open Python plugin dir: Error opening directory “python”: No such file or directory
    0:00:00.396772276 88314      0x1229670 DEBUG               pyplugin gstpythonplugin.c:172:gst_python_plugin_load: GST_PLUGIN_SYSTEM_PATH not set
    0:00:00.396783639 88314      0x1229670 DEBUG               pyplugin gstpythonplugin.c:121:gst_python_load_directory: Couldn't open Python plugin dir: Error opening directory “/home/jgrgt/.gstreamer-1.0/plugins/python”: No such file or directory
    0:00:00.396793250 88314      0x1229670 DEBUG               pyplugin gstpythonplugin.c:121:gst_python_load_directory: Couldn't open Python plugin dir: Error opening directory “lib/x86_64-linux-gnu/gstreamer-1.0/python”: No such file or directory
    0:00:00.396802097 88314      0x1229670 INFO      GST_PLUGIN_LOADING gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstpython.so" loaded
    INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
    0:00:00.420456846 88314      0x1ecccc0 INFO      GST_PLUGIN_LOADING gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstjpeg.so" loaded
    Traceback (most recent call last):
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/selfie_segmentation.py", line 151, in do_transform_ip
        with inbuf_info:
    AttributeError: __enter__
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
    Traceback (most recent call last):
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/cv2_boxfilter.py", line 104, in do_transform_ip
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/selfie_segmentation.py", line 169, in do_transform_ip
        with inbuf_info:
    AttributeError: __enter__
        except Gst.MapError as e:
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/gi/overrides/__init__.py", line 32, in __getattr__
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/cv2_boxfilter.py", line 115, in do_transform_ip
        return getattr(self._introspection_module, name)
      File "/usr/lib/python3/dist-packages/gi/module.py", line 131, in __getattr__
        except Gst.MapError as e:
      File "/usr/lib/python3/dist-packages/gi/overrides/__init__.py", line 32, in __getattr__
        raise AttributeError("%r object has no attribute %r" % (
    AttributeError: 'gi.repository.Gst' object has no attribute 'MapError'
        return getattr(self._introspection_module, name)
      File "/usr/lib/python3/dist-packages/gi/module.py", line 131, in __getattr__
        raise AttributeError("%r object has no attribute %r" % (
    AttributeError: 'gi.repository.Gst' object has no attribute 'MapError'
    Traceback (most recent call last):
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/cv2_boxfilter.py", line 104, in do_transform_ip
    Traceback (most recent call last):
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/selfie_segmentation.py", line 151, in do_transform_ip
        with inbuf_info:
    AttributeError: __enter__
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
        with inbuf_info:
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/cv2_boxfilter.py", line 115, in do_transform_ip
    AttributeError: __enter__
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/selfie_segmentation.py", line 169, in do_transform_ip
        except Gst.MapError as e:
      File "/usr/lib/python3/dist-packages/gi/overrides/__init__.py", line 32, in __getattr__
        except Gst.MapError as e:
      File "/usr/lib/python3/dist-packages/gi/overrides/__init__.py", line 32, in __getattr__
        return getattr(self._introspection_module, name)
        return getattr(self._introspection_module, name)
      File "/usr/lib/python3/dist-packages/gi/module.py", line 131, in __getattr__
      File "/usr/lib/python3/dist-packages/gi/module.py", line 131, in __getattr__
        raise AttributeError("%r object has no attribute %r" % (
        raise AttributeError("%r object has no attribute %r" % (
    AttributeError: 'gi.repository.Gst' object has no attribute 'MapError'
    AttributeError: 'gi.repository.Gst' object has no attribute 'MapError'
    Traceback (most recent call last):
      File "/home/jgrgt/.local/lib/python3.8/site-packages/webcam_filters/plugins/python/numpy_where.py", line 109, in do_aggregate
        self.selected_samples(cbuf.pts, cbuf.dts, cbuf.duration, None)
    AttributeError: 'Where' object has no attribute 'selected_samples'
    

    Any ideas what I'm still missing?

    opened by jgrgt 4
  • Bump click from 8.0.3 to 8.1.3

    Bump click from 8.0.3 to 8.1.3

    Bumps click from 8.0.3 to 8.1.3.

    Release notes

    Sourced from click's releases.

    8.1.3

    This is a fix release for the 8.1.0 feature release.

    8.1.2

    This is a fix release for the 8.1.0 feature release.

    8.1.1

    This is a fix release for the 8.1.0 feature release.

    8.1.0

    This is a feature release, which includes new features and removes previously deprecated features. The 8.1.x branch is now the supported bugfix branch, the 8.0.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades.

    8.0.4

    Changelog

    Sourced from click's changelog.

    Version 8.1.3

    Released 2022-04-28

    • Use verbose form of typing.Callable for @command and @group. :issue:2255
    • Show error when attempting to create an option with multiple=True, is_flag=True. Use count instead. :issue:2246

    Version 8.1.2

    Released 2022-03-31

    • Fix error message for readable path check that was mixed up with the executable check. :pr:2236
    • Restore parameter order for Path, placing the executable parameter at the end. It is recommended to use keyword arguments instead of positional arguments. :issue:2235

    Version 8.1.1

    Released 2022-03-30

    • Fix an issue with decorator typing that caused type checking to report that a command was not callable. :issue:2227

    Version 8.1.0

    Released 2022-03-28

    • Drop support for Python 3.6. :pr:2129

    • Remove previously deprecated code. :pr:2130

      • Group.resultcallback is renamed to result_callback.
      • autocompletion parameter to Command is renamed to shell_complete.
      • get_terminal_size is removed, use shutil.get_terminal_size instead.
      • get_os_args is removed, use sys.argv[1:] instead.
    • Rely on :pep:538 and :pep:540 to handle selecting UTF-8 encoding instead of ASCII. Click's locale encoding detection is removed.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 3
  • Bump opencv-contrib-python from 4.5.3.56 to 4.6.0.66

    Bump opencv-contrib-python from 4.5.3.56 to 4.6.0.66

    Bumps opencv-contrib-python from 4.5.3.56 to 4.6.0.66.

    Release notes

    Sourced from opencv-contrib-python's releases.

    4.6.0.66

    opencv-python: https://pypi.org/project/opencv-python/ opencv-contrib-python: https://pypi.org/project/opencv-contrib-python/ opencv-python-headless: https://pypi.org/project/opencv-python-headless/ opencv-contrib-python-headless: https://pypi.org/project/opencv-contrib-python-headless/

    OpenCV 4.6.0

    Changes:

    • Updated third-party libraries to fix potential vulnerabilities. #666
    • Added support for building Windows ARM64 Python package. #644
    • The repository has been synchronized with scikit-build 0.14.0 release. #637
    • The build without internet connection has been fixed. #642
    • This release produced with libpng 1.6.37 and supports eXIf orientation tag. #662

    4.5.5.64

    opencv-python: https://pypi.org/project/opencv-python/ opencv-contrib-python: https://pypi.org/project/opencv-contrib-python/ opencv-python-headless: https://pypi.org/project/opencv-python-headless/ opencv-contrib-python-headless: https://pypi.org/project/opencv-contrib-python-headless/

    OpenCV 4.5.5

    Changes:

    • Updated third-party libraries to fix potential vulnerabilities. #617

    4.5.5.62

    opencv-python: https://pypi.org/project/opencv-python/ opencv-contrib-python: https://pypi.org/project/opencv-contrib-python/ opencv-python-headless: https://pypi.org/project/opencv-python-headless/ opencv-contrib-python-headless: https://pypi.org/project/opencv-contrib-python-headless/

    OpenCV 4.5.5

    Changes:

    • Switched to a single binary release with Python Limited API to cover all Python versions since 3.6. #595

    4.5.4.60

    opencv-python: https://pypi.org/project/opencv-python/ opencv-contrib-python: https://pypi.org/project/opencv-contrib-python/ opencv-python-headless: https://pypi.org/project/opencv-python-headless/ opencv-contrib-python-headless: https://pypi.org/project/opencv-contrib-python-headless/

    OpenCV 4.5.4

    Changes:

    • The build from source has been fixed. #577
    • Imshow segmentation fault issue have been fixed on Linux x86_64 with Python 3.9. #572
    • Updated OpenCV dependency to tag 4.5.4. #578
    • Pylint no-member warning and an autocomplete in IDE were fixed. #579

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump rich from 10.16.2 to 13.0.0

    Bump rich from 10.16.2 to 13.0.0

    Bumps rich from 10.16.2 to 13.0.0.

    Release notes

    Sourced from rich's releases.

    Dropped Python3.6 support

    Some relatively minor fixes and improvements. The most significant update (and the reason for the major version bump) is that Rich has dropped Python3.6 support.

    If you are a Python3.6 user and can't upgrade for whatever reason, pin to version 12.6.0.

    [13.0.0] - 2022-12-30

    Fixed

    • Reversed pre and code tags in base HTML format Textualize/rich#2642
    • Improved detection of attrs library, that isn't confused by the presence of the attr library.
    • Fixed issue with locals_max_length parameter not being respected in Traceback Textualize/rich#2649
    • Handling of broken fileno made more robust. Fixes Textualize/rich#2645
    • Fixed missing fileno on FileProxy

    Changed

    • Bumped minimum Python version to 3.7 Textualize/rich#2567
    • Pretty-printing of "tagged" __repr__ results is now greedy when matching tags Textualize/rich#2565
    • progress.track now supports deriving total from __length_hint__

    Added

    The FORCE_COLOR edition

    NOTE: 12.6.0 may be the last version to support Python3.6. The next version will be 13.0.0, and will be Python3.7+

    [12.6.0] - 2022-10-02

    Added

    Fixed

    ... (truncated)

    Changelog

    Sourced from rich's changelog.

    [13.0.0] - 2022-12-30

    Fixed

    • Reversed pre and code tags in base HTML format Textualize/rich#2642
    • Improved detection of attrs library, that isn't confused by the presence of the attr library.
    • Fixed issue with locals_max_length parameter not being respected in Traceback Textualize/rich#2649
    • Handling of broken fileno made more robust. Fixes Textualize/rich#2645
    • Fixed missing fileno on FileProxy

    Changed

    • Bumped minimum Python version to 3.7 Textualize/rich#2567
    • Pretty-printing of "tagged" __repr__ results is now greedy when matching tags Textualize/rich#2565
    • progress.track now supports deriving total from __length_hint__

    Added

    [12.6.0] - 2022-10-02

    Added

    Fixed

    Changed

    • Removed border from code blocks in Markdown

    [12.5.2] - 2022-07-18

    Added

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump opencv-contrib-python from 4.6.0.66 to 4.7.0.68

    Bump opencv-contrib-python from 4.6.0.66 to 4.7.0.68

    Bumps opencv-contrib-python from 4.6.0.66 to 4.7.0.68.

    Release notes

    Sourced from opencv-contrib-python's releases.

    4.7.0.68

    opencv-python: https://pypi.org/project/opencv-python/ opencv-contrib-python: https://pypi.org/project/opencv-contrib-python/ opencv-python-headless: https://pypi.org/project/opencv-python-headless/ opencv-contrib-python-headless: https://pypi.org/project/opencv-contrib-python-headless/

    OpenCV 4.7.0

    Changes:

    • Updated third-party libraries to fix potential vulnerabilities.
    • Dropped Python 3.6 support.
    • Added Python 3.11 support.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump numpy from 1.23.4 to 1.24.1

    Bump numpy from 1.23.4 to 1.24.1

    Bumps numpy from 1.23.4 to 1.24.1.

    Release notes

    Sourced from numpy's releases.

    v1.24.1

    NumPy 1.24.1 Release Notes

    NumPy 1.24.1 is a maintenance release that fixes bugs and regressions discovered after the 1.24.0 release. The Python versions supported by this release are 3.8-3.11.

    Contributors

    A total of 12 people contributed to this release. People with a "+" by their names contributed a patch for the first time.

    • Andrew Nelson
    • Ben Greiner +
    • Charles Harris
    • Clément Robert
    • Matteo Raso
    • Matti Picus
    • Melissa Weber Mendonça
    • Miles Cranmer
    • Ralf Gommers
    • Rohit Goswami
    • Sayed Adel
    • Sebastian Berg

    Pull requests merged

    A total of 18 pull requests were merged for this release.

    • #22820: BLD: add workaround in setup.py for newer setuptools
    • #22830: BLD: CIRRUS_TAG redux
    • #22831: DOC: fix a couple typos in 1.23 notes
    • #22832: BUG: Fix refcounting errors found using pytest-leaks
    • #22834: BUG, SIMD: Fix invalid value encountered in several ufuncs
    • #22837: TST: ignore more np.distutils.log imports
    • #22839: BUG: Do not use getdata() in np.ma.masked_invalid
    • #22847: BUG: Ensure correct behavior for rows ending in delimiter in...
    • #22848: BUG, SIMD: Fix the bitmask of the boolean comparison
    • #22857: BLD: Help raspian arm + clang 13 about __builtin_mul_overflow
    • #22858: API: Ensure a full mask is returned for masked_invalid
    • #22866: BUG: Polynomials now copy properly (#22669)
    • #22867: BUG, SIMD: Fix memory overlap in ufunc comparison loops
    • #22868: BUG: Fortify string casts against floating point warnings
    • #22875: TST: Ignore nan-warnings in randomized out tests
    • #22883: MAINT: restore npymath implementations needed for freebsd
    • #22884: BUG: Fix integer overflow in in1d for mixed integer dtypes #22877
    • #22887: BUG: Use whole file for encoding checks with charset_normalizer.

    Checksums

    ... (truncated)

    Commits
    • a28f4f2 Merge pull request #22888 from charris/prepare-1.24.1-release
    • f8fea39 REL: Prepare for the NumPY 1.24.1 release.
    • 6f491e0 Merge pull request #22887 from charris/backport-22872
    • 48f5fe4 BUG: Use whole file for encoding checks with charset_normalizer [f2py] (#22...
    • 0f3484a Merge pull request #22883 from charris/backport-22882
    • 002c60d Merge pull request #22884 from charris/backport-22878
    • 38ef9ce BUG: Fix integer overflow in in1d for mixed integer dtypes #22877 (#22878)
    • bb00c68 MAINT: restore npymath implementations needed for freebsd
    • 64e09c3 Merge pull request #22875 from charris/backport-22869
    • dc7bac6 TST: Ignore nan-warnings in randomized out tests
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump mediapipe from 0.9.0 to 0.9.0.1

    Bump mediapipe from 0.9.0 to 0.9.0.1

    Bumps mediapipe from 0.9.0 to 0.9.0.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Error when trying to start

    Error when trying to start

    Hello. When I try to start webcam-filters, I get this error:

    # webcam-filters --input-dev /dev/video0 --output-dev /dev/video3
    Selected input: media-type=image/jpeg, width=1280 height=720 framerate=30/1
    Error from /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Cannot identify device '/dev/video3'.
    

    I haven't got video3 device, so error isn't that device is busy. Starting this with different outputs has no effect:

    # webcam-filters --input-dev /dev/video0 --output-dev /dev/video10
    Selected input: media-type=image/jpeg, width=1280 height=720 framerate=30/1
    Error from /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Cannot identify device '/dev/video10'.
    

    I sure that my camera is video0. I installed webcam-filters via pipx, but using nix doesn't fix this error. I have satisfied all dependencies. I use Ach Linux with

    # uname -a
    Linux arch 5.10.70-1-lts #1 SMP Thu, 30 Sep 2021 09:43:10 +0000 x86_64 GNU/Linux
    

    How can I fix this error? Thanks for your help.

    P. S. Sorry for my english, I'm from another county.

    opened by coder8080 9
  • Caps object is not iterable

    Caps object is not iterable

    When running webcam-filters I get the following traceback

    ➜  ~ webcam-filters --verbose --input-dev /dev/video0 --output-dev /dev/video3 --background-blur 150
    
    Traceback (most recent call last):
      File "/home/restore/.local/bin/webcam-filters", line 9, in <module>
        sys.exit(main())
      File "/home/restore/.local/lib/python3.8/site-packages/webcam_filters/__main__.py", line 5, in main
        cli.main(prog_name="webcam-filters")
      File "/home/restore/.local/lib/python3.8/site-packages/click/core.py", line 1062, in main
        rv = self.invoke(ctx)
      File "/home/restore/.local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/home/restore/.local/lib/python3.8/site-packages/click/core.py", line 763, in invoke
        return __callback(*args, **kwargs)
      File "/home/restore/.local/lib/python3.8/site-packages/webcam_filters/main.py", line 154, in cli
        add_filters(
      File "/home/restore/.local/lib/python3.8/site-packages/webcam_filters/gst.py", line 98, in add_filters
        for s in caps:
    TypeError: 'Caps' object is not iterable
    
    

    I tried different devices but always the same result. Anything else I can check?

    opened by jekkos 13
Releases(v0.3.0)
Owner
Jashandeep Sohi
Jashandeep Sohi
Python library to interact with the GCE Electronics IPX800 device

A python library to control a GCE-Electronics IPX800 V4 device through its API.

Marc-Aurèle Brothier 2 Oct 20, 2021
Huawei Solar sensors for Home Assistant

Huawei Solar Sensors This integration splits out the various values that are fetched from your Huawei Solar inverter into separate HomeAssistant senso

Thijs Walcarius 151 Dec 31, 2022
gdsfactory is an EDA (electronics design automation) tool to Layout Integrated Circuits.

gdsfactory 3.5.5 gdsfactory is an EDA (electronics design automation) tool to Layout Integrated Circuits. It is build on top of phidl gdspy and klayou

147 Jan 04, 2023
A Fear and Greed index visualiser for Bitcoin on a SSD1351 OLED Screen

We're Doomed - A Bitcoin Fear and Greed index OLED visualiser Doom is a first-person-shooter from the 1990s. The health status monitor was one of the

VEEB 19 Dec 29, 2022
DNP3 Stalker is a project to analyze and interact with DNP3 devices

DNP3 Stalker Purpose DNP3 Stalker is a project to analyze and interact with DNP3

Cutaway Security, LLC. 2 Feb 10, 2022
PlatformIO development platform for GSM modules

PlatformIO development platform for GSM modules Supported Modules Quectel M66 OpenCPU Arduino - TODO other - in progress... Supported Boards Comet M66

Georgi Angelov 5 Aug 06, 2022
MPY tool - manage files on devices running MicroPython

mpytool MPY tool - manage files on devices running MicroPython It is an alternative to ampy Target of this project is to make more clean code, faster,

Pavel Revak 5 Aug 17, 2022
A python script to poll RPi GPIO pins and subscribe and publish their state via MQTT

MQTT-GPIO A python script to poll RPi GPIO pins and subscribe and publish their state via MQTT using TLS. This script is short and meant to be edited

23 Oct 12, 2021
Home Assistant custom integration to fetch data from Powerpal

Powerpal custom component for Home Assistant Component to integrate with powerpal. This repository and integration is not affiliated with Powerpal. Th

Lawrence 32 Jan 07, 2023
Minimal and clean dashboard to visualize some stats of Pi-Hole with an E-Ink display attached to your Raspberry Pi

Clean Dashboard for Pi-Hole Minimal and clean dashboard to visualize some stats of Pi-Hole with an E-Ink display attached to your Raspberry Pi.

Alessio Santoru 104 Dec 14, 2022
Final-project-robokeeper created by GitHub Classroom

RoboKeeper! Jonny Bosnich, Joshua Cho, Lio Liang, Marco Morales, Cody Nichoson Demonstration Videos Grabbing the paddle: https://youtu.be/N0HPvFNHrTw

Cody Nichoson 1 Dec 12, 2021
Christmasvillage-rpi - Raspberry Pi relay controller for ChristmasVillage.io

ChristmasVillage.io Relay Controller Links ChristmasVillage.io - Live Stream & Controls Youtube Instagram About This repository controls the light rel

Grant Windes 2 Feb 15, 2022
This is a Virtual Keyboard which is simple yet effective to use.

Virtual-Keyboard This is a Virtual KeyBoard which can track finger movements and lets you type anywhere ranging from notepad to even web browsers. It

Jehan Patel 3 Oct 01, 2021
ESP32 recording button presses, and serving webpage that graphs the numbers over time.

ESP32-IoT-button-graph-test ESP32 recording button presses, and serving webpage via webSockets in order to graph the responses. The objective was to t

f-caro 1 Nov 30, 2021
Examples to accompany the

Examples to accompany the "Raspberry Pi Pico Python SDK" book published by Raspberry Pi Trading, which forms part of the technical documentation in support of Raspberry Pi Pico and the MicroPython po

Raspberry Pi 589 Jan 08, 2023
This is an incredible led matrix simulation using the ultimate mosaik co-simulation framework.

This project uses the mosaik co-simulation framework, developed by the brilliant developers at the high-ranked Offis institue for computer science, Oldenburg, Germany, to simulate multidimensional LE

Felix 1 Jan 28, 2022
My self-hosting infrastructure, fully automated from empty disk to operating services

Khue's Homelab Current status: ALPHA This project utilizes Infrastructure as Code to automate provisioning, operating, and updating self-hosted servic

Khue Doan 6.4k Dec 31, 2022
Aqara Camera G3 integration for Home Assistant

Aqara Camera G3 integration for Home Assistant ATTENTION: The component only works after enabled telnet. Only supportd stream. Not support still image

14 Dec 18, 2022
Python implementation of ZMP Preview Control approach for biped robot control.

ZMP Preview Control This is the Python implementation of ZMP Preview Control app

Chaobin 24 Dec 19, 2022
Estimation of whether or not the persons given information will have diabetes.

Diabetes Business Problem : It is desired to develop a machine learning model that can predict whether people have diabetes when their characteristics

Barış TOKATLIOĞLU 0 Jan 20, 2022