最先呢 运用opencv生成视频的事例坚信互联网上早已许多了。可是大部分事例都仅仅捕捉一个监控摄像头就没有了 。可是在具体应用中会发觉。由于牵涉到图象处理,生成的视频要不就便是过即将不便是比具体时间长。
操纵视频的帧率 ,捕捉监控摄像头和生成图象都可用
关键所在在生成一帧的情况下与下一帧的间距时间 。正中间图象处理会导致延迟所以说会导致视频时间比预期的长
#计算解决时间
sleeptime = time.time() - now
#计算每一帧要延迟的时间
sleeptime = 1 / fps - sleeptime
import time
import datetime
import cv2
#生成一个视频
fps = 30.0 # 视频帧数
size = (289, 419)
baseimgpath = "/root/1.jpg"
save_path = "/root/"
flag = True
fourcc = cv2.VideoWriter_fourcc(*'X264')
file = save_path datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S') ".mp4"
videoWriter = cv2.VideoWriter(file, fourcc, fps, size)
while flag:
now = time.time()
baseimg = cv2.imread(baseimgpath)
#这儿的数据信息根据cdn加速获得
ret = mc.get('info')
rpm = str(ret["carstate"]["RPM"]) "r/min"
speed = str(ret["carstate"]["SPEED"]) "km/h"
COOLANT_TEMP = str(ret["carstate"]["COOLANT_TEMP"])
fuel = str(ret["carstate"]["FUEL"])
ENGINE_LOAD = str(round(ret["carstate"]["ENGINE_LOAD"], 1)) "%"
v = str(12.2) "V"
cv2.putText(baseimg, rpm, (130, 73), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 2, cv2.LINE_AA)
cv2.putText(baseimg, COOLANT_TEMP, (50, 150), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 1, cv2.LINE_AA)
cv2.putText(baseimg, fuel, (180, 150), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 1, cv2.LINE_AA)
cv2.putText(baseimg, ENGINE_LOAD, (50, 270), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 1, cv2.LINE_AA)
cv2.putText(baseimg, v, (180, 270), cv2.FONT_HERSHEY_PLAIN, 1.8, (0, 0, 0), 1, cv2.LINE_AA)
videoWriter.write(baseimg)
#计算解决时间
sleeptime = time.time() - now
#计算每一帧要延迟的时间
sleeptime = 1 / fps - sleeptime
#中止时间
if sleeptime > 0:
time.sleep(sleeptime)
# time.sleep(1 / fps)
videoWriter.release()
cv2.destroyAllWindows()
运用序列多进程解决
针对多视频解决这一巨头讲的早已很详尽了
https://zhuanlan.zhihu.com/p/38136322
疑难问题
生成的视频非常小
这类一般是伺服电机沒有挑选对导致的,看看你电脑上支不兼容该编号,也有一种状况是监控摄像头难题例如。只适用30fps的监控摄像头要輸出60fps的视频或是輸出监控摄像头沒有的屏幕分辨率
#能够那样获得
cap = cv2.VideoCapture(1)
fps = cap.get(cv2.CAP_PROP_FPS)
w = int(cap.get(3))
h = int(cap.get(4))
生成的视频过快或太慢
这一和解决工作能力相关。只要是导致延迟的实际操作便会导致那样的結果 。所以说尽可能操纵帧率 。用cpu占用少的伺服电机 ,减少视频屏幕分辨率这些。
文章来源于网络,如有侵权请联系站长QQ61910465删除本文版权归趣快排SEO www.SeogurUblog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ▶61910465