New Camera streamer

What is the problem?

I atached a new RaspiCam Module 3(with autofocus) to my fresh setup of octoprint (1.9.1) and Octopi (1.0), and when I go to "Classic Webcam Plugin) a test of the snapshot URL return a correct image. I´ve set the Port to 8081. However, the stream won´t come up.

What did you already try to solve it?

Collect latest System log with: journalctl -u camera-streamer:

-- Boot 7f6283129ddd4ad7ac8e89ebb64d05d6 --
Jul 07 15:25:37 octoprint-CH-2 systemd[1]: Starting camera-streamer...
Jul 07 15:25:37 octoprint-CH-2 camera-streamer-control[578]: Running start for camera-streamer-libcamera.service...
Jul 07 15:25:38 octoprint-CH-2 camera-streamer-control[578]: ... done.
Jul 07 15:25:38 octoprint-CH-2 camera-streamer-control[578]: Adding path unit for autolaunch of camera-streamer-usb@default
Jul 07 15:25:39 octoprint-CH-2 camera-streamer-control[578]: Running start for camera-streamer-usb-default.path...
Jul 07 15:25:39 octoprint-CH-2 camera-streamer-control[578]: ... done.
Jul 07 15:25:39 octoprint-CH-2 systemd[1]: Finished camera-streamer.

before I run: libcamera-hello --list-cameras:

Available cameras

0 : imx708 [4608x2592] (/base/soc/i2c0mux/i2c@1/imx708@1a)
Modes: 'SBGGR10_CSI2P' : 1536x864 [30.00 fps - (0, 0)/0x0 crop]
2304x1296 [30.00 fps - (0, 0)/0x0 crop]
4608x2592 [30.00 fps - (0, 0)/0x0 crop]

Have you tried running in safe mode?

meanwhile I have tried to run octoprint in safe mode, so YES

Did running in safe mode solve the problem?

Even running Octoprint in safe mode did not alter the outcome...

octoprint-systeminfo-20230707160047.zip (423.7 KB)

Systeminfo Bundle

You can download this in OctoPrint's System Information dialog ... no bundle, no support!)

WRITE HERE

Additional information about your setup

OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible

Octoprint 1.9.1, Octopi 1.0.0, Phyton 3.9.2, Octodash latest

1 Like

O.K., When I put "http://192.168.0.222:8081/video.mp4" into my browser, I can see the stream. But: stupid as I am I can´t figure out what to put into the stream URL inside Octoprint to get it running...

1 Like

Try this beta plugin. Install by copying/pasting the URL into Plugin Manager > Get More > ...from URL.

https://github.com/cp2004/OctoPrint-CameraStreamer-Control/archive/refs/heads/main.zip

I´ve installed it, and tried some different url´s, but same like before.... When I put just http://192.168.0.222:8081 i get the attached site, maybee that might help?

When I put "http://192.168.0.222:8081/webrtc" into the browser the video loads and shows....

Do you get the same page when going to http://192.168.0.222/webcam/

And disable classic webcam plugin...

when I put http://192.168.0.222/webcam/ a site comes up saying "The webcam server is currently not running"
I have disabled Classic webcam plugin befor installing camera streamer plug....

Did you manually install camera-streamer? Port 8081 is not the "standard" port of 8080 that haproxy expects in it's default octopi config. To resolve you could switch the config by connecting SSH to the pi and running sudo nano /etc/haproxy/haproxy.cfg and editing the webcam backend section to use 8081 instead of 8080. Ctrl+S to save and then Ctrl+X to exit and then run sudo service haproxy restart to restart the service and run the new config. Then you should be able to use /webcam/stream or /webcam/stream/video.m3u8 in the settings. Although I thought the plugin did that for you.

EDIT: this was just a guess, I'm installing the new camera stack image on a test pi now to get more familiar with how it works and is configured.

Good morning jeneilliiii, I installed camera streamer just the way you suggestet. Only in the config for the camera /boot/camera-streamer/libcamera.conf I changed the port to 8081. However, I´ve changed that back to 8080 already yesterday while talking with you. Up to now the prob is still the same, when I put http://192.168.0.222:8080/webrtc in a new browser tab, it shows the video stream about 5-6 seconds later. In octoprint window he tells me:

Webcamstream nicht geladen

It might not be configured correctly or require authentication. You can change the URL of the stream under "Settings" > "Camera Streamer Control" > "Stream URL". If you don't have a webcam you can also just disable webcam support in the 'Webcam and Timelapse' section of OctoPrint's settings.

