Hi, We are trying to play a series of movies with different fps (e.g. about 24, 25, 30, 60; fps are not exact and have decimal digits, e.g. 29.037) continuously. We are using Psychtoolbox-3 on Linux machine with a Nvidia 1060 card. We are chaining these movies using option 6 followed by option 4 in OpenMovie calls. We would like to play these movies at integer divisible frame rates (like 24, 30 and 60) of our monitor rate which is 120 Hz. Like the 25 Hz movies would be played at 24 Hz. Is there a way we can explicitly specify this playback rate for each movie ? Presently 25 Hz movie seems to be played with a variable frame duration. Any help is greatly appreciated. Thanks, Best, Saumil
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.