Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm trying to convert a series of JPEG images into a time lapse video. They're in the format IMGP0001.JPG, IMGP0002.JPG, etc. From the looks of things, this should match the pattern IMGP%04.JPG.

I've tried the following commands (modified from the 2nd entry at this page):

ffmpeg -f image2 -i IMGP%04d.jpg video.mpg

I get the error "IMGP%04d.JPG: No such file or directory".

What am I doing wrong? Perhaps the syntax "IMGP%04d.JPG" is *nix specific? If so what would be the Windows equivalent?

share|improve this question
    
Move images to path with short name (no whitespaces etc.). –  user105748 Nov 17 '11 at 8:00
add comment

2 Answers

up vote 4 down vote accepted

Try putting the filename template in double quotes. Also, if you are running the command in a script you may need to use %% instead of %.

share|improve this answer
    
This was it! It was being called in a batch file, and I needed to escape the % with another. i.e. IMGP%%04d.jpg. –  CadentOrange Oct 10 '11 at 8:20
2  
Another thing to note is that the sequence should start with 1 or else it won't detect properly. You may need to rename your files before processing them. That issue bit me today. See stackoverflow.com/questions/2829113/… –  Jason Navarrete Nov 23 '11 at 16:57
1  
@JasonNavarrete: You can avoid having to rename files by using the -start_number switch... ;) –  Assad Ebrahim Aug 28 '12 at 13:12
    
@AKE, ah well would you look at that. Back in my day, we had no such thing as 'start_number'. We're in the future now... –  Jason Navarrete Aug 30 '12 at 14:48
add comment

Building on Mike's answer above, there are some other useful switches that also work on the Windows solution.

I use the following one liner to get a slower frame rate and to compress the images and have a smaller resulting video:

ffmpeg.exe -f image2 -framerate 25 -pattern_type sequence -start_number 1234 
        -r 3 -i "Imgp%%04d.jpg" -s 720x480 test.avi

The -r 3 option sets the framerate of the resulting video to 3 frames per second so that I can see each still for a short period of time. The -s option rescales the pictures to the desired resolution to manage the size of the resulting video.

Note, contrary to Jason's comment above, it is not necessary to rename files if using the -start_number switch like so:

ffmpeg -f image2 -start_number n -i "IMGP%%04d.jpg" video.mpg 
    -vcodec mpeg4 test.avi

where n is the start of the sequence of stills.

This will work as long as the sequence is unbroken once it starts. If there are gaps and you want all of the stills included, then renumbering may be necessary to fill the gaps.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.