I also had problem converting your videos with vlc. It only converted two of your example videos. To test whether your PsychoPy-setup copy the experiment to another computer. Given that your test-experiment ran on two different computers, there is a chance that something is wrong.
Sadly, I’ve tried it on my laptop as opposed to desktop computer and the frame dropping is even worse.
This could be a very naive question, but do you reckon there is any way I could possibly use the coder or a code chunk to prevent PsychoPy from ending the experiment after the _updateFrameTexture Runtime Error (that I get with using opencv)? Instead, if it sees that error I want it to just move onto the next routine?
No worries at all! One other thing I perhaps should have mentioned is that I’m getting this warning every time too:
WARNING User requested fullscreen with size [1280 800], but screen is actually [2560, 1600]. Using actual size
Which is often followed by:
5260.4998 INFO Loaded monitor calibration from [‘2021_07_07 10:58’]
5305.9259 WARNING Monitor specification not found. Creating a temporary one…
5306.1706 INFO Loaded monitor calibration from [‘2021_07_07 10:58’]
Could this be causing the problem? If so, how might I fix it? I have no idea how/why it is requesting a fullscreen with size [1280 800] when my resolution is 2560, 1600, or how to change it?
that is not likely the cause of our problem. PsychoPy comes with a default size of a monitor (1200, 800) which you can check under Edit experiment setting → Screen. If you want to get rid of this warning, create a monitor-description under Monitor settings and calibration.
OK, good news! I seem to have found a solution which gets my videos to play perfectly (but only using opencv rather than moviepy).
Amazingly, all I did was change the dropdown setting of “stop” on my targetVideo component from duration (s) to time (s). Now the videos run absolutely as intended! When I change it back to duration (s) the experiment starts crashing again.
Does anyone know why that might be the case? I’m absolutely puzzled after spending 2-3 days on this!!!
good that you found a solution. Anyway, a word of caution. Image a movie starting at 0 with a duration of 3 seconds. If you set duration to 3, then you might loose some frames because the loading at routine start is not taken into consideration. You could leave duration undefined and check the **Force end of Routine ** to end the routine and register response following your routine.
For anyone joining the bottom of this old thread, I would strongly suggest using the ffpyplayer backend (it is faster to render frames than opencv, which was also faster than moviepy)