I have a bunch of pictures taken without an intervalometer that I'd like to assemble into a time lapse video. Is there a method of using the pictures' randomly spaced timestamps to space the frames correctly in time? Preferably using linux.
That sounds relatively easy to do "programmatically" if you wish to just have an equal time space per frame and are happy for an image to repeat until it fills its time allotment. You could do this with most programming languages without treating the images as other than files.
I assume that file date & time represent EXIF data. If not this can be set using eg jhead. Then:
1. Decide what basic time period you want between frames. If you set this to < or << the minimum actual the adjustment will be smoother.
2. Make a date-time ordered file list with file-name and date-time in it.
3. Use a program to calculate time between adjacent frames and thus number of replications required.
4. Copy current frame to duplicate frames using same name followed by eg a numerically ascending count.
eg if you have the following files
Minimum time between here is 1410-1320 = 50 minutes.
Set time step at say 10 minutes
.... DSC09878a 1350
All files which are named the same except for the last digit (a, b, c, ... are identical.
This sounds like a job for AVISynth (or the Linux alternative AVXSynth).
AVISynth is a frame server that accepts scripted input files. It would certainly be possible to write a script in AVISynth that could do this.
Is AVISynth easy to learn? Definitely not, but if you are comfortable with programming it is a very powerful way of piecing together videos from a variety of still images formats and video feeds.
You could use Blender in video clip edit mode.
- Optionally, rename the pictures to indicate second+frame values (this makes later work easier)
- Import all images into the nonlinear editor (one button push actually),
- Place images to the appropriate frame.
- Render Animation (match the framerate you used in calculating the second+frame values for the filenames).
The entire process can be scripted.
You can also use any nonlinear video editor for the same action, but most of them does not have an API for scripting.