Aktuell konfigurierte Stream-URL: /webrtc m support in the 'Webcam and Timelapse' section of OctoPrint's settings

inside the space for the camera view it shows only the part: configured url: /webrtc
if I coppy this and paste it here it adds the whole resulting url: https://192.168.0.222/webrtc This shows us that the url is missing the port, it should look like so: http://192.168.0.222:8080/webrtc
If I put the port in the config it translates it to this string: https://192.168.0.222/:8080/webrtc
what means it adds a slash between URL and port, which should not be there.
I´m struggling to tell octoprint / camera streamer plugin how to get the url right. Because the stream is comming still very clear and with high quality at:
http://192.168.0.222:8080/webrtc

additionally the camera streamer plugin seems to put the url with ssl:

https://192.168.0.222/webrtc - I can not reach the camera stream under this url. I need to configure this url:
http://192.168.0.222:8080/webrtc - here I can reach the stream.

but nor octoprint, neither camera streamer plug let me configure the url the right way...

octoprint by itself puts the following URL:http://127.0.0.1/webrtc/snapshot for the snapshot.
what means it uses no sll - what is good, but it uses localhost, and when I put this inside a firefox-tab, its not reachable.
If I put http://192.168.0.222:8080/webrtc/snapshot it gives me an error.
If I put http://192.168.0.222:8080/snapshot it gives me a perfect snapshot in the browser window.

As a conclusion:
This is all programmed perfectly, only when it comes down to the URL part of the streamer, it´s getting a whole mess, that seems to be impossible to be configured right.

Have you tried with webcam instead of webrtc?

If I put http://192.168.0.222:8080/webcam in a new browser tab it tells me: not found
If I put webcam into the camera streamer plugin It does not work, because what it makes is constructing the following url inside of its code: https://192.168.0.222/webcam.

If You read my recent 3 posts above, you will see that neither octoprint, nor the camera streamer plugin are able to construct the correct urls for the cam:
http://192.168.0.222:8080/webrtc for the stream
http://192.168.0.222:8080/snapshot for the snapshot

and no matter what I try and put, either octoprint and camera streamer make something of the url´s that can not work. On the one hand they try to use SSL (which does not work) or they miss out on the Port: 8080, or they put the wrong extension @ the end...

I run with these:

/webcam/?action=stream

and

http://your_ip:8080/?action=snapshot

thanks, Ewald_Ikemann
when I put: webcam/?action=stream indeed it works! But that is the old mjpeg streamer isn´t it? I get a warning triangle inside the video stream that says: "failed to load webrtc stream"
I tried to configure the snapshot url like you said, where can I test if the snapshot works? As I remember the option to test snapshot was inside the classic webcam plugin, which I deinstalled after jeneilliii´s advice.

For using the old motion - jpeg - streamer I would not have needed to install Octoprint 1.9.1 beta with the experimental streamer. Everything with this build seems to be alright, the new streamer seems to work perfectly, only the URL configuration fails due to the fact, that I can not put the whole URL by myself.
The URL gets messed up by either octoprint and / or camera streamer plugin. That seems to be the only issue with new camera streamer.

What is strange too: Even despite the webcam stream displays correctly inside the main area of the UI Customizer theme, it takes forever to load in the side widget of this theme...
Additionally - as you can see from the previous screenshot - it fails to display the (by me) customized stylesheet sometimes...


I have to make a correction here: If I go to:

http://192.168.0.222/webcam/ I get the same page in a browser window
http://192.168.0.222/webcam/webrtc i get to see the stream in a browser window
http://192.168.0.222/webcam/snapshot i get a snapshot in a browser window

but when I put these inside octoprint they don´t work. It only gives me an error...

I have replied on the GitHub issue you created as well, but I'll put something similar, maybe with some more explanation here in case others find they need help with it & to clear up the misunderstanding.

The URLs are split into two parts. You have your 'Webcam URL', which is the base of where camera-streamer is being served. This defaults to /webcam/ in the plugin, which works out of the box with the OctoPi 'new camera stack' image. Then you have all the extension URLs, such as snapshot, stream, webrtc. They are appended to the webcam URL, so for webrtc your URL becomes /webcam/webrtc.

If you want to use an IP & port for some reason (can't recommend hardcoding your IP into the settings because it might change), then you can adjust the 'Webcam URL' to be http://192.168.0.222:8080/. This will then result in the webrtc URL being http://192.168.0.222:8080/webrtc which is correct. Don't try and add the port into all the extensions, put it in the base URL.

Please also note that this plugin is not finished. If some of the configuration UI is not tidy or you encounter bugs, it's because it's still a work in progress.