You can play a movie at a different rate than the original by specifying a different rate in the Screen('PlayMovie', movie, rate, ...) command. E.g., if you want to play a original 25 fps movie at 24 fps, you could choose rate=24/25; instead of 1. Of course if the movie had sound, the sound would play to slow and lower frequency then, so only easy for movies without sound.
If you also do the back-to-back without gap playback of many movies, then the answer is in point 1. of my previous reply here: Specify start and end time during multiple movie playback - #2 by mariokleiner
Ie. Set rate maybe to something higher than 1 so the movie is decoded fast enough, and then use the tWhen time specification in tvbl = Screen('Flip', window, tWhen) to control playback speed via tWhen = tbbl + 1 / fps; with fps being the desired playback fps. Iow. control effective presentation speed of the movie the same you’d control the timing of any other animation.
Btw.: A little advertisement, which doesn’t apply to your NVidia graphics card, as it only works on Linux with recommended AMD gpu’s and with a FreeSync capable display, but the demo VRRFixedRateSwitchingTest.m since PTB 3.0.22.0 might be interesting for related use cases, where one wants to play back movies or animations at “odd” framerates which are not integer divisible frame rates (like 24, 30 and 60) of the monitor rate. It uses VRR under Linux + AMD to quickly adjust the refresh rate of the monitor to a “odd” animation framerate.