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).

  • $\begingroup$ Blender has a hard time dealing with variable frame rates, It works best when dealing with footage that has been conformed to a single uniform framerate. If you have hours and hours of footage, save yourself some headaches and use a proper editing app (premiere, Resolve, FinalCutPro, vegas or similar). Blender is mostly a 3D content creation program that has an arcane and primitive video editing tool. $\endgroup$ – user1853 Mar 5 '19 at 21:15
  • $\begingroup$ Sounds like a candidate for my solution with l-smash and avisynth using virtual movie files to feed blender on the fly with proper footage. But it might be a bit difficult to setup although I got it working again on a fresh computer, so basically it could be done. $\endgroup$ – Samoth Mar 5 '19 at 22:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.