libwebcam allows camera back-end choice and provides elaborate error messages