Camera not working (invalid option -- 'w')

Camera model

Raspberry Camera Rev 1.3

What is the problem?

  • Camera works but stream is not visible

What did you already try to solve it?

  • Checked camera with vcgencmd get_camera output supported=1 detected=1
  • Enabled camera in boot/octopi.txt (set to camera="raspi")
  • Resolved issues with under volting by moving to a better power supply
  • Accessed http://octopi.local:8080/?action=stream (won't load)
  • Accessed http://octopi.local:8080(displays page but no images..)
  • Updated, and upgraded, rebooted, enabled camera within Raspbian using raspi-config
  • Restarted deamons
  • Stopped deamon and ran the command manually

Logs (/var/log/webcamd.log, syslog, dmesg, ... no logs, no support)

journalctl -u webcamd output:

Jan 26 22:29:04 octopi systemd[1]: Starting the OctoPi webcam daemon with the user specified config...
Jan 26 22:29:04 octopi webcamd[306]: Starting up webcamDaemon...
Jan 26 22:29:04 octopi webcamd[306]: --- Configuration: ----------------------------
Jan 26 22:29:04 octopi webcamd[306]: cfg_file:      /boot/octopi.txt
Jan 26 22:29:04 octopi webcamd[306]: camera:        raspi
Jan 26 22:29:04 octopi webcamd[306]: usb options:   -r 640x480 -f 10
Jan 26 22:29:04 octopi webcamd[306]: raspi options: -fps 30 -ex auto -awb auto
Jan 26 22:29:04 octopi webcamd[306]: http options:  -w ./www-octopi -n
Jan 26 22:29:04 octopi webcamd[306]: Explicitly USB device:
Jan 26 22:29:04 octopi webcamd[306]: -----------------------------------------------
Jan 26 22:29:05 octopi webcamd[306]: Found video devices:
Jan 26 22:29:05 octopi webcamd[306]: /dev/video0
Jan 26 22:29:05 octopi webcamd[306]: /dev/video10
Jan 26 22:29:05 octopi webcamd[306]: /dev/video11
Jan 26 22:29:05 octopi webcamd[306]: /dev/video12
Jan 26 22:29:05 octopi webcamd[306]: /dev/video13
Jan 26 22:29:05 octopi webcamd[306]: /dev/video14
Jan 26 22:29:05 octopi webcamd[306]: /dev/video15
Jan 26 22:29:05 octopi webcamd[306]: /dev/video16
Jan 26 22:29:05 octopi webcamd[306]: raspi
Jan 26 22:29:05 octopi webcamd[306]: config file='/boot/octopi.txt':Start MJPG-streamer with video device: raspi
Jan 26 22:29:05 octopi root[393]: Starting Raspberry Pi camera
Jan 26 22:29:05 octopi webcamd[306]: <13>Jan 26 22:29:05 root: Starting Raspberry Pi camera

sudo service webcamd status outputs:

● 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 Tue 2021-01-26 22:55:06 GMT; 1min 22s ago
  Process: 1219 ExecStart=/root/bin/webcamd (code=exited, status=0/SUCCESS)
 Main PID: 1231 (mjpg_streamer)
    Tasks: 10 (limit: 1939)
   CGroup: /system.slice/webcamd.service
           └─1231 ./mjpg_streamer -o output_http.so -w ./www-octopi -n -i input_raspicam.so -fps 10

Jan 26 22:54:35 octopi mjpg_streamer[1231]: MJPG-streamer [1231]: HTTP Listen Address..: (null)
Jan 26 22:54:35 octopi mjpg_streamer[1231]: MJPG-streamer [1231]: username:password....: disabled
Jan 26 22:54:35 octopi mjpg_streamer[1231]: MJPG-streamer [1231]: commands.............: disabled
Jan 26 22:54:35 octopi mjpg_streamer[1231]: MJPG-streamer [1231]: starting input plugin input_raspicam.so
Jan 26 22:54:35 octopi mjpg_streamer[1231]: MJPG-streamer [1231]: starting output plugin: output_http.so (ID: 00)
Jan 26 22:54:35 octopi mjpg_streamer[1231]: MJPG-streamer [1231]: Starting Camera
Jan 26 22:54:38 octopi webcamd[1219]: Encoder Buffer Size 81920
Jan 26 22:55:06 octopi webcamd[1219]: Done bring up all configured video device
Jan 26 22:55:06 octopi webcamd[1219]: Goodbye...
Jan 26 22:55:06 octopi systemd[1]: Started the OctoPi webcam daemon with the user specified config.

