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

Feedback for the latest camera-streamer based webcam stack builds (builds 2023.07.20.144556, 2023.10.09.154319) #9

Open
foosel opened this issue Jul 20, 2023 · 65 comments

Comments

@foosel
Copy link
Member

foosel commented Jul 20, 2023

This is a ticket to collect feedback on the latest build of the new camera stack (some background on that here) for OctoPi-UpToDate.

Currently, that is 2023.10.09.154319. Find the image here: https://github.com/OctoPrint/OctoPi-UpToDate/releases/tag/1.0.0-1.9.3-20231009154319

Config docs are available here: https://faq.octoprint.org/camera-streamer-config

The source tree used for the build is here: https://github.com/OctoPrint/OctoPi-UpToDate/tree/camera-streamer

Changelog

Changes in build 2023.10.09.154319 from 2023-10-09

  • OctoPrint updated to 1.9.3

Changes in build 2023.07.20.144556 from 2023-07-20

  • camera-streamer updated to 0.2.5
    • Heads-up: camera-streamer 0.2.5 added a new parameter --http-listen to define which network interfaces to listen on, and by default only listens on localhost. If you have cameras configured that are currently not behind haproxy on the same device, you'll need to add --http-listen=0.0.0.0 to the OPTIONS of your camera config. The docs have been updated accordingly.
  • user-fix fixed Octoprint 1.0.0-1.9.2 having issues with non default username #8

Please note

This image needs to be flashed to your SD card, wiping it in the process. So if you want to keep anything on there, make a backup first! You can also create an OctoPrint backup, download that, flash, restore from backup. There's no way to update to the contents of this image without a full reflash.

Please provide feedback on your experience with this image in this ticket, whether things work for you or not. Make sure to at least include the following:

  • Everything working?
  • Pi model
  • used cameras
  • in case of issues: related logs (journalctl -u camera-streamer\* | pb and share the generated paste.octoprint.org URL)

Known issues:

Common pitfalls:

  • RPiV3 camera not auto-focusing? Make sure any kind of case you've added to it is not interfering with the lens & sensor
@b-morgan
Copy link

Just out of curiosity (while I download and install the new image), I thought there was a package being created for camera-streamer that could be installed/updated with apt so that libcamera updates didn't require a new image. What happened to that project?

@foosel
Copy link
Member Author

foosel commented Jul 20, 2023

There is. This new image was needed because there was an issue in the basic image I built two days ago. The update-able package is alive and well (and used here), but since this is the first image to ship with the 0.2.5 version out of the box, I figured this merits a new feedback ticket.

@gdombiak
Copy link

gdombiak commented Jul 21, 2023

Hi Gina,

Thanks for the blazing fast response. I have good and possibly bad news.

  • Good News: camera service is still there after doing a full upgrade
  • Bad news: cameras services are now bound to localhost

All I did was change ports of libcamera and usb camera to 8081 and 8082 respectively and rebooted. Journal shows no errors and services listening in respective ports. However, netstat shows the following which explains why i cannot connect from another computer but only from rpi itself.

pi@octopi2:~ $ netstat -a --numeric-ports | grep LIST
tcp        0      0 localhost:8082          0.0.0.0:*               LISTEN
tcp        0      0 localhost:8081          0.0.0.0:*               LISTEN
tcp        0      0 localhost:5000          0.0.0.0:*               LISTEN

Snippets from journal below:

-- Boot 3e0689d38a4f4aef9df1285433eaa6c3 --
Jul 20 20:14:02 octopi2 systemd[1]: Starting camera-streamer default...
Jul 20 20:14:02 octopi2 systemd[1]: Started camera-streamer default.
Jul 20 20:14:06 octopi2 sh[686]: util/http/http.c: ?: HTTP listening on 127.0.0.1:8082.
Jul 20 20:14:06 octopi2 sh[686]: device/v4l2/device.c: CAMERA: Device path=/dev/v4l/by-id/usb-SHENZHEN_AONI_ELECTRONIC_CO.__LTD_Full_HD_webcam_20200729001-video-index0 fd=5 opened
Jul 20 20:14:06 octopi2 sh[686]: device/v4l2/device_options.c: CAMERA: The 'horizontal_flip=0' was failed to find.
-- Boot 3e0689d38a4f4aef9df1285433eaa6c3 --
Jul 20 20:13:57 octopi2 systemd[1]: Starting camera-streamer libcamera...
Jul 20 20:14:01 octopi2 sh[604]: /base/soc/i2c0mux/i2c@1/imx708@1a
Jul 20 20:14:02 octopi2 systemd[1]: Started camera-streamer libcamera.
Jul 20 20:14:06 octopi2 sh[669]: util/http/http.c: ?: HTTP listening on 127.0.0.1:8081.
Jul 20 20:14:06 octopi2 sh[669]: /usr/bin/camera-streamer Version: 0.2.5 (41d8dfd)
Jul 20 20:14:06 octopi2 sh[669]: [0:00:18.170190026] [669]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+82-2783c8d8
Jul 20 20:14:06 octopi2 sh[669]: [0:00:18.363628174] [855]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx708@1a to Unicam device /dev/media3 and ISP device /dev/me>

