What is the problem?
I have followed the directions to manually install Octoprint on my brand new oDroid XU4. I have everything working except the WebCam. Hoping to use webcam on port 8080 and OctoPrint is using port 5000.
What did you already try to solve it?
I can manual start the stream by manually running
mjpg_streamer -i "/home/odroid/mjpg-streamer/mjpg-streamer-experimental/input_uvc.so -r 1920x1080 -d /dev/video0 -n" -o "/home/odroid/mjpg-streamer/mjpg-streamer-experimental/output_http.so -p 8080"
Could it be that Octoprint is expecting mjpeg-stream in pi home folder or some other hard coded value?
Additional information about your setup (OctoPrint version, OctoPi version, printer, firmware, octoprint.log, serial.log or output on terminal tab, ...)
Move everything from /home/pi/mjpg-streamer/mjpg-streamer-experimental$
to /home/pi/mjpg-streamer/
and try again. Here are the files I have in /home/pi/mjpg-streamer/
Done, I copied them and rebooted but it looked like it tried to do something but ultimatelty I get the black screen saying /webcam/?action=stream is unavailable.
I believe the mjpegstream is created when you boot the pi, so really Octoprint doesn't have anything to do with it. I'm thinking the next step may just be to start mjpegstreamer yourself within the boot script since you were able to start it manually.
Otherwise, if you can connect a monitor to your odroid maybe you can see some errors during boot?
What boot script?
I have a monitor hooked and I see no errors on start.
I was thinking of your comment that the OS just starts mjpg-streamer - I do not see how an app in my a Home folder just gets started without telling the OS. Can you add details?
When I attempt to start mjpg-stream with the SAME port as OP then it fails to start stating that the port is already in use. So OP has to know or expect that the stream exists so it can be used on the SAME port. Am I wrong?
The trick for having OctoPrint and the webcam server on the same port (with the later on the sub path webcam) is a reverse proxy in front of both. On OctoPi that is haproxy. If you want to mirror this kind of setup in your odroid you'll have to follow the "making everything accessible on port 80" section of the raspberry pi setup guide (adapted to suit your paths and setup of course), and also the bits on how to have everything autostart.
OctoPrint itself has absolutely nothing to do with the stream. It doesn't control or manage it in any way.
Thank you, I uninstalled haproxy since I to get everything running on a port other than 80. Maybe I did something wrong initially and that why it did not work and am not down a rabbit hole.
I will try and re-install tonight when I get home from work.
I decided to go into work late so I just followed the instructions and used the example haproxy cfg and no worky.
I still do not see how mjpeg-streamer is started - can someone explain this? The example even states to manually start the stream and I cannot find anywhere where the EXAMPLE directions says to create a service or something. Just above the webcam section is a section to add a Octoprint service - should there be a service for mjpg-streamer? I just noticed a start.sh in the mjpg folder but not sure want to do with it or if its to be used?
The next thing that I thing is wrong is the haproxy.cfg - there are variables that look like the its expecting default locations ... like use_backend webcam and default_backend - were do these variables point to? I am attaching my cfg which needs to remove .yaml
frontend public
bind :::80 v4v6
use_backend webcam if { path_beg /webcam/ }
default_backend octoprint