opencv-python获取视频信息

1 安装

pip install opencv-python

2 获取视频属性

以下是opencv-python可以获取视频的相关信息,可以通过从0开始的序号获取

CV_CAP_PROP_POS_MSEC 视频文件的当前位置(以毫秒为单位)或视频捕获时间戳。

CV_CAP_PROP_POS_FRAMES 接下来要解码/捕获的帧的基于0的索引。

CV_CAP_PROP_POS_AVI_RATIO 视频文件的相对位置:0 - 电影的开始,1 - 电影的结尾。

CV_CAP_PROP_FRAME_WIDTH 视频流中帧的宽度。

CV_CAP_PROP_FRAME_HEIGHT 视频流中帧的高度。

CV_CAP_PROP_FPS 帧速率。

CV_CAP_PROP_FOURCC 编解码器的4字符代码。

CV_CAP_PROP_FRAME_COUNT 视频文件中的帧数。

CV_CAP_PROP_FORMAT 返回的Mat对象的格式 retrieve() 。

CV_CAP_PROP_MODE 指示当前捕获模式的特定于后端的值。

CV_CAP_PROP_BRIGHTNESS 图像的亮度(仅适用于相机)。

CV_CAP_PROP_CONTRAST 图像对比度(仅适用于相机)。

CV_CAP_PROP_SATURATION 图像的饱和度(仅适用于相机)。

CV_CAP_PROP_HUE 图像的色调(仅适用于相机)。

CV_CAP_PROP_GAIN 图像的增益(仅适用于相机)。

CV_CAP_PROP_EXPOSURE 曝光(仅适用于相机)。

CV_CAP_PROP_CONVERT_RGB 布尔标志,指示是否应将图像转换为RGB。

CV_CAP_PROP_WHITE_BALANCE_U 白平衡设置的U值(注意:目前仅支持DC1394 v 2.x后端)

CV_CAP_PROP_WHITE_BALANCE_V 白平衡设置的V值(注意:目前仅支持DC1394 v 2.x后端)

CV_CAP_PROP_RECTIFICATION 立体摄像机的整流标志(注意:目前仅支持DC1394 v 2.x后端)

CV_CAP_PROP_ISO_SPEED摄像机 的ISO速度(注意:目前仅支持DC1394 v 2.x后端)

CV_CAP_PROP_BUFFERSIZE 存储在内部缓冲存储器中的帧数(注意:目前仅支持DC1394 v 2.x后端)

代码示例:

cap = cv2.VideoCapture(video_name)    
fps = int(round(cap.get(cv2.CAP_PROP_FPS)))     # 帧率
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))      # 分辨率-宽度
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))    # 分辨率-高度
frame_counter = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))   # 总帧数
cap.release()
cv2.destroyAllWindows()
duration = frame_counter / fps       # 时长,单位s