天天看點

python調用手機攝像頭,并儲存視訊

python調用手機攝像頭,并儲存視訊

說明:手機端安裝IP攝像頭APP,并開啟

代碼如下:

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 16 20:44:52 2020
@author: 指尖魔法師
功能:python調用手機攝像頭,并儲存視訊

說明:
手機需要安裝IP攝像頭app
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
"""
import cv2
import time

video ='http://admin:[email protected]:8081'
capture = cv2.VideoCapture(video)

if capture.isOpened():
    cv2.namedWindow('camera',cv2.WINDOW_NORMAL)
    
#    儲存avi視訊    
#    fourcc = cv2.VideoWriter_fourcc(*'XVID')
#    # fps = cap.get(cv2.CAP_PROP_FPS)
#    size = (int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
#    out = cv2.VideoWriter('camera_test.avi', fourcc,10.0, size)

#    儲存MP4視訊     
    fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
    fps = 30
    size = (int(capture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
    out = cv2.VideoWriter()
    out.open('output.mp4',fourcc,fps,size,True)

    while capture.isOpened():
        ret,frame = capture.read()
        if ret:
#            #設定了灰值後無法儲存視訊
#            frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
            cv2.imshow('camera',frame)
            
            out.write(frame)
            
            #按空格儲存圖像,按esc退出
            key = cv2.waitKey(10) 
            if key == 27:
                break
            
            if key == ord(' '):
                photoname=str(int(time.time()))+'.jpg'
                cv2.imwrite(photoname,frame)
        else:
            break;
    
    
    
    capture.release()
    out.release()
    cv2.destroyAllWindows()
           

電腦運作效果:

python調用手機攝像頭,并儲存視訊