I will keep looking around to see if I missed something ....

Danke,
Gaston

@gdombiak
Copy link

I modified the systemd configuration file to add '--http-listen=0.0.0.0 ' and restarted the service. Cameras are now accessible from other computers since service bound to all interfaces. Not sure if this is the proper fix but I'm now unblocked. :D

Thanks,
Gaston

@foosel
Copy link
Member Author

foosel commented Jul 21, 2023

I put a heads-up into the changes list up in the very first post for that exact reason ;)

@gdombiak
Copy link

LOL. RTFM for me then! :D Impatience got the "best" of me.

All seems to be working fine. Will keep testing and report if I came across anything else. I doubt it but you never know.

Thanks,
Gaston

@MrUpStry
Copy link

Sems like the camera-streamer is missing in my case.

https://paste.octoprint.org/Scyq0nVuqz

@Bastillion1480
Copy link

Danke Gina for the very swift update. The update works for me on my RPi4B with Camera Module 3 noIR

@nicopasla
Copy link

All the versions never worked for me with a Raspberry Pi Zero 2 W but I just tried same backup with a Pi 4B+ and it worked

@oxivanisher
Copy link

Can I update my way out of the this or do I have to reinstall octopi from the beginning?

The following packages have unmet dependencies:
 camera-streamer-raspi : Depends: libcamera0 (= 0~git20230707+2783c8d8-1) but 0~git20230720+bde9b04f-1 is to be installed
E: Unable to correct problems, you have held broken packages.

@foosel
Copy link
Member Author

foosel commented Jul 24, 2023

A new camera-streamer-raspi package should be available, try installing that.

Side note, hard pinning the libcamera0 version like this is sadly necessary as libcamera0 (currently?) happily changes its ABI on version updates, pulling the rug from underneath camera-streamer's feet and making a recompilation of the latter necessary to still work. It just has happened again with this update.

@foosel
Copy link
Member Author

foosel commented Jul 24, 2023

All the versions never worked for me with a Raspberry Pi Zero 2 W

Define "never worked". As it is, that comment sadly is utterly unhelpful.

@oxivanisher
Copy link

A new camera-streamer-raspi package should be available, try installing that.

I don't see it:

prusamk3mmu ~ # apt update
Hit:1 https://apt.octoprint.org/debian bullseye InRelease
Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease
Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
prusamk3mmu ~ # apt remove camera-streamer*
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'camera-streamer' for glob 'camera-streamer*'
Note, selecting 'camera-streamer-raspi' for glob 'camera-streamer*'
Note, selecting 'camera-streamer-stack' for glob 'camera-streamer*'
Package 'camera-streamer-raspi' is not installed, so not removed
Package 'camera-streamer-stack' is not installed, so not removed
Package 'camera-streamer' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
prusamk3mmu ~ # apt install camera-streamer-raspi
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 camera-streamer-raspi : Depends: libcamera0 (= 0~git20230707+2783c8d8-1) but 0~git20230720+bde9b04f-1 is to be installed
E: Unable to correct problems, you have held broken packages.

image

@foosel
Copy link
Member Author

foosel commented Jul 24, 2023

Ooooh, libcamera apparently pulled the rug from beneath our feet YET AGAIN. FFS... on it.

@foosel
Copy link
Member Author

foosel commented Jul 24, 2023

