使用opencv2在python中编写流式视频
在我的项目中,我想保存流式视频使用opencv2在python中编写流式视频,python,opencv,video-streaming,Python,Opencv,Video Streaming,在我的项目中,我想保存流式视频 import cv2; if __name__ == "__main__": camera = cv2.VideoCapture(0); while True: f,img = camera.read(); cv2.imshow("webcam",img); if (cv2.waitKey (5) != -1): break; ` 使用上述代码,可以
import cv2;
if __name__ == "__main__":
camera = cv2.VideoCapture(0);
while True:
f,img = camera.read();
cv2.imshow("webcam",img);
if (cv2.waitKey (5) != -1):
break;
`
使用上述代码,可以从网络摄像机中传输视频。如何将此流式视频写入文件?您只需将抓取的帧保存到图像中即可:
camera = cv2.VideoCapture(0)
i = 0
while True:
f,img = camera.read()
cv2.imshow("webcam",img)
if (cv2.waitKey(5) != -1):
break
cv2.imwrite('{0:05d}.jpg'.format(i),img)
i += 1
或者像这样的视频:
camera = cv2.VideoCapture(0)
video = cv2.VideoWriter('video.avi', -1, 25, (640, 480));
while True:
f,img = camera.read()
video.write(img)
cv2.imshow("webcam",img)
if (cv2.waitKey(5) != -1):
break
video.release()
创建
VideoWriter
对象时,需要提供几个可以从输入流中提取的参数。可以找到教程。在ubuntu中,使用以下代码从给定图片创建视频
os.system('ffmpeg -f image2 -r 8 -i %05d.bmp -vcodec mpeg4 -y movie3.mp4')
其中,图片名称为00000.bmp、00001.bmp、00002.bmp等。如果您真的想使用电脑提供的编解码器压缩帧
-1
设置cv2.VideoWriter([filename,fourcc,fps,frameSize[,isColor]])
的第二个参数。这将允许您查看pc中使用的编解码器压缩列表fourcc = cv2.cv.CV_FOURCC('I','Y','U','V')
# or
fourcc = cv2.cv.CV_FOURCC('I','4','2','0')
# settting all the information
out = cv2.VideoWriter('output1.avi',fourcc, 20, (640,480))
- 不要忘记cv2.cv前缀
- 介绍正确的框架尺寸
对于其他内容,您可以使用Ekalic提供的代码,其中有一个AttributeError:“cv2.VideoWriter”对象没有属性“release”@mridul您必须首先导入cv2模块。使用
导入cv2
并记住,您可以分别通过camera.get(3)和camera.get(4)获取相机进纸分辨率宽度和高度。