[英]using opencv2 write streaming video in python
在我的項目中,我想保存流媒體視頻。
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]])
的第二個參數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))
對於其他一切,您可以使用Ekalic提供的代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.