New camera-streamer-raspi package now built and pushed, and also another day spent on improving automating things so that stuff like this in the future happens semi-automatically (final PR for package addition ton the repo needs to be merged manually) on every libcamera0 update detected on the RPi repo.

@oxivanisher
Copy link

Thank you very much for your effort!
A simple apt install camera-streamer-raspi was enough to get it working again. Now I can again watch live how the MK4 runs out of filament and breaks my prints. 😒😂

@nicopasla
Copy link

nicopasla commented Jul 24, 2023

me with a Raspberry Pi Zero 2 W
Define "never worked". As

sorry I forgot to say that the camera stream never loaded on the PiZero2W, I had a lot of random reboot too

When using libcamera-hello, there was an error about the ressource already used

@foosel
Copy link
Member Author

foosel commented Jul 24, 2023

I test against RPi3b, which is pretty much the same CPU, albeit in a different form factor. Not sure what you are running into there, everything green over here and I can also see at least 81 instances on an RPiZero2 running one of the images with the new camera build in the anonymous usage tracking data.

image

Random reboot sounds like insufficient power or some other hardware issue. libcamera-hello not being able to access the camera when the stream is already running is to be expected.

@djusHa
Copy link

djusHa commented Jul 26, 2023

Hi,
no luck with fresh install ( Version 1.9.2 ) an AZDeliver Raspberry Cam v1.3.

libcamera --list-cams

Available cameras
-----------------
0 : ov5647 [2592x1944] (/base/soc/i2c0mux/i2c@1/ov5647@36)
    Modes: 'SGBRG10_CSI2P' : 640x480 [58.92 fps - (16, 0)/2560x1920 crop]
                             1296x972 [43.25 fps - (0, 0)/2592x1944 crop]
                             1920x1080 [30.62 fps - (348, 434)/1928x1080 crop]
                             2592x1944 [15.63 fps - (0, 0)/2592x1944 crop]

system log

Jul 26 14:57:37 octi sh[1406]: [0:22:10.182179708] [1424] #033[1;33m WARN #033[1;37mV4L2 #033[1;34mv4l2_videodevice.cpp:2007 #033[0;32m/dev/video0[23:cap]: #033[0mDequeue timer of 1000000.00us has expired!$
Jul 26 14:57:37 octi sh[1406]: [0:22:10.182389549] [1424] #033[1;31mERROR #033[1;37mRPI #033[1;34mpipeline_base.cpp:1333 #033[0mCamera frontend has timed out!$
Jul 26 14:57:37 octi sh[1406]: [0:22:10.182459132] [1424] #033[1;31mERROR #033[1;37mRPI #033[1;34mpipeline_base.cpp:1334 #033[0mPlease check that your camera sensor connector is attached securely.$
Jul 26 14:57:37 octi sh[1406]: [0:22:10.182524964] [1424] #033[1;31mERROR #033[1;37mRPI #033[1;34mpipeline_base.cpp:1335 #033[0mAlternatively, try another cable and/or sensor.

libcamera-hello

Made DRM preview window
[0:52:21.555484026] [1445]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[0:52:21.597288004] [1446]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/ov5647@36 to Unicam device /dev/media0 and ISP device /dev/media2
[0:52:21.597395555] [1446]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
[0:52:21.598568671] [1445]  INFO Camera camera.cpp:1033 configuring streams: (0) 1296x972-YUV420
[0:52:21.599241269] [1446]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 1296x972-SGBRG10_1X10 - Selected unicam format: 1296x972-pGAA
[0:52:21.801866263] [1446]  INFO V4L2 v4l2_videodevice.cpp:1820 /dev/video0[13:cap]: Zero sequence expected for first frame (got 2)
[0:52:22.802831335] [1446]  WARN V4L2 v4l2_videodevice.cpp:2007 /dev/video0[13:cap]: Dequeue timer of 1000000.00us has expired!
[0:52:22.803041802] [1446] ERROR RPI pipeline_base.cpp:1333 Camera frontend has timed out!
[0:52:22.803118833] [1446] ERROR RPI pipeline_base.cpp:1334 Please check that your camera sensor connector is attached securely.
[0:52:22.803199613] [1446] ERROR RPI pipeline_base.cpp:1335 Alternatively, try another cable and/or sensor.

But the Camera works with stable Octopi release.

Any hints?

@sarusani
Copy link

sarusani commented Jul 28, 2023

