Merge pull request #50 from CeeBeeEh/master

Linux compatibility changes
This commit is contained in:
iperov 2022-03-20 19:24:27 +04:00 committed by GitHub
commit f2242f8ca3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 1 deletions

View file

@ -55,12 +55,15 @@ class _DriverType(IntEnum):
DSHOW = 0
MSMF = 1
GSTREAMER = 2
OPENCV = 3
_DriverType_names = { _DriverType.DSHOW : 'DirectShow',
_DriverType.MSMF : 'Microsoft Media Foundation',
_DriverType.GSTREAMER : 'GStreamer',
_DriverType.OPENCV : 'OpenCV',
}
class _RotationType(IntEnum):
ROTATION_0 = 0
ROTATION_90 = 1
@ -112,6 +115,7 @@ class CameraSourceWorker(BackendWorker):
cv_api = {_DriverType.DSHOW: cv2.CAP_DSHOW,
_DriverType.MSMF: cv2.CAP_MSMF,
_DriverType.GSTREAMER: cv2.CAP_GSTREAMER,
_DriverType.OPENCV: 0,
}[state.driver]
vcap = cv2.VideoCapture(state.device_idx, cv_api)

View file

@ -12,4 +12,9 @@ git clone DeepFaceLive
cd DeepFaceLive/build/linux/
# start.sh builds and runs container with proper options, then example.sh will start DeepFaceLive with example options
./start.sh
Usage of ./start.sh
# -d specify a folder for DeepFaceLive data (videos, models, etc)
-d /home/user/DeepFaceLive_data
# -c will pass through existing video devices such as /dev/video0 and /dev/video1, etc
```

View file

@ -1,5 +1,33 @@
#!/bin/bash
DATA_FOLDER=$(pwd)/data/
declare CAM0 CAM1 CAM2 CAM3
printf "\n"
while getopts 'cd:h' opt; do
case "$opt" in
c)
printf "Starting with camera devices\n"
test -e /dev/video0 && CAM0="--device=/dev/video0:/dev/video0"
test -e /dev/video1 && CAM1=--device=/dev/video1:/dev/video1
test -e /dev/video2 && CAM2=--device=/dev/video2:/dev/video2
test -e /dev/video3 && CAM3=--device=/dev/video3:/dev/video3
echo $CAM0 $CAM1 $CAM2 $CAM3
;;
d)
DATA_FOLDER="$OPTARG"
printf "Starting with data folder: %s\n" "$DATA_FOLDER"
;;
?|h)
printf "Usage:\n$(basename $0) [-d] /path/to/your/data/folder\n"
exit 1
;;
esac
done
shift "$(($OPTIND -1))"
printf "\n"
# Warning xhost + is overly permissive and will reduce system security. Edit as desired
docker build . -t deepfacelive
xhost +
docker run --ipc host --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $(pwd)/data/:/data/ --rm -it deepfacelive
docker run --ipc host --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $DATA_FOLDER:/data/ $CAM0 $CAM1 $CAM2 $CAM3 --rm -it deepfacelive