Unicode_literals(来自__future__)不适用于openCV的VideoWriter()中的fourcc编解码器参数

时间:2019-06-19 07:13:39

标签: python opencv video psychopy fourcc

我使用: 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不兼容?

干杯, 嘉莉

0 个答案:

没有答案