I noticed a small problem with camera-streamer.
When I boot up my pi and access octoprint web interface at least once (so it loads the camera-streamer stream) everything works perfectly fine. (And keeps working, no matter for how long I'm not accessing the camera-streamer stream)

But when I boot up and not open the web interface for some time (it's reproduceable 100% of the time when I wait at least 60min.) and then load the web interface, I don't get any stream from camera-streamer.
Opening "/webcam/stream" shows the text "Server Error".
Opening "/webcam/" works, "/webcam/status" shows the expected json and "/webcam/control" shows the control interface.

"systemctl status camera-streamer" reports the service as active.

Logs: https://paste.octoprint.org/OYXd3AsGW5 (The entries after "Jul 28 23:56:32" are the ones when it fails)
Cam: 'ov5647' on port 0
System: Raspberry Pi 4 Model B Rev 1.1 - 11 (bullseye) - Linux octopi 6.1.21-v7l+ #1642 SMP Mon Apr 3 17:22:30 BST 2023 armv7l GNU/Linux

This also happened before the recent libcamera0 & camera-streamer-raspi updates.

Restarting the camera-streamer service fixes the problem. ("systemctl restart camera-streamer")

@foosel
Copy link
Member Author

foosel commented Jul 29, 2023

@sarusani since that looks like it's rather an internal issue with camera-streamer than something related to the image including it, could you please report this on the camera-streamer repo?

https://github.com/ayufan/camera-streamer

@sarusani
Copy link

Sure, I'll do. 👍
Wasn't sure if it's camera streamer or a problem with the service.

ayufan/camera-streamer#90

@FacuM
Copy link

FacuM commented Jul 29, 2023

I noticed a small problem with camera-streamer. When I boot up my pi and access octoprint web interface at least once (so it loads the camera-streamer stream) everything works perfectly fine. (And keeps working, no matter for how long I'm not accessing the camera-streamer stream)

But when I boot up and not open the web interface for some time (it's reproduceable 100% of the time when I wait at least 60min.) and then load the web interface, I don't get any stream from camera-streamer. Opening "/webcam/stream" shows the text "Server Error". Opening "/webcam/" works, "/webcam/status" shows the expected json and "/webcam/control" shows the control interface.

"systemctl status camera-streamer" reports the service as active.

Logs: paste.octoprint.org/OYXd3AsGW5 (The entries after "Jul 28 23:56:32" are the ones when it fails) Cam: 'ov5647' on port 0 System: Raspberry Pi 4 Model B Rev 1.1 - 11 (bullseye) - Linux octopi 6.1.21-v7l+ #1642 SMP Mon Apr 3 17:22:30 BST 2023 armv7l GNU/Linux

This also happened before the recent libcamera0 & camera-streamer-raspi updates.

Restarting the camera-streamer service fixes the problem. ("systemctl restart camera-streamer")

Perhaps it's related to my issue at ayufan/camera-streamer#88?

@gnurbs
Copy link

gnurbs commented Jul 30, 2023

did you consider switching to the actual video stream?
Camera-streamer has both /video and /stream: /video is an h.264-stream, so much more efficient that the /stream, which is MJPEG (like the old stack). Octopi currently continues to use the mjpeg-stream, while it could have the much more efficient h.264 stream for nearly free.
something has to be changed in the html for that, it's not quite as simple as replacing the action=stream with video in the url.

@foosel
Copy link
Member Author

foosel commented Oct 2, 2023

FYI, for now I've considered the crashes with "stale stream" in the log that many of you have observed a blocker for the general roll-out of this stack. Upstream ticket is here: ayufan/camera-streamer#94, we'll have to wait for action there.

@b-morgan
Copy link

b-morgan commented Oct 4, 2023

Please, please find a way to identify the camera-streamer version as OctoPi 1.0.1 (or something) because people keep posting that they are running OctoPi 1.0.0 without adding the build identifier and it requires another back and forth exchange to figure out how to help them.

@foosel foosel changed the title Feedback for the latest camera-streamer based webcam stack builds (builds 20230720144556) Feedback for the latest camera-streamer based webcam stack builds (builds 2023.07.20.144556, 2023.10.09.154319) Oct 10, 2023
@foosel
Copy link
Member Author

foosel commented Oct 10, 2023

I cannot in good conscience change the version number as that would interfere with potential versioning of the base image and cause even a more ton of confusion considering the other image without the new cam stack.

What I can do is put a suffix "cam" on the version identifier in the web interface (e.g. "OctoPi* 1.0.0cam (build 2023.10.09.154319)") and also make sure the bundle viewer makes it more visible.

foosel added a commit to OctoPrint/OctoPrint-PiSupport that referenced this issue Oct 10, 2023
The new camera-streamer based camera stack will
now get a "cam" suffix on the version in the footer.

The information which camera stack was found
is also now included in the system info bundle
for the bundleviewer to utilize.

As requested in OctoPrint/OctoPi-UpToDate#9
@b-morgan
Copy link

I believe this is an acceptable solution, thanks!

@foosel
Copy link
Member Author

foosel commented Oct 10, 2023

And it's already rolling out.

@JohnHind
Copy link

JohnHind commented Oct 16, 2023

A simple apt install camera-streamer-raspi was enough to get it working again.

Does this mean it is possible to install the camera streamer on a different machine to OctoPrint? Should be possible as the interface seems to be entirely through URL. Could I, for example, install the streamer and camera on an up-to-date Pi OS 64-bit and run the standard Docker Image of OctoPrint on top of this? If this would work, would it be possible to add some documentation for this scenario (which would be the same as running the two components on different hardware platforms).

@cp2004
Copy link
Member

cp2004 commented Oct 16, 2023

You can install camera-streamer on a variety of platforms, wherever you like. The 'camera stack' that the OctoPi image comes with (the control scripts and using /boot/camera-streamer/*.conf files), alongside the precompiled binaries may only work on the OctoPi image - they are technically maintained as a separate package to make it updatable, but not necessarily cross platform.

You can use the docker version of OctoPrint (not OctoPi, this is specifically an OS image) and install camera-streamer yourself, or try and trace the steps used in the OctoPi image if you wanted an exact clone, using the scripts & apt.octoprint.org binaries.

@JohnHind
Copy link

You can use the docker version of Octo_Print_ (not OctoPi, this is specifically an OS image) and install camera-streamer yourself.

Made some corrections. So 'camera-streamer-raspi' is the OctoPi 'camera stack' maintained by the OctoPrint project? I guess this will only work on Bullseye, so I cannot use it to update Buster based OctoPi or OctoPrint Docker images to work with Camera Module 3?

@cp2004
Copy link
Member

cp2004 commented Oct 16, 2023

camera-streamer-raspi is actually the binary of camera-streamer, compiled for the Pi - you can install this yourself by picking the right binary direct from that project's releases, but it will only work through apt if you have apt.octoprint.org, which is on the OctoPi image. camera-streamer-stack is the set of scripts directly maintained in the OctoPrint project.

Buster based images are too old to support the Pi Cam V3 (and camera-streamer), Bullseye is the minimum.

@MyAir
Copy link

MyAir commented Jan 1, 2024

Everything working?
After some headache and tinkering yes.

Pi model
RPi 4 Model B

used cameras
3DO Nozzle Camera Kit - Sony 4K

My first problem was with the wifi setup. On my first attempt I couldn't manage to connect my Pi to my Wifi. Connection via ethernet worked but I didn't want to run an extra cable to the pi. I also found that my wifi infromation from Raspberry Pi Imager was nowhere to be seen in /boot/octopi-wpa-supplicant.txt file and I couldn't figure out how to make it connect to the wifi. So I started over and reflashed the SD chard again.
As it turned out I initially made a typo in my wifi password in Raspberry Pi Imager that I discovered on my second attempt to flash. After correcting the typo the Pi connected to the wifi. But still /boot/octopi-wpa-supplicant.txt did not contain any wifi information and all "network=" sections in the file were still commented out. So I did a lot of digging and googling to figure out what went wrong.
As it turns out the wifi credentials were filled in correctly into /etc/wpa_supplicant/wpa_supplicant.conf so wifi eventually worked. The problem was that /etc/wpa_supplicant/wpa_supplicant.conf was an actual file while it should have been a link to /boot/octopi-wpa-supplicant.txt. So I manually copied over the data to /boot/octopi-wpa-supplicant.txt, removed /etc/wpa_supplicant/wpa_supplicant.conf and recreated it as a link to /boot/octopi-wpa-supplicant.txt.

I can't really say how all this happened. I eventually found some info that setting the wifi country in raspi-config can cause such problems and I definitively set the wifi country in raspi-config on my first unsuccessful attempt to set up wifi. But after re-flashing the SD again with the correct wifi password I can't recollect doing that.
So my suspicion is that OctoPi-UpToDate creates the file /etc/wpa_supplicant/wpa_supplicant.conf and fills in the credentials from Raspberry Pi Imager rather than filling it into /boot/octopi-wpa-supplicant.txt and linking that file to /etc/wpa_supplicant.

My second headache was getting the camera to work. It was properly listed in lsusb but i constantly got a 'server error' when trying to access it. I can't fully recollec what I did but I remember chasing after that remark to set '--http-listen=0.0.0.0' as well but that didn't help either. At least in my currently working configuration I can't find that option anymore.
As it turned out my camera did not support the default 'FORMAT=YUYV' so after changing that to 'FORMAT=JPEG' I finally got the webcam working.
I'm still not that deep into linux and couldn't find anyhting obvious in '/var/log' either. Eventually I found out that running journalctl -u camera-streamer should give me more information, but eve that didn't give me any obvious indication that my webcam failed due to the not supported 'FORMAT=YUYV'. I'm not sure if there's anyhting you could do about that to improve but maybe a hint in the documentation might help others facing the same problem.

But now everything works so far and I'm happy with the new camera-streamer stack for OctoPrint.

@apphd78
Copy link

apphd78 commented Jan 10, 2024

@ryantang30 - Hello! Thanks for your post about autofocus on the Arducam IMX-519; I have been wondering about that feature. I followed your instructions and can see the camera feed in OctoPrint, but I get errors with libcamera-still: "Unable to set controls: Device or resource busy" and "Pipeline handler in use by another process." Do you have any idea what's wrong?

@cp2004
Copy link
Member

cp2004 commented Jan 10, 2024

Sound like the streamer is still running, the camera can't be used by more than one process. So you have to stop the streamer before you can use libcamera-still.

@apphd78
Copy link

apphd78 commented Jan 10, 2024

@cp2004 - That makes sense. Thanks! Dumb question: How do I stop the streamer?

@jneilliii
Copy link

sudo service camera-streamer stop

@apphd78
Copy link

apphd78 commented Jan 10, 2024

Thank you, @jneilliii

@ascheucher
Copy link

Just one stupid question: the Raspberry Pi Cam v1 & v2 should still be supported by this stack, isn't it?

@sarusani
Copy link

@ascheucher
Yes. I'm currently using a v2 and it works fine.

@ascheucher
Copy link

ascheucher commented Jan 21, 2024

@ascheucher Yes. I'm currently using a v2 and it works fine.

Thanks. Did a reinstall on two RPis (4&3b) with v1 clone cameras. They both can’t detect the cam anymore. Worked for years before with the classic cam stack. Also tried to switch to shorter ribbon cables and another original v1 cam.

On one I applied a backup from octopi 0.17 /octoprint 1.9.3. then it detected the camera with libcamera-hello —list-cameras, but didn’t start the streamer. I assumed the applied backup destroyed something. Hence, I deleted the SD and tried with a newly flashed cam stack version, but then it didn’t detect the cam anymore at all. As only the v3 is mentioned in all the posts, blog posts and questions, I started to question the support of older cams

Running out of ideas.

@sarusani
Copy link

sarusani commented Jan 28, 2024

I noticed that camera-streamer doesn't stop streaming the video when I close chrome or the chrome tab, but it stops properly if I change tabs within OctoPrint.

How to reproduce:
check CPU usage with top

  1. switch from control tab to any other tab that isn't showing the cam (ex. temp)
    -> camera-streamer CPU usage falls bellow 1%
  2. switch back to control tab
    -> camer-streamer usage goes back up (depending on the settings, usually somewhere between 5% - 20%)
  3. close chrome tab or browser
    -> camera-streamer CPU usage stays up. Only way to bring it down is to restart the camera-streamer service.

I assume that whatever code is run between switching the OctoPrint tabs should also been executed on "visibilitychange".

Not sure if that's something in OctoPrint or if I should report this on the Camera Streamer Control plugin...


Edit:
I figured it out. It's a problem with the plugin.
It's using a 5 seconds timeout before it stops the stream. So if the tab/browser is closed it's never executed.

@foosel foosel pinned this issue Mar 11, 2024
@foosel
Copy link
Member Author

foosel commented Mar 11, 2024

FYI, the key used for signing the packages on apt.octoprint.org will expire on Friday. I've spent some time the past months trying to figure out a way to create a new signing sub key that will be recognized by apt with the current public key for apt.octoprint.org, but sadly there seems to be no way apart from re-importing the new public key.

I've already published the new public key that can validate both the old soon-to-expire signing key and the new one that won't expire until 2034, and you can re-import it on the command line like this:

curl -s --compressed "https://apt.octoprint.org/octoprint.gpg.key" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/octoprint.gpg > /dev/null
sudo apt update

That's also documented on https://apt.octoprint.org and in #14.

For now you'll still be able to apt update and apt install from apt.octoprint.org without this, but I'll rotate the signing key on Thursday and from then on you'll get an error when apt reads the packages list off apt.octoprint.org unless the above steps have been done.

@WarrenSchultz
Copy link

Poking around with the new camera stack build, after checking out camera-streamer independently. This is a brand new OctoPi instance I'm setting up, and looking back through this thread as much as possible, if I understand correctly, you've got a separate package for raspi-camera-streamer that manages this package for OctoPrint (?). I tried pulling down the latest version of camera-streamer (2.8) and ran into held packages issues from apt, which tells me you did this on purpose to prevent people like me from breaking things :)

Is it possible to update the package to match the source repo?
Thanks!

@JohnHind
Copy link

JohnHind commented Jun 24, 2024

This is a brand new OctoPi instance I'm setting up

Is there some reason you do not want to use the OctoPi from Raspberry Pi Imager? In my case, I prefer to use the OctoPrint Docker Container and I have been trying to find another Docker Container containing a compatible camera streamer which I really expected would exist entirely independently of OctoPrint as this must surely be a common use case for all sorts of applications. All the leads I've followed up seem to work only with USB Webcams or only with the old Raspberry Pi Camera Module 2. I am wondering if you are trying to make such a thing using the OctoPi package? Not sure why this is being added to the @foosel workload as it seems more like a job for the wider Raspberry Pi community!

@cp2004
Copy link
Member

cp2004 commented Jun 24, 2024

I don't think docker comes into the picture at all here. As I understand the comment, it is asking if the camera-streamer and camera-streamer-raspi packages that come with the OctoPi image, from https://apt.octoprint.org, could be updated to match the latest source of https://github.com/ayufan/camera-streamer.

@JohnHind
Copy link

I don't think docker comes into the picture at all here. As I understand the comment, it is asking if the camera-streamer and camera-streamer-raspi packages that come with the OctoPi image, from https://apt.octoprint.org, could be updated to match the latest source of https://github.com/ayufan/camera-streamer.

Yes, but these packages come already installed in the OctoPi image. If Warren wants to install the streamer separately, presumably he is trying to do something else and it would be useful (or at least interesting) to know what.

@WarrenSchultz
Copy link

Sorry I wasn't clear. I am working from the Imager build, but as cp2004 said, I'd like to have the octoprint apt repository updated to match the upstream.

Thanks!

@JohnHind
Copy link

Sorry I wasn't clear. I am working from the Imager build, but as cp2004 said, I'd like to have the octoprint apt repository updated to match the upstream.

OK, I guess the question is still why? Given the journey this has been on, presumably the version in the OctoPi image now works with OctoPrint and are we sure the upstream does, or will continue to? I'm kind of hoping that if the upstream, presumably more generic, version has accepted all pushes from @foosel perhaps I (or someone more patient and smart than me) can package it in a Docker Container as a service to the wider Pi community?

@cp2004
Copy link
Member

cp2004 commented Jun 24, 2024

Bugs are fixed, features adjusted and new things added. Yes you can't be sure it works, but that's what testing is for. The new camera stack is not claimed to be "stable", and we do know of a few bugs.

Camera-streamer now publishes compiled binaries as part of the releases over there. So it should be relatively easy to install that in a docker container. Don't try and use this repository- start at the source for camera streamer and use that. The "new stack" OctoPi image uses exactly the same streamer, the only things that are done here are the auto start scripts and the like.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests