Opencv從文件中播放視頻


1、VideoCapture()括號中寫視頻文件的名字,在播放每一幀的時候,使用cv2.waitKey()設置適當的持續時間,太低會播放的很快,太高會很慢,通常情況下25毫秒就行了。

2、獲取相機/視頻的各種屬性–常見函數

cv2.VideoCapture.get(propId) 訪問視頻的某些功能,其中propId是一個從0到18的數字,每個數字表示視頻的屬性(Property Identifier)。
retval = cv2.VideoCapture.set(propId,value)
其中一些值可以使用 cap.set(propId,value) 進行修改,value是修改后的值。
例如:通過cap.get(3)和cap.get(4)來檢查幀的寬度和高度,默認的值是640x480。現修改為320x240,使用ret = cap.set(3, 320)和ret = cap.set(4, 240)。
retval,image= cv2.VideoCapture.read([,image]) 抓取,解碼並返回下一個視頻幀。返回值為true表明抓取成功。該函數是組合了grab()和retrieve(),這是最方便的方法。如果沒有幀,該函數返回false,並輸出空圖像。
retval, image = cv2.VideoCapture.retrieve([, image[, flag]]) 解碼並返回抓取的視頻幀
retval = cv2.VideoCapture.grab() 從視頻文件或相機中抓取下一幀。true為抓取成功。該函數主要用於多攝像頭時。
cv2.VideoCapture.release() 關閉視頻文件或相機設備。

retval = cv2.VideoCapture.get(propId)   #打開視頻文件或者相機設備進行視頻捕獲。

propId 常見取值如下:
"""
cv2.CAP_PROP_POS_MSEC:     視頻文件的當前位置(ms)
cv2.CAP_PROP_POS_FRAMES:   從0開始索引幀,幀位置。
cv2.CAP_PROP_POS_AVI_RATIO:視頻文件的相對位置(0表示開始,1表示結束)
cv2.CAP_PROP_FRAME_WIDTH:  視頻流的幀寬度。
cv2.CAP_PROP_FRAME_HEIGHT: 視頻流的幀高度。
cv2.CAP_PROP_FPS:          幀率
cv2.CAP_PROP_FOURCC:       編解碼器四字符代碼
cv2.CAP_PROP_FRAME_COUNT:  視頻文件的幀數
cv2.CAP_PROP_FORMAT:       retrieve()返回的Mat對象的格式。
cv2.CAP_PROP_MODE:         后端專用的值,指示當前捕獲模式

cv2.CAP_PROP_BRIGHTNESS:圖像的亮度,僅適用於支持的相機
cv2.CAP_PROP_CONTRAST:  圖像對比度,僅適用於相機
cv2.CAP_PROP_SATURATION:圖像飽和度,僅適用於相機
cv2.CAP_PROP_HUE:       圖像色調,僅適用於相機
cv2.CAP_PROP_GAIN:      圖像增益,僅適用於支持的相機
cv2.CAP_PROP_EXPOSURE:    曝光,僅適用於支持的相機
cv2.CAP_PROP_CONVERT_RGB:布爾標志,指示是否應將圖像轉換為RGB。
"""

import cv2
cap = cv2.VideoCapture('hhh.mp4')


while cap.isOpened():
    ret, frame=cap.read()
    
    cv2.imshow('frame', frame)
    if cv2.waitKey(25) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM