Python:以慢动作显示视频

时间:2015-02-23 08:52:54

标签: python video slowmotion

我正在进行一项实验,要求参与者通过按键盘上的相应按钮,尽快响应逐渐出现在屏幕上的数字(不透明度随时间变化)。对于每个呈现的数字,创建视频(例如,0逐渐出现在屏幕上)。在我自己的笔记本电脑上,我设法通过在创建Python窗口时指定bitsMode以慢动作播放这些电影。但是,在我们实验室的实验计算机上(Python版本1.82.00),我收到一条警告,即“bitsMode”已被弃用。

我仍然相对较新的Python,所以我无法找到一种不同的(可能更复杂的)做法。你们有没有人知道以慢动作播放这些视频的方法(例如,速度* 0.75)?

亲切的问候,

Roel van Dooren

event.Mouse(visible = False)
preTrialPause = [0.1, 0.5, 1, 1.5, 2, 2.5, 3]
blocks = 3
trialnum = 0

countDown(3)
win.update()

for block in range(blocks):
    for eachmovie in movies:
        trialPause = choice(preTrialPause)
        sleep(trialPause)

        mov = visual.MovieStim(win, movieFolder + eachmovie['Movie'], 
                                    flipVert=False, flipHoriz=False, loop=False)
        # Clear keyboard buffer.
        event.clearEvents(eventType = None)

        starttime = time()

        while mov.status != visual.FINISHED:
            mov.draw()
            win.flip(clearBuffer = True)
            for key in event.getKeys():
                responseTime = str(time() - starttime).replace(".",",")
                trialPause = str(trialPause).replace(".", ",")

                if key in ['0','1','2','3','4','5','6','7','8','9']:
                    win.update()
                    trialnum+= 1
                    if key == eachmovie['Movie'][3]:
                        response = 'Correct'
                    else:
                        response = 'Incorrect'
                    mov.status = visual.FINISHED

        if trialnum == 10 and block == 0 or trialnum == 10 and block == 1:
            trialnum = 0
            presentText(win, "\n\nVerplaats je nu weer naar de andere computer. We gaan door met het volgende geheugen-geur blok.")
            response = waitText(win, "")
            presentText(win, "\n\nEr zullen opnieuw langzaam cijfers op het scherm verschijnen. Zo gauw je het cijfer waarneemt, moet je zo snel mogelijk op hetzelfde cijfer op het toetsenbord drukken. Gebruik hiervoor alleen de cijfers rechts op het toetsenbord (het numpad). \n\n\nNogmaals, het gaat bij deze taak om snelheid, dus druk zo snel mogelijk het overeenstemmende cijfer in.\n\n\nDruk op enter om te beginnen!")
            countDown(3)
            win.update()
            break

        elif trialnum == 10 and block == 2:
            presentText(win, "\n\nVerplaats je nu weer naar de andere computer.")
            response = waitText(win, "")
            break
core.quit()

0 个答案:

没有答案