I have a lot of footage from a mobile phone that was able to adapt to low illumination by increasing the exposure dynamically. As a result, those videos have no fixed framerate, but each video consist essentially on a collection of frames, each with its own timestamp. The same video might be displaying up to 30 fps when I was pointing the camera to a subject under the sun and suddenly go down to 27.6 or 9 fps because the walking subject went under the shadow of a big tree. So knowing the average framerate of each video is pointless and so it is trying to add a speed modifier strip in the vse to match the video with the audio strip because, well, the framerate is not constant.
The only solution I have found so far is converting the footage to a constant framerate lossless format before importing it into Blender, this way:
ffmpeg -i input.mp4 -vf "fps=30000/1001" -c:v libx264 -crf 0 -a:c copy output.mp4
But I have literally hours and hours of this kind of footage and this solution is very resource-consuming. Is there any simpler solution?
(Please do not mark this as duplicate with "how to import different frame rates" because this is a different issue, and the speed strip won't work here as explained because the framerate is not constant, so you may be able to match the length of the strips but the audio gets out of sync because there are more frames where the illumination was bright and, by stretching the video strip with a speed modificator to match the audio, you merely manage to distribute the frames evenly along the desired length and the timestamps are ignored).