Python 视频在动画片Tim3-PsychoPy制作前不久冻结
我有一个2 mp4视频序列,播放了4次(4次试验),每个动画前都会出现一个固定十字,如下面的代码所示。 为了加载、播放和绘制动画,我在@richard制作的[这个演示]之后使用了MovieStim3。我使用了函数。play and。draw来播放和绘制电影 但是,在第3次和第4次试用开始时,动画会在移动前冻结3秒钟。这确实有问题,因为它严重影响了动画对参与者感知的影响。任何建议都会很有帮助。提前感谢:微微一笑:Python 视频在动画片Tim3-PsychoPy制作前不久冻结,python,animation,mp4,psychopy,Python,Animation,Mp4,Psychopy,我有一个2 mp4视频序列,播放了4次(4次试验),每个动画前都会出现一个固定十字,如下面的代码所示。 为了加载、播放和绘制动画,我在@richard制作的[这个演示]之后使用了MovieStim3。我使用了函数。play and。draw来播放和绘制电影 但是,在第3次和第4次试用开始时,动画会在移动前冻结3秒钟。这确实有问题,因为它严重影响了动画对参与者感知的影响。任何建议都会很有帮助。提前感谢:微微一笑: # Load optic flow and random flow movies o
# Load optic flow and random flow movies
optic_flow_movie = visual.MovieStim3(win, 'optic_flow.mp4',loop= False)
random_flow_movie = visual.MovieStim3(win, 'random_flow.mp4',loop= False)
for trialcount in range(nTrials):
# We start the timer for each trial
kb.clock.reset()
# Start with fixation cross
fixation.draw()
win.flip()
core.wait(2)
# Play the video for 200 frames
optic_flow_movie.seek(0)
random_flow_movie.seek(0)
for Nframes in range(200):
if conditions_rand[trialcount] == 1:
optic_flow_movie.play()
optic_flow_movie.draw()
elif conditions_rand[trialcount] == 2:
random_flow_movie.play()
random_flow_movie.draw()
fixation.draw()
win.flip()
这里甚至需要
.play()
吗?i、 e..draw()
就足够了。我不确定这是否会有什么不同,但如果没有函数调用的话,还是值得一试的。@MichaelMacAskill只有在添加了.play()
之后,我才能在整个试验过程中播放所有的动画。当我只使用.draw()
时,它只播放了前两个动画,然后冻结在这里-->()@MichaelMacAskill我很久以前也在心理变态论坛上报道过,但我没有得到答案。我应该使用另一个模块来阅读和播放视频吗?有没有一个模块可以很好地与心理变态进行协作呢?MovieStim3通常是最好的,但你可以试着降到MovieStim2或MovieStim以防万一。更有益的是,尝试不同的电影编码,确保像素尺寸不大于它将被播放的大小(以避免不必要的缩放和内存问题),并考虑如果适用的话丢弃帧速率(例如,如果它是60赫兹,那么在30赫兹时它看起来仍然可以接受。”MichaelMacAskill Thx回答。关于电影编码和像素尺寸,我假设它会对所有在试用期间显示的动画产生影响。然而,前两次试验完美展示,冻结效果从第三次试验开始。此外,如果没有函数play()
,则仅播放前两次试玩。