Producing H.264 with the Flash Media Encoding Server
Flash Media Encoding Server
Controls available in Flash Media Encoding Server are much more extensive than Adobe Media Encoder, but you start pretty much the same way: choosing your container format and preset (see Figure 12).
Flash Media Server and Flash Player can both stream or play back any H.264 file in virtually any format, so either the F4V or MP4 container would work. If you want a file that can be played by both QuickTime Player and Flash Player, I would choose MP4; otherwise, use F4V. Choose a preset that uses a resolution equal to or higher than your target to ensure that you use the proper Profile and Level.
Figure 13 shows the H.264-related parameters in Flash Media Encoding Server. On the left are the default values for the preset selected in Figure 12. On the right are the values I would use. Big red asterisks identify recommended changes from the preset values, none of which are very dramatic.
As I discussed earlier, I would extend the GOP size to 300 and use adaptive B-frame placement to provide the encoder with maximum flexibility. Extending the number of reference frames from 2 to 4 potentially increases quality at a slight cost in encoding time and decoding complexity, while disabling fast inter and intra decisions again potentially increases quality, with some increase in encoding time.
Overall, my recommended values should produce optimum quality, though at the outer edge of encoding time. If throughput is critical, I would do the following:
- Use the default value of 2 for reference frames
- Enable all "fast" encoding options
- Use a 16 × 16 Search shape
- Use a Full pixel for Motion estimation subpixel mode
- Enable two or four slices, assuming that you were encoding on a multiple-core system
If you take this route, however, you should compare the output from these parameters with the output using the recommended settings shown in Figure 13 to see if the faster encoding parameters make a noticeable quality difference.
On the audio front, I would use the default values and change only the target bitrate and channels to match my targets. I also use the default values for other H.264 encoding parameters, like Timestamps and Sequence End codes, that Flash Media Encoding Server makes available.
That's it! Go encode some video.