First, I have almost zero experience in making videos from images.
What I have is a set of BMP timestamped images from which I want to generate a video. Since the timestamps are not equally spaced, I cannot simply use software that create constant-frame-rate videos from images.
A possible solution would be to create artificial images at fixed time intervals, but I prefer to leave that as a last resort if I fail to make a VFR video.
Any suggestions on how to achieve what I want?
You can use a combination of two tools to do this: ffmpeg and mp4fpsmod
Step 1 is to generate a constant frame rate file using ffmpeg
Step 2 is to generate a timecode file like the one below, with each line containing the relative timestamp for a frame in milliseconds.
Step 3 is to use mp4fpsmod to generate the VFR file
This file plays as expected with
ffplay
but may not with some players, in which case runStep 4 Generate a CFR MP4 from the VFR using FFmpeg
This is a CFR file but the temporal relations are preserved as per the VFR, although there will be some PTS adjustments, if the timecode intervals are very irregular. That can be remedied by specifying a high framerate
-r N
Take a look at this link. http://avisynth.nl/index.php/VFR#encoding_to_vfr_.28mkv.29
It might be a little outdated now, as you now do the process of importing the timecode format file from mkvtoolnix (instead of mkvmerge), but it should let you do it.