ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • VirtualBox에 설치된 Ubuntu에서 웹캠(webcam) 사용하는 방법
    개발 환경/VirtualBox & VMWare 2019. 8. 23. 23:58




    버추얼박스에 설치된 우분투에서 웹캠을 사용하는 방법을 다룹니다. 



    최초작성 2019. 8. 23




    버추얼박스의 가상머신 창에 있는 메뉴를 보면 아래 스크린샷처럼 장치 > 웹캠에서 컴퓨터에 연결되어 있는 웹캠이 보입니다. 

    하지만 체크를 해도 게스트 운영체제인 우분투에서 사용할 수 없습니다.

     




    실행중인 가상머신을 종료한 후, https://www.virtualbox.org/wiki/Downloads 에서 VirtualBox Extension Pack를 다운로드 받아 더블 클릭하여 설치합니다. 





    가상머신의 설정에서 USB 3.0 컨트롤러를 사용하도록 변경합니다. 





    호스트 운영체제인 윈도우의 명령 프롬프트에서 컴퓨터에 연결된 웹캠을 확인합니다.

    노란색 부분 경로를 따로 복사해두세요. 


    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list webcams


    C:\Users\webnautes>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list webcams
    Video Input Devices: 1
    .1 "LG HD WebCam"
    \\?\usb#vid_2232&pid_5008&mi_00#6&159b9ebf&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global




    가상 머신을 실행시키고  메뉴 가상머신 창의 메뉴에서 장치 > 웹캠에 체크된 웹캠을 체크해제합니다.


    우분투 부팅 완료후 윈도우의 명령 프롬프트에서 다음 명령을 사용하여 앞에서 복사해두었던 경로를 입력하여 웹캠을 가상머신에 연결합니다.  

    이때 경로를 큰따옴표(")로 둘러싸야 합니다.


    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "VM name" webcam attach [host_path|alias [settings]]


    C:\Users\webnautes>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "우분투" webcam attach "\\?\usb#vid_2232&pid_5008&mi_00#6&159b9ebf&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"




    가상 머신 창에서 확인해보면 메뉴의 장치 > 웹캠에 있는 웹캠이 자동으로 체크됩니다.




    우분투에서 dmesg 명령을 사용하면 다음처럼 웹캠이 인식된 것을 볼 수 있습니다.

    보이지 않는 경우 위로 스크롤하면 찾을 수 있습니다.  


    webnautes@webnautes-VirtualBox:~$ dmesg
    [   57.002174] usb 1-2: Manufacturer: VirtualBox
    [   57.002175] usb 1-2: SerialNumber: 599fbd1ec672942c
    [   57.019945] media: Linux media interface: v0.10
    [   57.026746] videodev: Linux video capture interface: v2.00
    [   57.035676] uvcvideo: Found UVC 1.00 device VirtualBox Webcam - LG HD WebCam (80ee:0030)
    [   57.040013] uvcvideo 1-2:1.0: Entity type for entity Processing 2 was not initialized!
    [   57.040015] uvcvideo 1-2:1.0: Entity type for entity Camera 1 was not initialized!
    [   57.040993] input: VirtualBox Webcam - LG HD WebCa as /devices/pci0000:00/0000:00:0c.0/usb1/1-2/1-2:1.0/input/input8
    [   57.041948] usbcore: registered new interface driver uvcvideo
    [   57.041949] USB Video Class driver (1.1.1)




    우분투에서 video0 디바이스가  생성된 것을 볼 수 있습니다.


    webnautes@webnautes-VirtualBox:~$ ls /dev/video*
    /dev/video0  /dev/video1




    가상머신에  연결된 웹캠은 다음처럼 확인 할 수  있습니다. 


    VBoxManage controlvm "VM name" webcam list


    C:\Users\webnautes>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "우분투" webcam list
    \\?\usb#vid_2232&pid_5008&mi_00#6&159b9ebf&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global




    이제 우분투에서 웹캠 동작을 확인해봅니다.


    우선 vlc 패키지를 설치해야 합니다. 

    sudo apt  install vlc




    터미널에서 다음 명령을 사용하면 웹캠 영상이 보이게 됩니다. 


    vlc v4l2:///dev/video0




    가상머신이 종료 또는 재부팅후 웹캠 연결이 해지됩니다.


    이제부터는 앞에서 했던 과정없이 가상머신창의 메뉴에서 장치 > 웹캠에 있는 웹캠을 체크해주기만 하면 동작합니다. 




    참고


    https://www.virtualbox.org/manual/ch09.html#webcam-passthrough




    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 12

    • opencvv 2019.10.04 16:56


      안녕하세요!
      잘 읽고 따라하는 도중에 alias[settings] 부분에서
      alias 명령어가 실행되지 않는다는데 무슨일 일까요 ㅜㅜ

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.10.04 19:56 신고


        아래줄은 실행시키는 게 아니라 명령어 사용방법입니다.

        "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "VM name" webcam attach [host_path|alias [settings]]


        그다음 줄에 있는 다음 명령을 사용하시면 됩니다.
        노란 색 부분만 이전 명령에서 얻은 문자열로 바꾸세요.

        C:\Users\webnautes>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "우분투" webcam attach "\\?\usb#vid_2232&pid_5008&mi_00#6&159b9ebf&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"

    • webcam 2019.10.10 12:18


      안녕하세요. 카메라 연결이 안되서 고생하고 있었는데 이대로하니까 되어서 덕분에 잘 연결했습니다. 감사합니다! 그런데 제가 yolo 프로그램 안에서 웹캠을 사용하려는데 웹캠 스트리밍이 너무 느리고 잘 안되어서요.... 혹시 해결방법이 있을까요..? yolo 안에서는 opengl을 이용해서 오픈합니다.

    • webcam 2019.10.10 17:43


      혹시 이미지 크기를 줄이는 법은 알 수 있을 까요..??

    • webcam 2019.10.10 18:52


      네! opencv 와 darknet-yolo 를 사용해서 웹캠연결해서 사람 탐지 하려고 하는 건데요,,opengl support 라고하면서 창이 열리고 카메라가 비추는 첫 화면이 뜨면 스트리밍은 못하고 그냥 굉~장히 느려요..3분전 화면 나오고 막..이미지 화질을 떨어트리는 방법은 없을까요..?

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.10.10 19:14 신고


        검색해보니 GPU없이 yolo를 돌리면 느린건 어쩔 수 없다하네요..

        OpenCV에서 이미지 크기 줄이는 건 아래 포스트를 참고하세요
        1/2, 1/4 크기로 줄여서 해보세요.
        많이 빨라지지는 않을듯합니다.

        https://webnautes.tistory.com/1251


        아래 링크도 참고해보세요.
        http://guanghan.info/blog/en/my-works/yolo-cpu-running-time-reduction-basic-knowledge-and-strategies/

    • webcam 2019.10.10 21:08


      https://webnautes.tistory.com/1251 이포스팅 보았는데요
      우분투에 파이썬이 설치되어있지 않아도 resize를 사용할 수 있는건가요?
      저는 파이썬이 없어서요..

    • webcam 2019.10.10 23:55


      c언어로 돼있어요!

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.10.11 16:41 신고


        resize함수를 다음처럼 사용하세요
        3번째 아규먼트로 줄일 이미지의 크기를 입력하면 됩니다.
        아래 예제는 이미지를 절반 크기로 줄입니다.

        resize(src, dst, Size(src.cols/2,src.rows/2));

Designed by Tistory.