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()