>

파이썬 응용 프로그램에서 OpenCV를 사용하여 IP 카메라에서 비디오를 스트리밍하고 있습니다.

cap = cv2.VideoCapture("http://usr:psw@192.168.1.1/video.cgi")

에버리 스트링은 잘 작동합니다.

그러나 실행 파일을 얻어야했기 때문에 PyInstaller 를 사용했습니다. . 결과 .exe 에서  스트림이 더 이상 작동하지 않습니다.

다음과 같이 캡처를 변경하는 대신 :

# works with camera_num = 0 (pc's webcam) and = 1 (external USB webcam)
cap = cv2.VideoCapture(camera_num)

내 PC의 웹캠 또는 외부 USB 웹캠으로 캡처하면 모든 것이 작동합니다.

어떤 제안?

  • 답변 # 1

    @GPPK와 @Dan Mašek 덕분에 문제를 해결할 수 있다고합니다.

    문제는 @Dan Mašek이 말했듯이 "FFMPEG는 어려운 의존성이 아니다"라는 것이 었습니다.

    따라서 해결책은 OpenCV의 FFMPEG dll을 검색하는 것입니다. python 시작  cosnole에서 :

    # import OpenCV module
    import cv2
    # retrieve the pathname of the file from which the module was loaded
    cv2.__file__
    
    

    출력은 다음과 같아야합니다 :

    'C:\\Users\\luke\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\cv2\\cv2.cp36-win_amd64.pyd'
    
    
    cv2 로 이동  폴더, opencv_ffmpeg340_64.dll 검색  파이썬 응용 프로그램의 폴더에 복사하십시오.

    이제 PyInstaller 에 알려야합니다  이 dll을 .exe 에 추가하려면 :

    pyinstaller -F --add-data "opencv_ffmpeg340_64.dll;." test.py
    
    

관련 자료

  • 이전 별표를 부르는 SIPP 테스트
  • 다음 memory - windbg - ! vad, "시작"및 "종료"열의 의미는 무엇입니까?