This is not required any more, you need upgrade your firmware to the version +4.09 using ElGato Cammera Hub
https://help.elgato.com/hc/en-us/articles/4406041241997-Elgato-Facecam-Firmware-Update
- Added MJPEG as a fallback video format. MJPEG requires less USB bandwidth and improves compatibility with programs that cannot handle uncompressed video.
I'm creating 3 Loopback devices, if you only need do this for the Facecam you can define only one like this:
options v4l2loopback video_nr=11 card_label="ElGato FaceCam"
I'm using my serial as a path to not conflict with my another input devices /dev/v4l/by-id/usb-Elgato_Elgato_Facecam_FW42K1A07115-video-index0
on the facecam-init.sh
.
You can check what is your correct path with this command:
ls /dev/v4l/by-id/
On my facecam-init.sh
, I set some parameters that make sense for my enviroment, this maybe cannot fit for you, so you can remove this line.
v4l2-ctl -d /dev/v4l/by-id/usb-Elgato_Elgato_Facecam_FW42K1A07115-video-index0 --set-ctrl="brightness=180,contrast=3,saturation=35,white_balance_temperature_auto=1,power_line_frequency=2,sharpness=1,exposure_auto=2,zoom_absolute=5"
or adjust the parameters that you want.
You need start the script to create the pipe from the FaceCam Device to the LoopBack Virtual Device
- Add execution permissions:
chmod +x facecam-init.sh
- Run
./facecam-init.sh
I have made some improvements as well. Here is the script to start the camera on demand.
Can be enabled as system daemon. The trick is to stream some video to virtual camera all the time
https://github.com/fu2re/LinuxFaceCam/blob/main/facecam.sh