我使用: Psychopy版本:1.90.3 Python 2.7
我正在尝试使用cv2的VideoWriter()捕获视频文件。 VideoWriter()函数需要fourcc编解码器作为第二个参数,但是似乎通过“ cv2.VideoWriter_fourcc(*'XVID')”进行的编码与unicode_literals冲突。 如果加载了unicode_literals,则会弹出Fourcc参数的错误消息:
“ TypeError:参数'c1'的预期单个字符串”
这是我要在实验源代码中调用的VideoRecording()函数的代码段。错误涉及定义
fourcc = cv2.VideoWriter_fourcc(*'XVID')
def VideoRecording(video_width,video_height,video_fps,seconds):
cap = cv2.VideoCapture(0)
cap.set(3,video_width) # width
cap.set(4,video_height) #height
cap.set(5,video_fps) # frames per second
# Define the codec and create VideoWriter object
fps = cap.get(5)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
filename = str('output_intrasync_video/' + subject[0] + '_' + str(trial_block) + '_' + str(x) + '.avi')
out = cv2.VideoWriter(filename,fourcc,video_fps, (video_width,video_height))
start = time.time()
zeitdauer=0
while(zeitdauer<seconds):
end=time.time()
zeitdauer=end-start
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,180)
# write the flipped frame
out.write(frame)
#cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
该函数在不加载unicode_literals的情况下工作正常,但是我需要加载unicode_literals才能使其余代码正常工作。
任何人都想为什么fourcc编解码器参数与unicode_literals不兼容?
干杯, 嘉莉