在python中调整非定帧摄像头的帧率

news/2024/11/23 5:36:00/

关于在python中调整非定帧摄像头的帧率问题

买了一个可调节帧率的工业摄像头,摄像头在商家给定的软件中可自由改变帧率进行视频保存,但是在python中拍摄视频时却默认以最低帧率拍摄,使用OpenCV中自带的设置帧率的方法将摄像头调整为60fps后,但最终拍摄出来的视频还是以30fps的摄像头拍摄,此时若以60fps的帧率保存的话,就会导致出现录制的视频出现自动加速的现象。经过调试,最终找到了一个方法可以将摄像头录制帧率提高到和保存帧率相同,代码如下所示:

def recording():cap = cv2.VideoCapture(0)# width和height必须和摄像头逐帧捕获的分辨率一致,否则会生成1kb视频文件并且无法播放# 通过frame.shape获取摄像头逐帧分辨率width = 1280  # 定义摄像头获取图像宽度height = 720  # 定义摄像头获取图像长度fps = 60cap.set(6, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))  # 视频流格式cap.set(5, fps)  # 帧率cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)  # 设置宽度cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)  # 设置长度FILENAME = '/home/wcc/Desktop/1.avi'out = cv2.VideoWriter(FILENAME,cv2.VideoWriter_fourcc('M','J','P','G'), fps=fps, frameSize=(width, height))print(cap.get(cv2.CAP_PROP_FPS))while True:# 逐帧捕获ret, frame = cap.read()if not ret:return# 线程结束条件,人工干预out.write(frame)cv2.imshow('frame', frame)if cv2.waitKey(1) == ord('q'):break

由于当初使用的是以MP4格式保存的,使用的是

fourcc = cv2.VideoWriter_fourcc(*'mp4v')

这种视频流格式。
经过观察商家提供的软件的保存格式,发现软件中保存的视频的格式为avi格式,因此,只需要将视频流格式更改为

cv2.VideoWriter_fourcc('M','J','P','G')

这种格式,并将视频保存为avi格式即可,然后帧率即可正常更改,保存的视频的帧率会和拍摄的视频帧率保持一致。
需要注意的是:摄像头帧率和摄像头分辨率有关,一般摄像头都是分辨率越低,帧率越高,具体对应关系要看摄像头说明书。以我的摄像头为例,假设设置的摄像头的分辨率格式为:1080P,设置的帧率格式为60fps,拍摄和保存的视频都是正常的1080P和60fps。现在我把摄像头分辨率调整为640*480,设置的保存帧率和摄像头帧率格式都为60fps,此时再运行代码时,发现此时摄像头的拍摄帧率自动变为了120fps,但是保存的帧率还是60fps,录制出来的视频速度不变,时间延长。


http://www.ppmy.cn/news/785368.html

相关文章

【图像处理】如何获取30FPS的1080P视频流

使用Logitech摄像头进行视频数据采集,发现在OpenCV中只能获取到5FPS的1080P数据。如果设置为30FPS,所获取到的分辨率会自动修改为640*480。原因在于摄像头默认的编码方式。 1.获取当前设备 $ lsusb $ ls /dev/video* 下载luvcview,安装 s…

ISP 图像信号处理器数字IP实现

ZynqMP-ISP Demo基于KV260(ARMFPGA)平台,设计实现了CIS(AR1335接在IAS1口)配置,MIPI接收,ISP处理,DP显示。3MP-RAW1030FPS。Demo软件基于Vitis裸机环境开发,实现简单的2A控制。Linux软件请见ZynqMP-ISP 图像信号处理器…

60帧/秒摄像头 视频帧数最佳选择!

随着网络的普及,作为电脑外设产品的摄像头也迅速进入千家万户。这一重大商机也给摄像头行业的发展带来一片繁荣景象。在这个进入门槛低、公模横行的行业,摄像头产品在外观设计、用户应用范围、新功能技术指标等方面做尽文章,就在摄像头高像素…

Android 计算视频的fps

监控 游戏 fps 调研 adb shell dumpsys gfxinfo 这种方式反回的数据太大,还监控不到游戏的pfs.,是必须是 Android M 版本以上才支持,而且需要拖动屏幕产生的数据才比较准确 dumpsys是一款运行在设备上的Android工具,将 gfxinfo命…

纯视觉30FPS!Focal-PETR:高效多目3D目标检测

点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心【3D目标检测】技术交流群 后台回复【FocalPETR】获取论文!! 1摘要 主要的多摄像机3D检测范式基于显式3D特征构建,这需要通过3…

Sensor setting 用的是30fps ,但最后输出是15fps,是怎么回事儿 ?

1、问题背景: 按项目需求调试 sc5239 这款 sensor,申请的 sensor setting 是30fps,但最后输出帧率却只有 15fps。实际项目调试过程中遇到帧率输出不满帧的情况很多,本文主要总结下 Sensor 驱动部分导致的帧率输出异常的排查过程。…

29.97帧/秒 与 30帧/秒 的区别

英文名称:time code时间码概念时间码(time code)是摄像机在记录图像信号的时候,针对每一幅图像记录的唯一的时间编码。一种应用于流的数字信号。该信号为视频中的每个帧都分配一个数字,用以表示小时、分钟、秒钟和帧数…

BM74-数字字符串转化成IP地址

题目 现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况。 例如: 给出的字符串为"25525522135", 返回["255.255.22.135", "255.255.221.35"]. (顺序没有关系) 数据范围&…