Mar 2, 2015 - Note to our readers: Adobe Flash Media Live Encoder is NO longer a. MP3 may not work as well as AAC on mobile streaming, especially for.
To begin, I should explain some introductory concepts related to H.264 video.
What is H.264?
H.264 is a video compression standard known as MPEG-4 Part 10, or MPEG-4 AVC (for 'advanced video coding'). It's a joint standard promulgated by the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG).
H.264's audio sidekick is AAC (advanced audio coding), which is designated MPEG-4 Part 3. Both H.264 and AAC are technically MPEG-4 codecs—though it's more accurate to call them by their specific names—and compatible bitstreams should conform to the requirements of Part 14 of the MPEG-4 spec.
According to Part 14, MPEG-4 files containing both audio and video, including those with H.264/AAC, should use the .mp4 extension, while audio-only files should use .m4a and video-only files should use .m4v. Different vendors have adopted a range of extensions that are recognized by their proprietary players, such as Apple with .m4p for files using FairPlay Digital Rights Management and .m4r for iPhone ringtones. (Mobile phones use the .3gp and .3g2 extensions, though I don't discuss producing for mobile phones in this article.)
Like MPEG-2, H.264 uses three types of frames, meaning that each group of pictures (GOP) is comprised of I-, B-, and P-frames, with I-frames like the DCT-based compression used in DV and B- and P-frames referencing redundancies in other frames to increase compression. I'll cover much more on this later in this article.
Like most video coding standards, H.264 actually standardizes only the 'central decoder...such that every decoder conforming to the standard will produce similar output when given an encoded bitstream that conforms to the constraints of the standard,' according to Overview of the H.264/AVC Video Coding Standard published in IEEE Transactions on Circuits and Systems for Video Technology (ITCSVT). Basically, this means that there's no standardized H.264 encoder. In fact, H.264 encoding vendors can utilize a range of different techniques to optimize video quality, so long as the bitstream plays on the target player. This is one of the key reasons that H.264 encoding interfaces vary so significantly among the various tools.
Will there be royalties?
If you stream H.264 encoded video after December 31, 2010, there may be an associated royalty obligation. As yet, however, it's undefined and uncertain. Here's an overview of what's known about royalties to date.
Briefly, H.264 was developed by a group of patent holders now represented by the MPEG Licensing Suthoring, or MPEG-LA for short. According to the Summary of AVC/H.264 License Terms(PDF, 34K) you can download from the MPEG-LA site, there are three classes of video producers subject to a potential royalty obligation.
If you're in the first two classes, and are either distributing via pay-per-view or subscription, you may already owe MPEG-LA royalties. The third group, which is clearly the largest, is for free Internet broadcast. Here, there will be no royalties until December 31, 2010 (source: AVC/H.264 License Agreement). After that, 'the royalty shall be no more than the economic equivalent of royalties payable during the same time for free television.'
According to their website, MPEG-LA must disclose licensing terms at least one year before they become due, or no later than December 31, 2009. Until then, we're unfortunately in the dark as to which uses of H.264 video will incur royalties, and the extent of these charges. For more information on H.264-related royalties, check out my article, The Future's So Bright: H.264 Year in Review, at StreamingMedia.com.
H.264 and Flash Player
As I mentioned, Adobe added H.264 playback support to Adobe Flash Player 9 Update 3 back in 2007. The apparent goal was to support the widest possible variation of files containing H.264 encoded video, and Flash Player should play.mp4, .m4v, .m4a, .mov, and .3gp files, H.264 files using the .flv extension, as well as files using the newer extensions that were released along with Flash Player 9 (see Table 1).
Table 1. File extensions for H.264 files produced for Flash Player playback
File Extension | FTYP | MIME Type | Description |
---|---|---|---|
.f4v | 'F4V ' | video/mp4 | Video for Flash Player |
.f4p | 'F4P ' | video/mp4 | Protected media for Flash Player |
.f4a | 'F4A ' | audio/mp4 | Audio for Flash Player |
.f4b | 'F4B ' | audio/mp4 | Audio book for Flash Player |
I'll describe profiles and levels in the next section. For now, understand that Flash Player supports the Baseline, Main, High, and High 10 H.264 profiles with no levels excluded. Accordingly, when you're producing H.264 video for Flash Player, you're free to choose the most advanced profile supported by the encoding tool, which is typically the High profile. On the audio side, Flash Player can play AAC Main, AAC Low Complexity, and AAC SBR (spectral band replication), which is otherwise known as High-Efficiency-AAC, or HE-AAC.
Producing H.264 video
You have seen that you have nearly complete flexibility regarding profiles and extensions; what else do you need to know before you dig into the details? A couple of things.
First, unlike VP6, which is available only from On2, there are multiple suppliers of H.264 codecs, including MainConcept, whose codec Adobe uses in Adobe Media Encoder and Adobe Flash Media Encoding Server. I've compared the quality of H.264 files produced with H.264 codecs from other vendors, and MainConcept has proven to be the best.
In general, while the overall quality of other codecs has improved, there are some tools to avoid out there. If you're producing with a different tool and not achieving the quality you were hoping for, try encoding with one of the Adobe tools.
Second, some older encoding tools do not offer output directly into F4V format. If F4V format is not offered in your encoding tool, the best alternative is to produce an MPEG-4 compatible streaming media file using the .mp4 extension.
With this as background, I'll describe the most common H.264 encoding parameters.
Get better quality with AAC
AAC is the emerging future audio standard that might replace existing ones, such as MP3. It is already supported by popular devices such as Apple iPod, Sony PSP, Sony PS3, Nintendo Wii, various cell phones etc. Some technical snap-shots:
- AAC and HE-AAC offer a significantly better audio quality while using the same bit rate as other audio codecs, especially for bit rates below 192 kbps.
- AAC may only need a fraction of the bandwidth than MP3 for your field of application (e.g. broadcasting concerts), thus resulting file sizes will be smaller too.
- AAC offers a significantly higher coding as well as compression efficiency and allows you a higher flexibility in usage than MP3.
Most importantly, saving bandwidth and having smaller file sizes means saving money – especially if your business relies on continuous video & audio streaming over scarce resources. Providing better audio quality to your audience and encoding efficiency only add to the advantages of the AAC encoding standard.
AAC was developed to be the successor of MP3. For more technical details on AAC you may refer to comprehensive public documents at Wikipedia.
Adobe Flash Media Live Encoder 3.0 (FMLE) already includes the MainConcept H.264 Encoder technology to create professional video streams. Now using the AAC Encoder Plug-In, it additionally supports AAC (MPEG-4 AAC & HE Audio), enabling you to directly create and stream Flash compliant F4V or FLV files that include both H.264/AVC video and AAC audio. It is the perfect companion for FMLE, as it enables you to generate Flash compliant streams using these encoders on-the-fly. And your files are always compliant with the latest Flash Player version.
Where to get the base application?
You can find more information about Adobe® Flash® Media Live Encoder and download information for the product at the following location: www.adobe.com/products/flash-media-encoder.html
- Fully compliant to ISO/IEC 14496-3 (MPEG-4 AAC) and ISO/IEC 13818-7 (MPEG-2 AAC)
- Encodes PCM audio streams to MPEG-2 / MPEG-4 Low Complexity, HE AAC v1 as SBR, and HE AAC v2 as Parametric Stereo audio streams
- Supports output bit rates from 10 to 320 kbps
- Supports sample rates from 8 to 48 kHz
To use the AAC Encoder, you'll need to make sure that your computer system meets at least these minimum requirements:
Operating systems:
The AAC Encoder plug-in is designed to work on any PC which meets the Adobe Flash Media Live Encoder 2.5 or higher minimum system requirements (Microsoft® Windows® 7, Windows XP Service Pack 2, Windows Vista (Business, Ultimate or Enterprise), and Windows Server 2003 (32-bit Web Edition or higher) required). MainConcept AAC Encoder Plug-In requires Adobe Flash Media Live Encoder 2.5 or higher (not included – click here for getting more information about the product www.adobe.com/go/fme).
The free demo version of the MainConcept AAC Encoder Plug-In for the Flash Media Live Encoder 3.0 comes with an audio limitation of 30 seconds (required by licensor of the AAC standard) – the encoding process for both audio and video will stop after this period of time.
Attention:
Before you start to install the new version of the AAC Encoder, please uninstall the current one. Additionally, make sure that no other MainConcept program is running during de-installation or installation.
Adobe Media Encoder Cs5
The AAC Encoder Plug-In v1.0.6 includes the following fixes and improvement:
- Solves synch problems with streaming from Wowza Server to the Apple iPhone/iPod Touch using Osprey cards.
Adobe Media Flash Encoder 3.2
Try before you buy!
The demo version of AAC Encoder includes the MainConcept AAC Codecs in demo mode that switches to silence after 30seconds of encoding.