A new camera stack for OctoPi

Thank you, Slacker. I was looking for something that said, "Hey, Dummy! Start here!" rather than some obscure, barely recognizable link. My bad.

You are using a pre-release image. That means you can expect some less-than-optimal documentation which would require a little more work and attention to detail. If that isn't you maybe consider waiting until the documentation is complete. At the risk of sounding like a jerk (which you certainly do) I can read things for you but I cannot understand them for you.

2 Likes

@Slacker thank you for your patience and your help :slight_smile:

1 Like

Nice. How professional, indeed.

OctoPrint team, I apologize. I can't sit by and not point out when people are being whiny jerks....

delovelady, let's recap.

You asked for help indicating you had the image installed but didn't know where to start.

I offered that you missed the documentation and provided a link.

You got snarky.

Someone else tried to explain you are only reading comments and not the instructions.

You asked how to see the instructions that I posted three comments above and to which you got snarky. You gave the paragraph headers from the instructions but still didn't have any idea where to start because you didn't actually read the instructions.

I pointed that out and even reposted the link that is in those instructions not once but TWICE. I suggested you read them carefully and come back with specific questions to get on track.

Someone else chimed in confused because despite being told several times to read the instructions you keep ignoring them and getting snarky with those trying to tell you that you are NOT reading the instructions.

Your response was to say the links in the instructions which are a different color than the rest of the text to make them stick out are obscure.

Obscure: So faintly perceptible as to lack clear delineation; indistinct

A different color and underlined is hardly faintly perceptable or indistinct, but twice you said they are obscure. So I suggested if you are not able to read and carefully follow these instructions you should wait until this is an actual supported, documented release. I also pointed out every response you gave indicates you are a jerk. You asked for help, people gave you help, you ignored it and got more rude with each response. I say again that there isn't anyone here that will understand the instructions for you. You need to read, test, and when you have problems ask for help. But refusing to read and then complaining nobody is helping you is lazy. Being rude when others point that out makes you a jerk. Nothing in any of my responses was unprofessional or incorrect. You are a jerk and pointing that out does not make me unprofessional.

I'm truly sorry you feel that way, Slacker. Our perspectives differ. I replied to this thread, indicating that I didn't get how to get started. You replied with a link to this thread and a comment that I should read it. Later (and only later), you provided a link from within the thread that I had missed, a link that actually did help me out, and I appreciate that! Here's what that reference looks like on my browser. No underlines, and (for my poor eyes) not much color difference in the links. So I missed it, and later called it obscure (with reason).

I do wish my eyesight was better, honestly, I do, but it is not. So, yes, to me it is obscure. My other comments that you call snarky were, in fairness, retaliation to your own insults hurled my way.

At this point, I have the information I need - and that is largely thanks to you, so the rest of this doesn't really belong here. But like you, I am led to defend my position. I wish we were friends; you seem to know a lot. We have some hurdles to overcome, clearly, and they would need to start with us trying to understand one another's perspective.

Anyway, we could argue this all year and nothing would be accomplished, I'm happy with the progress though disappointed with the fallout. I truly hope you have a great day.

I'm glad we were able to bring the story to a good end.

Now please let's get back to the topic :wink:

If you want, you are free to continue your conversation via pm or visit the discord server to stay in contact there.

1 Like

Im curious about the upgrade path of the new branch. I want to know if I install the new image from the camera-streamer branch, will we be able to merge back to the stable branch once it releases or should we expect another reflash?

I mainly want to know if I should go ahead and reinstall OctoPi or wait for camera-streamer to be merged into stable... I want to mess around but not too much. :confounded:

If your interested in just trying it out it's easy enough to use a separate SD card for the new camera stack image, just backup the one you have now and download the zip, then restore that zip as part of the initial setup wizard. There's no timeline that I've seen mentioned anywhere when this will get merged into the main image, but will probably be a while in order to get more testers trying it out and validating operation I suspect.

hi does the new stack work on manual installs of octoprint if so how do i get it .
thanks
martin

This is a new webcam stack for OctoPi, so no the blog post only applies to the OctoPi image not installs with other OS images.

One of the good things about how this image is set up is that the scripts should be upgradable via apt. So running sudo apt update and sudo apt upgrade would be able to update camera-streamer as well as camera-streamer-stack scripts, from https://apt.octoprint.org.

Of course, we haven't yet tried this out in the field - whilst there is still work ongoing, there has not yet been a new release that people could update to should they wish to.

It doesn't change the fact that you would have to re-image to upgrade OctoPi versions in general, it just makes it easier to change the webcam stack.

@Charlie_Powell @jneilliii Thank you for your answers! My original question came mainly from ignorance and laziness.

First I did an image of the previous installation and then flashed the new 1.9.1 with the new camera stack. I went from OctoPi 0.17.0 to 1.0.0 lmao

Now that I went through the process I understand that reinstalling is not as traumatic as I thought. The backup restore is really good and it reinstalls all the Plugins with their settings as they were, so it's really not that big of a deal to reinstall regularly. :slight_smile:

Knowing this I'll definitely update OctoPi more often!

Not sure if new image reports usage. Wanted to share that all is working fine with RPi4 with a pi camera and an USB camera.

There was one comment in the FAQ that might need to be updated. It says:

