Icon

Cross-Platform After Effects Rendering

Make Your Macs And PCs Work Together (For A Change)

You all remember Mad Libs, that wacky, nutty book game where you filled in words to make the story as humorous as possible, right? I don't think I've even seen a book of Mad Libs since the fifth grade, and at that time it took all of about thirty seconds before my friends and I, for added fun, would forego all semblance of originality and creativity and head straight for the naughty words. Anyway, wouldn't it be nice if we played a quick game of Mad Libs before we moved on to the actual informative portion of this article? Feel free to print this out and actually write in the words. I assume we're all adults here, so please, keep it clean:

Pat is an __________ (motion graphics program made by Adobe that starts with "A" and ends with "s") user. Pat uses this program primarily on his/her __________ (operating system made by either Apple or Microsoft) -based computer. Pat has a whole bunch of other __________ (whichever operating system made by either Apple or Microsoft you didn't use in the last blank) -based computers lying around and is wondering if he/she can also use them for rendering his/her __________ (motion graphics program made by Adobe that starts with "A" and ends with "s") projects.

Gee, wasn't that fun? And we have some good news for Pat: he or she can, in fact, set up a cross-platform render farm for his or her After Effects rendering! Isn't that great?

All right, enough about Pat. Let's worry about setting up our own cross-platform After Effects render farm. I hate to start the festivities out on a potentially sour note, but you'll need a few things to make this a reality:

  1. More than one computer, and for the purposes of this discussion, at least one of the secondary systems should be running a different OS than your primary machine.
  2. Some method of getting these machines to talk to each other (more on this later).
  3. A full licensed version of the After Effects Production Bundle for Macintosh.
  4. A full licensed version of the After Effects Production Bundle for Windows.

If you only have the first three (or even 1, 2, and 4), you're not completely out of luck. In the next section I'm going to go over how to set up an After Effects render farm, which you can use to set up rendering between multiple machines running the same OS. However, if you happen to have all four ingredients mentioned above, then you can go all the way and put those other allegedly "incompatible" computers hanging around the office to work for you.

Setting Up After Effects Multiple-Machine Rendering

Since version 4.1, After Effects has had the ability (in the Production Bundle only, sadly) to set up different machines as nodes to help out with rendering over a network. Now that After Effects has grown up to version 5, I imagine that the concept of distributed rendering is nothing new to a lot of you, so if you're already familiar with setting up render nodes and watch folders please feel free to skip ahead to the cross-platform tips. However, if you need a refresher course (it's all ball bearings nowadays), or you never had a reason until now to set up a render farm, here is the process for setting up multiple-machine rendering:

1) Create a shared folder to use as your watch folder, accessible to each machine you have installed the render engine on, and give it the incredibly imaginative name "Watch_Folder." This folder can either be on any of the machines you plan to use or on a central network server. In Mac OS 9, make sure File Sharing is enabled in the File Sharing control panel, and the folder you plan to share has sharing turned on through the Sharing tab of the Get Info panel (Command-I). On Windows, you need to make sure File and Folder Sharing is enabled. In 9X/ME, right-click on the Network Neighborhood and click Properties to get to the Network control panel, where you'll find the Enable File and Folder Sharing option. In NT/2000/XP, it should already be installed and active; double-check that File and Printer Sharing for Microsoft Networks is checked in the Network control panel. Then you can right-click on the folder you want to share, select Sharing, and give it a name. If you have trouble, give your friendly neighborhood Network Administrator a jingle for the ins and outs of your particular network setup.

2) Using your After Effects 5 Installation CD, install a copy of the render engine on a spare computer. Don't forget your serial number! Even though you have an unlimited license to install as many copies of the render engine as your little heart desires, you have to enter the Production Bundle serial number each time you do it.

3) Mount the shared folder you created in step 1. Provided you have access privileges set up correctly, you should find it in the Chooser in Mac OS 9. In Windows, it should show up in the Network Neighborhood. I would advise that you not map the shared folder to a drive letter in Windows; rather, access it through the Network Neighborhood. In a Windows-only environment, you have to map the watch folder to the same drive letter on each machine to get multiple-machine rendering to work. Going through the Network Neighborhood will work every time, and is absolutely required once you start adding Macs into the mix.

4) Fire up the render engine you just installed. Select Watch Folder under the File menu (fig. 1), and browse to the shared folder, which, if you followed my lead, is cleverly called "Watch_Folder" (fig. 2). You should get a cute little pop-up panel like the one shown in Figure 3. At this point, the "Search will occur in (however many) seconds" countdown should just keep cycling down from ten to zero ad infinitum, as there is nothing in the watch folder for it to render yet.


Figure 1


Figure 2: Browse to which folder you want as your watch folder.


Figure 3: The render engine, ready and waiting.

Repeat steps 2-4 for each machine you plan to use as a render engine.

5) Now, go back to the machine where you have the full version of After Effects installed. Open up the project that you want your newly installed render engines to work on and send it to the Render Queue. You can use whichever Render Settings and Output Module templates you want in a multiple-machine render; however, there are two important things to remember if you want this to work correctly. First, in the Render Queue, make sure you have selected an output module that renders comps as image sequences (Targa, TIFF, PICT, Bitmap, JPEG, etc.) (fig. 4). You have to do this because a) After Effects doesn't even let you render to a single-file format such as QuickTime or AVI using multiple machines and b) even if you could, different machines render individual frames at different speeds, so chances are about 100% that the file would end up with the frames in the wrong order. Second, make sure that Use Storage Overflow is unchecked and Skip Existing Files is checked in the Render Settings panel (fig. 5). Once your settings are where you want them, save your project(s), but do NOT press the Render button as you would for a single-machine render.


Figure 4: Be sure to render to an image sequence instead if a movie file.


Figure 5: Check Skip existing files and uncheck Use storage overflow in the Render Settings panel to enable multiple-machine rendering.

6) At this point you need to move your projects into the watch folder so the render engines can do their thing, so select Collect Files from the File menu (fig. 6). You should see a panel like the one in Figure 7. Most of the settings here are pretty important for this to work properly. First, you can automatically tell if you configured your Render Options and Output Settings correctly in the last step by referencing the text that reads "(however many) single-machine render items; (however many) multiple-machine render items." If any show up as single-machine render items, go back to step 5 and make sure your settings are configured properly for multiple-machine rendering: render as an image sequence, Use Storage Overflow unchecked, Skip Existing Files checked. Once your Collect Files panel shows that all your items are for multiple-machine render, check the Change Render Output box and give your render folder a name. Again, I was very inventive and called this folder "Render." This step creates an output folder with all the collected files that your render engines will be able to write to, instead of having After Effects attempt to render to the default location you specified in the Render Queue. Lastly, check the Enable "Watch Folder" render box and set the Maximum Number of Machines to however many engines you expect to have. Once you've done that, click Collect and browse to your watch folder location, where After Effects will save a new folder with all the projects and their related assets in it. One warning to issue: After Effects doesn't collect any third-party plug-ins you may have used in a project, so you have to make sure that a) a copy of the plug-in exists in the plug-ins directory for each render engine, b) it's within your licensing agreement for each third-party plug-in to install a copy for use with rendering engines and c) whether or not the plug-in will even function correctly in multiple-machine mode. Contact the manufacturer of your particular plug-in for more information.


Figure 6


Figure 7: The Collect Files panel.

That's it! The render engines should now happily be chugging away at the projects you've placed in the watch folder. Run around and watch each of them go! At this point, your host machine is either freed up for other work, or you could use it as a node as well.

Adding Machines From "The Other Side"

Whew! We've cleared the first hurdle. If you've made it this far, you've got computers that are running the same OS rendering their little processors off in peace and harmony. Now it's time to get the real utopian lovefest going by adding machines running a different operating system.

Surprisingly, (or not surprisingly, depending on your point of view), the process for setting up a cross-platform render farm is identical to the process I described above for a single-platform render farm. The big difference is the cross-platform whammies you have to avoid so it will actually work. These fall into two main categories: 1) getting your computers speaking the same language and 2) resolving the differences in path notation.

Getting Your Computers Speaking The Same Language

I'm not about to delve into a full-blown networking discussion; rather, I'm going to quickly discuss a couple of the common ways that the Mac OS and Windows can be tied together for our purposes. Some are free (or at least perhaps already available in your network environment), while others will require shelling out some dough for a third-party solution. There are a couple of categories here, mostly consisting of products that "fool" a Windows network into thinking the Macs present are full-fledged Windows machines. First, there are solutions that reside on a client machine. For example, Thursby's Dave actually adds a NetBIOS control panel to your Mac, permitting native access to a Windows network through the Chooser or the Dave Network Browser. Other products of this type are Connectix DoubleTalk for the Mac and Miramar Systems' PC MacLAN for the PC. These solutions are mostly geared towards networks with a small number of computers on them, as each machine must have a standalone license.

The second category of products are server-based, and are more suited towards environments with a large number of client machines present. Microsoft's Services for Macintosh, present in their NT4 and 2000 line of server software, lets system administrators "Macintize" directories on a central file server, which then show up in the Mac Chooser. Other products, such as Extreme Z IP from Group Logic, let Mac machines participate more fully in the Windows environment, much like Dave does on the client side. In either case, you'll most likely have to cozy up to your Network Administrator to get server-side solutions installed and configured properly (not to mention paid for). This step is largely up to you - getting the Mac OS and Windows talking to each other is not quite the task it was a few years ago, but the solution needs to be the best fit for your particular situation.

Resolving The Differences In Path Notation

Now that your machines are talking to each other, we need to clear the last big hurdle. Differences in how the Mac OS and Windows describe where files are on their respective systems have the potential to be the dealbreaker in getting your cross-platform After Effects render farm up and running properly. But don't fret. Once you know the main pitfall, you'll be able to avoid it in your particular situation. The basic problem is that the Mac OS and Windows use different delimiters (: vs. \) to break up file paths. For example, a path that would appear like this in the Mac OS:

Macintosh HD:Applications (Mac OS 9):Adobe After Effects 5.0:Adobe After Effects

would appear like this in Windows:

C:\Program Files\Adobe\After Effects 5.0\AfterFX.exe

So how do you resolve the two so both operating systems can reliably access the same watch folder? Here's my world-famous three step plan:

1) Use universal addressing on the Windows side. Windows users, most of the time, browse to where they want to go through drives that have been mapped to a particular drive letter (C:\, D:\, etc.). However, there is no quicker way to get your cross platform render farm to fail miserably, as the Macs on your network have no concept of drive mapping. Instead, you must use universal addressing when pointing to your watch folder from the Windows render engine, which will tell it the watch folder is along a path like this: \\Machine\Share\Watch_Folder. So instead of browsing through My Computer when you point to the watch folder, head through the Network Neighborhood. You can get to any network share, as well as shares on the host machine, through the Network Neighborhood, and doing so automatically tells the render engine the correct universal address path to use (fig. 8).


Figure 8: Go through the Network Neighborhood to make sure your Windows render engine addresses paths properly.

2) Avoid path names with spaces. This is a concept that some Mac users may not be used to, but having a space present in any of the names on your path has the potential to cause problems between platforms. Just use an underscore instead of a space if you can.

3) Collect Files from the Mac version of After Effects. I had to figure this one out the hard way. I had two networking methods at my disposal: Services for Macintosh and Dave. What I couldn't figure out initially is why the Mac render engines sometimes couldn't process files I collected from the Windows version of After Effects to the watch folder. Eventually, I got it narrowed down to the fact that when I collected my files from Windows and sent them to a Services for Macintosh share on our NT server, the Macs could load the project file but not the image and movie assets. Using a Dave share, this wasn't a problem, because Dave lets Macs participate on a Windows network using Windows' native NetBios protocol for file sharing. So instead of collecting files from Windows, I collected them from the Mac. The Windows engines had no problem going this way, and I found that using either Services for Macintosh or Dave that it worked every time. So to save yourself some hassles regardless of your network setup, just make a habit of collecting files from the Mac. Don't forget to add the appropriate image type extension to the file name (which the Mac won't do automatically) so the Windows machines can handle writing the file (fig. 9).


Figure 9: Don't forget to add the file type extension when setting things up from the Mac!

Well, that should do it! If everything has gone according to plan, you should now have render engines on both platforms chugging away at the same project (fig. 10), and writing individual files to the same directory (fig. 11). And remember, the initial setup for this is the hard part. Once you do it the first time, it's ready and available whenever you are.


Figure 10: Mac and Windows render engines working on different frames of the same project.


Figure 11: Mac and Windows-rendered files living together in harmony.

Happy rendering! I'm off to the bookstore—I have a strange urge to track down a book of Mad Libs.

^ Top of Page

Got Feedback? to send an email. I'll do my best to answer. Really.