Here is how to show a time label when recording a movie playing through a volume series. It uses the perframe command and the 2dlabel command to update a label for each frame. Here is what the recorded movie cell6.mp4 looks like.
First I open 3D light microscopy data with 30 images, set threshold levels, the camera view angle, the lighting and the window size and save a ChimeraX session file “cell6.cxs” in preparation for making the movie. I do this with the ChimeraX menus and panels. But here are commands that do these things
open cell6_1ch*.tif vseries true volume #1 level 130 step 1 volume #1 voxelSize .1,.1,.25 lighting soft set bgcolor white graphics silhouettes true windowsize 800 600 2dlabel create timestamp text "" xpos 0.9 ypos 0.05 save cell6.cxs
I also created a time stamp label with the 2dlabel command in this session that will be used to show the time.
To record the movie I put these commands in a ChimeraX command file cell6.cxc
movie record perframe "2dlabel change timestamp text $1" frames 30 range 0,6 format %.1f vseries play #1 wait 30 movie encode cell6.mp4 framerate 5 quality high
and then open that command script in ChimeraX to run it.
The saved movie file cell6.mp4 will play back at 5 frames per second because of the “framerate 5” option.
The example above puts a time in seconds in the lower right corner, assuming that my 30 microscopy images were acquired in a total of 6 seconds. It shows the time with one digit past the decimal point (the “format %.1f” option). To put an integer frame count I could instead use this perframe command
perframe "2dlabel change timestamp text $1" frames 30
Tom Goddard, October 21, 2022