我在Macbook Pro上使用OSX 10.9.5,图形卡Intel HD Graphics 4000 1024 MB,使用VLC版本2.0.10 Twoflower(Intel 32位)编程我的实验。我曾经成功地使用movietim高达1.80版本呈现视频(avi和mp4文件,每秒60帧)。通过安装独立版本升级到版本1.81后,我尝试使用moviestim2,修改Moviestim2.py中的代码。当我运行以下代码时:
from psychopy import visual, core
import time, os, pylab
os.chdir('/Users/till/work/edv/psychopy/test/')
win = visual.Window([1440, 900])
win.setRecordFrameIntervals(True)
mov = visual.MovieStim2(win, 'jwpIntro.mov',
size=[800,800],
pos=[0, 100],
flipVert=False,
flipHoriz=False,
loop=False)
shouldflip = mov.play()
while mov.status != visual.FINISHED:
if shouldflip:
win.flip()
else:
time.sleep(0.001)
shouldflip = mov.draw()
intervalsMS = pylab.array(win.frameIntervals[1:])*1000
m=pylab.mean(intervalsMS)
nTotal=len(intervalsMS)
nDropped=sum(intervalsMS>(1.5*m))
print "nTotal", nTotal
print "nDropped", nDropped
core.quit()
视频以全长显示,输出为
nTotal 142
nDropped 2
(警告已删除)。当我使用我的一个视频(文件格式为mov,大小调整为800x800)运行代码时,使用格式为H.264的ffmpeg从852个png文件生成,每秒60帧,以显示用于跟踪任务的移动对象(无音频数据) ),窗口可能在显示第一帧后立即关闭。输出是
nTotal 0
nDropped 0
/Applications/PsychoPy2.app/Contents/Resources/lib/python2.7/numpy/core/_methods.py:55:RuntimeWarning:空切片的平均值。 warnings.warn("空切片的平均值。",RuntimeWarning) /Applications/PsychoPy2.app/Contents/Resources/lib/python2.7/numpy/core/_methods.py:67:RuntimeWarning:double_scalars中遇到无效值 ret = ret.dtype.type(ret / rcount)
(已删除其他警告)文件格式为avi和mp4的测试生成的nTotals为1到2,因此没有运行时警告和相同的结果。
任何帮助都会受到赞赏,因为到目前为止,我无法像以前一样使用movietim返回PsychoPy 1.80,使用avbin 10(窗口冻结,但PsychoPy不会崩溃)作为解决方法。
最佳,
直到
答案 0 :(得分:0)
该问题可能与您的视频没有任何音轨有关。尝试设置' noAudio'创建MovieStim2时,将kwarg设置为True。
visual.MovieStim2(win, 'jwpIntro.mov',
size=[800,800],
pos=[0, 100],
noAudio=True,
flipVert=False,
flipHoriz=False,
loop=False)
MovieStim2应该能够在根本没有音频流的情况下自动检测;所以当有时间时应该改变。 ;)
如果上述方法不起作用,您可以发布一个示例视频的链接,以便下载和调试吗?
更新:我测试了我建议的解决方法,但发现它还发现了一些其他问题。 (Arrrg ..)这些问题现已修复,但这意味着要使此建议生效,您需要在2014年10月23日之前从psychopy github主流更新您的心理包源,或者使用官方包更新,如果一个在此日期之后发布。