dmesg | grep video outputs:

pi@octopi:~ $ dmesg | grep video
[    6.731478] videodev: Linux video capture interface: v2.00
[    7.451145] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    7.458791] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[    7.462380] bcm2835-v4l2: V4L2 device registered as video0 - stills mode > 1280x720
[    7.465978] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[    7.468662] bcm2835-v4l2: Broadcom 2835 MMAL video capture ver 0.0.2 loaded.
[    7.476751] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[    7.477141] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[    7.477713] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    7.490172] bcm2835-codec bcm2835-codec: Device registered as /dev/video12

Additional information about your setup (OctoPrint version, OctoPi version, ...)

System Information

browser.user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15
connectivity.connection_check: 192.168.1.1:53
connectivity.connection_ok: true
connectivity.enabled: true
connectivity.online: true
connectivity.resolution_check: octoprint.org
connectivity.resolution_ok: true
env.hardware.cores: 4
env.hardware.freq: 1200
env.hardware.ram: 915722240
env.os.bits: 32
env.os.id: linux
env.os.platform: linux2
env.plugins.pi_support.model: Raspberry Pi 3 Model B Rev 1.2
env.plugins.pi_support.octopi_version: 0.17.0
env.plugins.pi_support.throttle_state: 0x0
env.python.pip: 19.3.1
env.python.version: 2.7.16
env.python.virtualenv: true
octoprint.safe_mode: false
octoprint.version: 1.5.3

Possible identified Issue:
Manually running ./mjpg_streamer -o output_http.so -w ./www-octopi -n -i input_raspicam.so -fps 10
Gives:

./mjpg_streamer: invalid option -- 'w'
-----------------------------------------------------------------------
Usage: ./mjpg_streamer
  -i | --input "<input-plugin.so> [parameters]"
  -o | --output "<output-plugin.so> [parameters]"
 [-h | --help ]........: display this help
 [-v | --version ].....: display version information
 [-b | --background]...: fork to the background, daemon mode
-----------------------------------------------------------------------
Example #1:
 To open an UVC webcam "/dev/video1" and stream it via HTTP:
  ./mjpg_streamer -i "input_uvc.so -d /dev/video1" -o "output_http.so"
-----------------------------------------------------------------------
Example #2:
 To open an UVC webcam and stream via HTTP port 8090:
  ./mjpg_streamer -i "input_uvc.so" -o "output_http.so -p 8090"
-----------------------------------------------------------------------
Example #3:
 To get help for a certain input plugin:
  ./mjpg_streamer -i "input_uvc.so --help"
-----------------------------------------------------------------------
In case the modules (=plugins) can not be found:
 * Set the default search path for the modules with:
   export LD_LIBRARY_PATH=/path/to/plugins,
 * or put the plugins into the "/lib/" or "/usr/lib" folder,
 * or instead of just providing the plugin file name, use a complete
   path and filename:
   ./mjpg_streamer -i "/path/to/modules/input_uvc.so"
-----------------------------------------------------------------------

EDIT:

so the possible issue (./mjpg_streamer: invalid option -- 'w') is a mistake in the echo from the webcam script. It executes ./mjpg_streamer -o "output_http.so -w ./www-octopi -n" -i "input_raspicam.so -fps 10"` which indeed runs fine - still no webcam though!

This post in this thread has a similar issue but no answer was provided

I may suggest you edit your /boot/octopi.txt with sudo nano.

then try :

camera_http_webroot="./www"
camera_http_options=""

next you shouldn't require #USB option until you have an USB webcam. so # it
next your raspicam option may be missing some resolution info.

camera_raspi_options="-x 1296 -y 972 -fps 15"

[Edit for a V1.3 module]

according to : https://www.raspberrypi.org/documentation/raspbian/applications/camera.md and according you have a V1.3 [Edit] raspicam module

Next rebooted and octoprint restarted

you should obtain some stream infos at : http://[youroctopi_ip_here]/webcam/index.html
or having a mjpg working in

ps -aux | grep mjpg

1 Like

though about what sould be missign in you /boot/config.txt

enable raspicam
gpu_mem=256

or whatever value between 144 and 256.

1 Like

So it turned out to be my (rookie) mistake...

I did run vcgencmd get_camera to ensure the camera was wired properly.
However I forgot to run raspistill -o test.jpg(again) to verify I actually could get an image back after that.. turned out the sunny connector popped loose when closing the case..