audio device와 마찬가지로 docker host에 연결된 HW를 직접 access 하기 위해서는 device 사용 권한을 docker container로 함께 넘겨 줘야 합니다.
여기서는 비디오 디바이스의 사용 가능 여부를 확인하기 위해서 V4L2를 사용하도록 하겠습니다.
Video4Linux2 (V4L2)는 리눅스 커널에서 비디오 캡처 및 비디오 출력 장치와 상호 작용하기 위한 API 및 드라이버 프레임워크입니다.
V4L2는 비디오 카메라, 웹캠, TV 튜너, 디지털 비디오 카드 등 다양한 비디오 관련 하드웨어 장치를 제어하는데 사용됩니다.
v4l 관련 패키지 설치
apt-get install v4l-utils
1. host에 연결된 usb cam 디바이스 확인
먼저 호스트에서 제대로 인식 되고 있는지 확인해 봅니다.
> v4l2-ctl --list-devices
하지만 docker container에서 확인을 해보면 다음과 같이 디바이스가 보이지 않습니다 .
이런 경우 docker container를 생성할때 device 정보를 같이 넘겨주면 동일하게 access가 가능합니다.
2. --device option을 이용하여 컨테이너 생성하기
아래와 같은 방법으로 host의 video deivce 정보를 함께 넘겨 줍니다.
docker run --runtime=nvidia --shm-size=1024m -e NVIDIA_VISIBLE_DEVICES=all -e NVIDIA_DRIVER_CAPABILITIES=all --net=host --env="DISPLAY" --device=/dev/snd:/dev/snd --device=/dev/video0:/dev/video0 --device=/dev/video1:/dev/video1 --device=/dev/media0:/dev/media0 -i -t -v /etc/localtime:/etc/localtime:ro -v /home/docker/share:/root/share --name=ubuntu2004_media ubuntu2004_img:new /bin/bash
위와 같은 옵션으로 컨테이너를 생성한 후에 동일한 방법으로 확인해봅니다.
> v4l2-ctl --list-devices
host와 동일하게 video device가 보이는게 확인될 것입니다.
이제 cam 영상 수신과 캡쳐 등을 도커 내에서도 사용하실 수 있습니다.
'IT > 리눅스' 카테고리의 다른 글
PCM 파형의 음량크기 측정하기(rms dB, dBFS, 파이썬) (0) | 2024.01.26 |
---|---|
Rocky linux 8 VLC 플레이어 설치하기(+ 기본 프로그램 변경) (0) | 2023.12.21 |
리눅스 USB Camera 연결 상태 확인하기(lsusb, v4l2) (0) | 2023.09.19 |
(3) docker 컨테이너에서 host 오디오 디바이스 사용하기(host alsa access, host audio device) (0) | 2023.09.15 |
(2) 리눅스 오디오 장치 확인 및 소리 재생 하기 (console, alsa, speaker-test, aplay, amixer) (0) | 2023.09.15 |