Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems with webcam and HAProxy #22

Open
JargoV opened this issue Apr 20, 2022 · 4 comments
Open

Problems with webcam and HAProxy #22

JargoV opened this issue Apr 20, 2022 · 4 comments
Assignees
Labels
bug Something isn't working

Comments

@JargoV
Copy link

JargoV commented Apr 20, 2022

I can't manage my camera "Logitech C170" to run on OPi PC


pi@citrico-opipc:~$ systemctl status webcamd.service
● webcamd.service - the OctoPi webcam daemon with the user specified config
     Loaded: loaded (/etc/systemd/system/webcamd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-04-20 16:48:21 UTC; 2min 53s ago
    Process: 1320 ExecStart=/root/bin/webcamd (code=exited, status=0/SUCCESS)
   Main PID: 1367 (mjpg_streamer)
      Tasks: 2 (limit: 2065)
     Memory: 984.0K
        CPU: 270ms
     CGroup: /system.slice/webcamd.service
             └─1367 ./mjpg_streamer -o output_http.so -w ./www-octopi -n --listen 127.0.0.1 -i input_uvc.so -r 1024x768 -d /dev/video1
pi@citrico-opipc:~$ sudo journalctl -u webcamd.service

I need to start manually the webcamd.service even it is enabled in scripts/citrico-config
But i still have error "Webcam stream not loaded"
LED on webcam isn't lit

Also i can't establish connection with Octoprint on web browser without typing port 5000 because the HAProxy won't work:

pi@citrico-opipc:~$ systemctl status haproxy.service
● haproxy.service - HAProxy Load Balancer
     Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2022-04-20 17:08:40 UTC; 25s ago
       Docs: man:haproxy(1)
             file:/usr/share/doc/haproxy/configuration.txt.gz
    Process: 1813 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS (code=exited, status=1/FAILURE)
        CPU: 43ms

pi@citrico-opipc:~$ sudo journalctl -u haproxy.service
Journal file /var/log/journal/f9e625e74d4d4da38d1b700f20eef421/system.journal is truncated, ignoring file.
-- Journal begins at Sat 2022-03-26 13:38:38 UTC, ends at Wed 2022-04-20 17:10:03 UTC. --
Mar 26 13:39:15 citrico-opipc systemd[1]: Starting HAProxy Load Balancer...
Mar 26 13:39:16 citrico-opipc haproxy[1559]: [ALERT] 084/133916 (1559) : parsing [/etc/haproxy/haproxy.cfg:25] : 'bind :::443' : unable to load certificate from file '/etc/ssl/snakeoil.pem'.
Mar 26 13:39:16 citrico-opipc haproxy[1559]: [ALERT] 084/133916 (1559) : parsing [/etc/haproxy/haproxy.cfg:35] : The 'reqrep' directive is not supported anymore since HAProxy 2.1. Use 'http-request r>
Mar 26 13:39:16 citrico-opipc haproxy[1559]: [ALERT] 084/133916 (1559) : parsing [/etc/haproxy/haproxy.cfg:36] : The 'reqadd' directive is not supported anymore since HAProxy 2.1. Use 'http-request a>
Mar 26 13:39:16 citrico-opipc haproxy[1559]: [ALERT] 084/133916 (1559) : parsing [/etc/haproxy/haproxy.cfg:37] : The 'reqadd' directive is not supported anymore since HAProxy 2.1. Use 'http-request a>
Mar 26 13:39:16 citrico-opipc haproxy[1559]: [ALERT] 084/133916 (1559) : parsing [/etc/haproxy/haproxy.cfg:43] : The 'reqrep' directive is not supported anymore since HAProxy 2.1. Use 'http-request r>
Mar 26 13:39:16 citrico-opipc haproxy[1559]: [ALERT] 084/133916 (1559) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
Mar 26 13:39:16 citrico-opipc haproxy[1559]: [ALERT] 084/133916 (1559) : Fatal errors found in configuration.
Mar 26 13:39:16 citrico-opipc systemd[1]: haproxy.service: Control process exited, code=exited, status=1/FAILURE
Mar 26 13:39:16 citrico-opipc systemd[1]: haproxy.service: Failed with result 'exit-code'.
Mar 26 13:39:16 citrico-opipc systemd[1]: Failed to start HAProxy Load Balancer.

I'm using latest release v22-02-1

@JargoV
Copy link
Author

JargoV commented Apr 21, 2022

Ok, problems with HAProxy gone after editing /etc/haproxy/haproxy.cfg and paste this config https://github.com/guysoft/OctoPi/blob/devel/src/modules/octopi/filesystem/root/etc/haproxy/haproxy.2.x.cfg

Camera still not work, but when i plug PS Eye camera it works like a charm
/video3 PS Eye
/video1 C170

Apr 21 18:30:53 citrico-opipc systemd[1]: Started the OctoPi webcam daemon with the user specified config.
Apr 21 18:32:28 citrico-opipc systemd[1]: Stopping the OctoPi webcam daemon with the user specified config...
Apr 21 18:32:28 citrico-opipc systemd[1]: webcamd.service: Succeeded.
Apr 21 18:32:28 citrico-opipc systemd[1]: Stopped the OctoPi webcam daemon with the user specified config.
Apr 21 18:32:28 citrico-opipc systemd[1]: Starting the OctoPi webcam daemon with the user specified config...
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: starting application
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: MJPG Streamer Version.: 2.0
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: Using V4L2 device.: /dev/video1
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: Desired Resolution: 1024 x 768
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: Frames Per Second.: -1
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: Format............: JPEG
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: TV-Norm...........: DEFAULT
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: www-folder-path......: ./www-octopi/
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: HTTP TCP port........: 8080
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: HTTP Listen Address..: 127.0.0.1
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: username:password....: disabled
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: commands.............: disabled
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: starting input plugin input_uvc.so
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: starting output plugin: output_http.so (ID: 00)
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: Can't enable video in first time
Apr 21 18:32:28 citrico-opipc mjpg_streamer[3027]: MJPG-streamer [3027]: cleaning up resources allocated by input thread
Apr 21 18:32:29 citrico-opipc systemd[1]: Started the OctoPi webcam daemon with the user specified config.
Apr 21 18:33:27 citrico-opipc systemd[1]: Stopping the OctoPi webcam daemon with the user specified config...
Apr 21 18:33:27 citrico-opipc systemd[1]: webcamd.service: Succeeded.
Apr 21 18:33:27 citrico-opipc systemd[1]: Stopped the OctoPi webcam daemon with the user specified config.
Apr 21 18:33:27 citrico-opipc systemd[1]: Starting the OctoPi webcam daemon with the user specified config...
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: starting application
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: MJPG Streamer Version.: 2.0
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: Using V4L2 device.: /dev/video3
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: Desired Resolution: 1024 x 768
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: Frames Per Second.: 1
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: Format............: YUYV
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: JPEG Quality......: 80
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: TV-Norm...........: DEFAULT
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: www-folder-path......: ./www-octopi/
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: HTTP TCP port........: 8080
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: HTTP Listen Address..: 127.0.0.1
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: username:password....: disabled
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: commands.............: disabled
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: starting input plugin input_uvc.so
Apr 21 18:33:27 citrico-opipc mjpg_streamer[3076]: MJPG-streamer [3076]: starting output plugin: output_http.so (ID: 00)
Apr 21 18:33:28 citrico-opipc systemd[1]: Started the OctoPi webcam daemon with the user specified config.

I tried differnt parameters and i still can't get it to work.

@dzikk
Copy link

dzikk commented Sep 27, 2022

haproxy.2.x.cfg

do you have a copy of this file? [haproxy.2.x.cfg] because is not available

@JargoV
Copy link
Author

JargoV commented Oct 22, 2022

Sure

global
        maxconn 4096
        user haproxy
        group haproxy
        log /dev/log local1 debug
        tune.ssl.default-dh-param 2048

defaults
        log     global
        mode    http
        compression algo gzip
        option  httplog
        option  dontlognull
        retries 3
        option redispatch
        option http-server-close
        option forwardfor
        maxconn 2000
        timeout connect 5s
        timeout client  15m
        timeout server  15m

frontend public
        bind :::80 v4v6
        bind :::443 v4v6 ssl crt /etc/ssl/snakeoil.pem
        option forwardfor except 127.0.0.1
        use_backend webcam if { path_beg /webcam/ }
        use_backend webcam_hls if { path_beg /hls/ }
        use_backend webcam_hls if { path_beg /jpeg/ }
        default_backend octoprint

backend octoprint
        acl needs_scheme req.hdr_cnt(X-Scheme) eq 0

        http-request replace-path ^([^\ :]*)\ /(.*) \1\ /\2
        http-request add-header X-Scheme https if needs_scheme { ssl_fc }
        http-request add-header X-Scheme http if needs_scheme !{ ssl_fc }
        option forwardfor
        server octoprint1 127.0.0.1:5000
        errorfile 503 /etc/haproxy/errors/503-no-octoprint.http

backend webcam
        http-request replace-path /webcam/(.*) /\1
        server webcam1  127.0.0.1:8080
        errorfile 503 /etc/haproxy/errors/503-no-webcam.http

backend webcam_hls
        server webcam_hls_1 127.0.0.1:28126
        errorfile 503 /etc/haproxy/errors/503-no-webcam-hls.http

@ludiazv ludiazv self-assigned this Nov 23, 2022
@ludiazv ludiazv added the bug Something isn't working label Nov 23, 2022
@ludiazv
Copy link
Owner

ludiazv commented Nov 28, 2022

For camera configuration check this resource: https://community.octoprint.org/docs?topic=21149
HA proxy fix is implemented and will be ready in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants