Review: Anystream Agility
Agility also offers two levels of web services APIs. One API lets you specify source media or triggers for live submission and choose a Job profile, distribution and notification parameters, in/out points, and playlist options. The expanded API allows you to modify any of the parameters in the Job profile, monitor Jobs, and provide event notifications. I did not test either API.
Preprocessing
Again, you create your Jobs in the Agility Main window. Each new Job starts with two tabs, the File Job tab for selecting the input files and entering metadata, and the Preprocessor tab, where you choose preprocessing options. Preprocessing options are very extensive, including cropping, deinterlacing, color correction, aspect ratio conversion, watermarking, and adding bumpers and trailers. There’s also a simple list box for expanding broadcast colors to web distribution, noise reduction, temporal smoothing, and blur filtering. All options are logically presented via multiple tabs on the left of the Preprocessor tab.
You can preview the effects of your preprocessing options with a Before/After Split slider for moving the preview location of the before and after frame sections. In Figure 2, you can see the Before/After Split indicator right above the golf club, with the section of the frame to the right showing postcolor correction, and the section on the left showing the frame before the effect was applied. It looks like excessive brightness is clipping detail in the grass, so I need to back down the brightness a bit.
Note that you can’t preview the effects of your compression parameters, just the preprocessing ones. To experiment with different codecs, key frame settings, data rates, and other parameters, you’ll have to render your file, analyze offline, then try different parameters.
When encoding one or more source files to multiple targets, Agility applies these preprocessing settings to produce an intermediate file that it uses as the source file for all subsequent encodes. When you have multiple output parameters, like 640x480 for LAN delivery and 320x240 for the web, Agility creates the intermediate file at the highest target parameters of the group, then scales the intermediate file as necessary to produce each target. If you have one source file that you need to produce using different preprocessing parameters—say, a different bumper, trailer, or watermark—you set up multiple Jobs using the required preprocessing parameters for each.
In default mode, Agility creates the intermediate file first and then starts encoding all targets. To streamline this workflow, you can choose either Immediate or Fast Start encoding on a codec-by-codec basis. Immediate starts encoding to the codec targets using the intermediate file as stored in the computer’s RAM, while Fast Start uses the intermediate file sequentially as it’s stored to hard disk.
As I found out during testing, not all types of Jobs can handle Immediate mode; for example, you can’t encode Flash to 2-pass VBR in this mode. Unfortunately, Agility doesn’t tell you this until you actually submit the Job to the rendering engine, which then fails and (if configured to do so) sends you notice of the failure. Obviously, presubmission checking would be a nice feature.
Another irritation is that the system doesn’t use previously created intermediate files for later encodes, which it should if none of the preprocessing parameters have changed. Not only would this be helpful during testing, it would also be a timesaver when Jobs partially failed for other reasons, or when producing multiple Jobs from the same source file.
Finishing the Job
Once you’ve finalized your preprocessing settings, you choose and configure your codecs. Each codec gets its own tab, and I’ll discuss the available parameters for Windows Media, Flash, and H.264 in what follows. Then you assign delivery options, which can include simple file copying over a network, FTP, and email notification. The result is a collection of tabs, which constitutes the Job.
After creating a Job, you can use the Agility user interface to add source files and submit them to the encoder, or assign the Job to a watch folder. Thereafter, once I drop a file into that folder, Agility will apply the preprocessing, encoding, and delivery parameters selected for that Job, all without any additional user intervention.