【发布时间】:2020-11-23 09:35:43
【问题描述】:
import cv2
import numpy as np
import time
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
img = np.zeros((640,480))
center_x = 0
center_y = 256
videoFile1 = 'D:/Python/6. Const_Speed/sample1.mp4'
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('SaveVideo2.avi', fourcc, 20.0, (640, 480))
while True:
img = np.zeros((640, 480))
img = cv2.circle(img, (center_x, center_y), 20, 120, -1)
cv2.imshow('img', img)
out.write(img)
center_x += 3
time.sleep(1/30)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
out.release()
cv2.destroyAllWindows()
我想录制一个圆圈从屏幕左侧匀速移动到右侧的视频。上面的代码运行没有错误,但是结果视频是空的,只有黑屏。
我尝试了什么
- 我发现如果尺寸不同,视频不写。所以我将尺寸匹配为 (640,480)
- 我尝试将编解码器从 XVID 更改为不同的编解码器。最后,我发现 'XVID' 编解码器适用于 .avi 文件,所以我决定保留它。
【问题讨论】:
-
为什么要定义
videoFile1变量? -
@Ahx 我调试的时候改了。原来VideoWriter的第一个变量是videoFile1。
标签: opencv