Nov 20, 2009
For a project, I need to extract all the frames of an AVI video. This I have accomplished by with free program. The problem: it took a 30 second clip and spit back 5400 some frames, and the image only changes every 20 frames or so. I really only need about 270 frames, but I didn't want to go through each one manually. So, I wrote a small program using Visual Studio 2008 and VB to open each image in binary and compare it to the one before that. If there is a discrepancy of more than 55000 (to accommodate slight errors in capturing), it leaves the file be. If not, it deletes it.
View 2 Replies
After much troubleshooting, I got it all to work. I ran it on the directory containing the images, but when it finished, only the first image remained. I checked into it, and found that the FSO loop I have set up to loop through each file was pulling the files in apparently random order. It will give me the image "bg(01).bmp" and then immediately "bg(1362).bmp" and so on. And the order changes every run.
I tried setting up an array to generate a list of all the files and then sort them, so I could pull off the name of the file, then the next one, ect. but it took over 3 hours to finish processing the array, and then It was using a huge chunk of RAM.Is there some way to "force" vb to pull off files in alphabetical order? here is my, code, it belongs with a form. fPath is a global variable, simply pointing to the source directory.