How to invoke a method at particular time asynchronously every day in Mac application?

Massive time lapse project assembly on a Mac?

  • I've been shooting a long series of time lapse images at my job, where we're doing a massive tear down and build. The whole process will be roughly 7 weeks long total, for 8-10 hours a day, 5-7 days a week, one shot per minute for each of two cameras.Up until this point, I've been using iMovie to assemble the initial images in series, spitting video out and then loading it into the GoPro studio app and speeding it up 800-1000% (this will be used in a show and can't be longer than perhaps two minutes). iMovie is a beast and this whole process has become cumbersome and kind of tedious. Initially I was trying to do it as one video, and now I'm down to spitting out a video for each week, which my computer (Mac Mini, 10.10.3, 2.3 ghz i7, 16 gigs ram) can mostly handle. I'm editing out lunch and coffee breaks and really any series of a few frames where there is no change. Even with that, I'm shooting roughly 800 images a day with two GoPro Hero 4s. Each image is roughly 2.5 megs. I've used this method before, but that run was only two weeks long, so I'm already 50% larger than I was, and I still have a month left! Is there a better solution for this? I've done some cursory research and have found little that seems to fit my parameters. Anyone have a solution they love, an application they can recommend (I've even seen some command-line stuff in Terminal, which I'm not afraid of but which I have little experience with), some better way of wrangling all this stuff?

  • Answer:

    https://support.apple.com/kb/DL923?locale=en_US and get a http://www.apple.com/shop/product/D3380Z/A/quicktime-mpeg-2-playback-component-for-windows. Your Mac Mini has a Thunderbolt port, so get an SSD in an external drive to dedicate for this project. (unless you have enough space on the internal, and the internal is an SSD!) GoPros file timelapse photos in sub-folders. Once you are done with some time period that you want to generate a video for, move all of the stills in one folder on the SSD and launch Quicktime Player 7. Open the "File->Open Image Sequence..." menu, and then navigate to and select the first file in the sequence. Quicktime Player will ask you what frame rate you want the resulting Quicktime file to be. You can take this opportunity to timescale things. Choosing 30fps will generate clip twice as long than 60fps, but both have all of the frames in them. (It's just changing the timescale). Quicktime Player will churn for a while, and then you'll end up with a gigantic .mov. I usually save this file as-is, as a self-contained movie. Essentially, it's an MJPEG .mov, containing every single frame from your folder. After the save is complete, then I'll re-save it in a more size and editor friendly codec, sometimes cropping it using the Save-As filters and settings. Once you have the compilation .mov saved, you don't need the JPEGs anymore. Or, you can keep the JPEGs and ditch the interim gigantic file after you export to the format you need for editorial. I followed this exact process to make https://www.youtube.com/watch?v=wZnnJSSE5Ng.

nevercalm at Ask.Metafilter.Com Visit the source

Was this solution helpful to you?

Other answers

I would shrink each image first, assuming you don't need full resolution. It's going to help a lot starting at 10% of the size no matter what workflow you use afterward. I personally would use ImageMagick's convert command-line tool, but there are Automator actions that will do it too, I think, and probably Photoshop actions. After that I'd use ffmpeg but QuickTime, if you feel like paying for it, is a good GUI choice.

supercres

Unfortunately the result will be used for broadcast and might also be projected at a press event, so I need to squeak every pixel out of it I can... ffmpeg is command line, yes? Can I just point it at a gang of stuff and wait a bit? I didn't realize the Quicktime Pro Key was so cheap! Can I specify any framerate I want? When each image is .1 second long in imovie, the resultant movie is still over 12 minutes long, at least, I'd need to make it super fast...the last step right now in the GoPro app is mostly to speed it up to 1000%.

nevercalm

Your choices for framerate are: 60fps 50fps 30fps 29.97fps 25fps 24fps 23.976fps 15fps 12fps 10fps 6fps 2fps 1fps 2spf 3spf 4spf 5spf 10spf Since these are timescales, you should probably conform them to the project frame-rate and do any time remapping in the editing. Even multiples of the frame-rate of your target project will work well, so if you are working with a 30fps project and 30fps timescale for the time-lapse is too darn fast, try 15fps. I would advise against pre-scaling the JPEG images. If you use the full-res GoPro images (depending on the mode) you are in a 4000x3000 canvas, and you can do post zooms and pans within that frame if your target edit is 1920x1080. The other gotcha: you won't be able to play back the full-res .mov that this process generates. The bandwidth is simply too great, unless you are using a Mac Pro. You'll need to transcode to h.264 or ProRes to be able to watch it without stuttering.

tomierna

I realized after posting that you were setting each picture's length to .1 second, which is essentially the 10fps timescale in Quicktime's Image Sequence frame-rate pulldown. 30fps would make it three times shorter (4 minutes), and 60fps would make it six times shorter (2 minutes).

tomierna

By strange coincidence there's an e-mail in my Inbox today from MacUpdate advertising a sale on an app for making time lapse videos. I have no connection with the author(s), have never used the app or even heard of it previously, and do not endorse it, but it looks like it is designed for the sort of task you have; it might be worth a look. It's called "Persecond".

Nerd of the North

I'm doing a 2 camera time lapse of a 4 year project for work (tearing down and rebuilding 4 generators at a hydroelectric dam, one generator per year) and I am using Lightroom to cull the images and create the video. One caveat with Lightroom is that its default frame rate is too slow, but I found a template script that allows me to change the that to whatever I want via a simple change to the text in the script. Not as user friendly as just having it in a menu, but it's not hard either. In my case, I don't want an "exact scale" time lapse. In other words, I am only uses photos that show interesting action: crane lifts, equipment movements, changes to the generator, etc. Using Lightroom for the culling, editing, and the final movie output makes it pretty convenient. Sorry I don't have more details; this is all on my work computer and I'm at home. Lightroom is not as inexpensive as the other suggested options, but if you want more info let me know and I can get you more detail.

The Deej

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.