The configuration shipped on the image will support running either a libcamera device or a USB camera device. To support multiple cameras ...

so I was expecting to have to follow steps in that section to have both cameras running. I was pleasantly surprised when things just worked. :slight_smile: I configured each .conf file and voila!

Great job everyone that was involved!!! When I have more time, I will test in my other RPi that has 2 USB cameras and no pi camera to see how things go.

Gaston

Coming from Obico's OrangePi Zero 2 Image, just imaging is not yet an option (as Obico did not update the image yet) and is not the most practical one, as I for example use RedHat cockpit to manage updates, SMB access, AD join and more that would need additional backups.

I tried downloading and installing with dpkg but it fails

orangepi@beyla:~$ sudo dpkg -D2000 --log=./log.txt -i ./camera-streamer_0.2.transitional_armhf.deb
dpkg-deb: error: './camera-streamer_0.2.transitional_armhf.deb' is not a Debian format archive
dpkg: error processing archive ./camera-streamer_0.2.transitional_armhf.deb (--install):
 dpkg-deb --control subprocess returned error exit status 2
Errors were encountered while processing:
 ./camera-streamer_0.2.transitional_armhf.deb

I added the repo

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

but it seems not to be available for armhf
when I try to install it with sudo apt install camera-streamer-stack

N: Skipping acquire of configured file 'rpi/binary-arm64/Packages' as repository 'https://apt.octoprint.org/debian bullseye InRelease' doesn't support architecture 'arm64'

Even though Gina mentioned explicitly she does not want to support manual upgrading, I am curious. Anyone else out there who wants to start the journey?

Gina's end goal is to have it pulled directly from camera-streamer. I suspect it just doesn't have 64bit builds because the OctoPi image with camera-streamer is explicitly 32bit platform. I think I saw mention on Discord with others that this would probably expand, but why not just grab camera-streamer directly if you want to attempt to use it?

This whole situation is just infuriating

1 Like

Continuing the discussion from A new camera stack for OctoPi:

I sympathize, but I think the frustration is misdirected and the fault lies with the Raspberry Pi people.

Several months ago, I decided to try and solve this myself. I thought I'll build a bog standard Pi using the latest 64-bit PiOS Lite and then run the docker container version of OctoPi under that. I'd use the base OS with the updated camera stack to stream the camera (Camera Module 3) and consume the stream inside the OctoPi container. Months of rabbet-holes later, I have a lovely Pi 4 with CasaOS running containers with OctoPi, Portainer, NodeRED, Grafana, Mosquitto MQTT and a CircuitPython container interfacing some I2C peripherals with MQTT.

All works marvelously. Except the sodding camera!

This morning I set out to install the camera streamer. I thought I'd just type:

libcamera-hello --list-cameras
libcamera-vid -t 0 --inline --listen -o tcp://0.0.0.0:8554

Per the Raspberry Pi documentation. This seemed to work, but the plugin settings in Octoprint will not accept a URL with a TCP protocol, only HTTP. Presumably a web page with the stream embedded. I've watched dozens of YouTube videos and searched hundreds of web sites of Pi fans. I found a few web interfaces using the old stack but not a one claiming compatibility with the new. It seems in Python you have to substitute 'picamera' library with 'picamera2'. That sounds like yet another rabbet hole, and probably a particularly knarly one or someone would have done it already!

I know I should just throw in the hat and buy a Camera Module 2, but my personality means I can't see a brick wall without banging my head on it. Repeatedly!

This project uses camera-streamer to do the streaming - it should be setup by default, and is definitely compatible with libcamera - that's the point of it. You shouldn't need to run these commands to get it to stream.

If you are having issues it's probably easier to open your own topic in the community forum here and provide a systeminfo bundle.

Edited: I have just reread - I think you may be confused between OctoPi, OctoPrint & the new camera stack this blog post refers to. OctoPi is the OS image for Raspberry Pis that comes pre installed with OctoPrint & the streaming setup. The new camera stack in this blog post is only available on the OctoPi image. You aren't using OctoPi, because you are running a different base OS with OctoPrint in a container. If you want streaming, then yeah you'd have to install something yourself. Camera-streamer may still work for you but you'll have to set it up yourself in your setup, and this blog post is irrelevant to you.

Yes, the OctoPi does not really suit my use even though I will run OctoPrint on a Pi. I want OctoPrint to be a component in a wider system and not to entirely replace everything on the Pi. To that end I was looking for a Camera Module 3 compatible web streamer which I hoped to find in the Raspberry Pi ecosystem since it is not really OctoPrint specific. The subject of this thread is actually the closest I've found anywhere in the ecosystem, and it seems like all the good work that has been done could have a much wider audience than just OctoPi. If the streamer was presented as a separate installer, or just a comprehensive installation guide like Gina's for OctoPrint itself, it could be the basis for building OctoPi and also a separate Docker Image with just the streamer, and an optional add-on for those building their own installation. Within the OctoPrint use case, I can see scenarios were the user would want the camera streamer and OctoPrint on different machines or containers. The icing on the cake, it would also be valuable for Pi users who are not even interested in 3D printing! I'll work it out myself if necessary, but looking at the Git repository it seems to be a serious rabbet hole and a lot more complex than I'd expected it to be. I guess I was hoping for a bit of a leg-up from those who have already suffered!