Hi all,
My experiment involves presentation of videos and collecting continuous rating responses. I am using Psychopy2 (v1.84.2) on a Win 7, 64 bit computer (Processor: Intel Xeon CPU E5-2620 v3, 2.40 GHz, RAM: 16 GB, Graphics Card: GeForce GTX 980).
The videos are all 30 seconds long, re-encoded using the same codec (H.264-MPEG-4 AVC) and without audio, all have the same display resolution (1280x720), and they are around 30-40 MB.
I will show ~60 clips in 4 blocks and I wrote the script in a way that only the videos which will be shown in the current block have been loaded into the memory (using a function).
Even then the videos are stuttering time to time and the viewing experience is not that smooth.
I would like to ask some advice from Psychopy community regarding my call to the MovieStim3 or the way that I display the videos. I am sharing the relevant parts down here and would appreciate any suggestion. I would be willing to share any additional information you might ask, too.
#WINDOW SETTINGS
win = visual.Window(size=(1920, 1080),#size=(800,600),
screen=0, winType='pyglet',
allowGUI=False, # show mouse
fullscr=info['full_screen'],
monitor=moni,
color='grey',
colorSpace='rgb',
units='deg',
useFBO=True
)
#FUNCTION CALL USING MOVIESTIM3
def load_movies(idx_run):
"""Load movies which will be displayed in the current run."""
global nr_movies, movie_orders, video_paths
# initiate list of lists to store moviestim
movies = list()
[movies.append([]) for m in range(nr_movies)]
for j in movie_orders[idx_run]:
print 'Loading movie %i' % j
movies[j] = visual.MovieStim3(win, video_paths[j],
size=(1280, 720),
pos=[0, 0], flipVert=False,
flipHoriz=False, loop=False,
noAudio=True)
return movies
#DISPLAY THE MOVIE IN THE RENDER LOOP
if state_ide[count_s] >= 0:
movies[state_ide[count_s]].draw()
Thanks,
ilkay