Understanding video formats

Flash Player 9 and later, Adobe AIR 1.0 and later

In addition to the Adobe FLV video format, Flash Player and Adobe AIR support video and audio encoded in H.264 and HE-AAC from within MPEG-4 standard file formats. These formats stream high quality video at lower bit rates. Developers can leverage industry standard tools, including Adobe Premiere Pro and Adobe After Effects, to create and deliver compelling video content.

Type

Format

Container

Video

H.264

MPEG-4: MP4, M4V, F4V, 3GPP

Video

Sorenson Spark

FLV file

Video

ON2 VP6

FLV file

Audio

AAC+ / HE-AAC / AAC v1 / AAC v2

MPEG-4:MP4, M4V, F4V, 3GPP

Audio

Mp3

Mp3

Audio

Nellymoser

FLV file

Audio

Speex

FLV file

Encoding video for mobile devices

AIR on Android can decode a wide range of H.264 videos. However, only a small subset of H.264 videos is suited to have a smooth playback on mobile phones. It is because many mobile phones are constrained for processing power. Adobe Flash Player for mobile can decode H.264 videos using in-built hardware acceleration. This decoding assures better quality at lower power consumption.

H.264 standard supports several encoding techniques. Only high-end devices smoothly play videos with complex profiles and levels. However, a majority of devices can play video encoded in baseline profile. On mobile devices, hardware acceleration is available for a subset of these techniques. The profile and the level parameters define this subset of encoding techniques and settings used by the encoder. For developers, it translates into encoding the video in selected resolution which plays well on most devices.

Though resolutions that benefit from hardware acceleration vary from device to device, but most devices support the following standard resolutions.

Aspect ratio

Recommended resolutions

4:3

640 × 480

512 × 384

480 × 360

16:9

640 × 360

512 x 288

480 × 272

Note: Flash Player supports every level and profile of the H.264 standard. Adhering to these recommendations ensures hardware acceleration and better user experience on most devices. These recommendations are not mandatory.

For a detailed discussion and encoding settings in Adobe Media Encoder CS5, see Recommendations for encoding H.264 video for Flash Player 10.1 on mobile devices.

Note: On iOS, only video encoded with the Sorenson Spark and On2 VP6 codecs can be played back using the Video class. You can play back H.264 encoded video in the device video player by launching the URL to the video using the flash.net.navigateToURL() function. You can also play back H.264 video using the <video> tag in an html page displayed in a StageWebView object.

Flash Player and AIR compatibility with encoded video files

Flash Player 7 supports FLV files that are encoded with the Sorenson™ Spark™ video codec. Flash Player 8 supports FLV files encoded with Sorenson Spark or On2 VP6 encoder in Flash Professional 8. The On2 VP6 video codec supports an alpha channel.

Flash Player 9.0.115.0 and later versions support files derived from the standard MPEG-4 container format. These files include F4V, MP4, M4A, MOV, MP4V, 3GP, and 3G2, if they contain H.264 video or HE-AAC v2 encoded audio, or both. H.264 delivers higher quality video at lower bit rates when compared to the same encoding profile in Sorenson or On2. HE-AAC v2 is an extension of AAC, a standard audio format defined in the MPEG-4 video standard. HE-AAC v2 uses spectral band replication (SBR) and parametric stereo (PS) techniques to increase coding efficiency at low bit rates.

The following table lists the supported codecs. It also shows the corresponding SWF file format and the versions of Flash Player and AIR that are required to play them:

Codec

SWF file format version (earliest supported publish version)

Flash Player and AIR (earliest version required for playback)

Sorenson Spark

6

Flash Player 6, Flash Lite 3

On2 VP6

6

Flash Player 8, Flash Lite 3.

Only Flash Player 8 and later versions support publish and playback of On2 VP6 video.

H.264 (MPEG-4 Part 10)

9

Flash Player 9 Update 3, AIR 1.0

ADPCM

6

Flash Player 6, Flash Lite 3

Mp3

6

Flash Player 6, Flash Lite 3

AAC (MPEG-4 Part 3)

9

Flash Player 9 Update 3, AIR 1.0

Speex (audio)

10

Flash Player 10, AIR 1.5

Nellymoser

6

Flash Player 6

Understanding the Adobe F4V and FLV video file formats

Adobe provides the F4V and FLV video file formats for streaming content to Flash Player and AIR. For a complete description of these video file formats, see www.adobe.com/go/video_file_format.

The F4V video file format

Beginning with Flash Player Update 3 (9.0.115.0) and AIR 1.0, Flash Player and AIR support the Adobe F4V video format, which is based on the ISO MP4 format, Subsets of the format support different features. Flash Player expects a valid F4V file to begin with one of the following top-level boxes:
  • ftyp

    The ftyp box identifies the features that a program must support to play a particular file format.

  • moov

    The moov box is effectively the header of an F4V file. It contains one or more other boxes that in turn contain other boxes that define the structure of the F4V data. An F4V file must contain one and only one moov box.

  • mdat

    An mdat box contains the data payload for the F4V file. An FV file contains only one mdat box. A moov box also must be present in the file because the mdat box cannot be understood on its own.

F4V files support multibyte integers in big-endian byte order, in which the most significant byte occurs first, at the lowest address.

The FLV video file format

The Adobe FLV file format contains encoded audio and video data for delivery by Flash Player. You can use an encoder, such as Adobe Media Encoder or Sorenson™ Squeeze, to convert a QuickTime or Windows Media video file to an FLV file.

Note: You can create FLV files by importing video into Flash and exporting it as an FLV file. You can use the FLV Export plug-in to export FLV files from supported video-editing applications. To load FLV files from a web server, register the filename extension and MIME type with your web server. Check your web server documentation. The MIME type for FLV files is video/x-flv. For more information, see About configuring FLV files for hosting on a server.

For more information on FLV files, see Advanced topics for video files.

External vs embedded video

Using external video files provides certain capabilities that are not available when you use imported video:

  • Longer video clips can be used in your application without slowing down playback. External video files use cached memory, which means that large files are stored in small pieces and accessed dynamically. For this reason, external F4V and FLV files require less memory than embedded video files.

  • An external video file can have a different frame rate than the SWF file in which it plays. For example, you can set the SWF file frame rate to 30 frames per second (fps) and the video frame rate to 21 fps. This setting gives you better control of the video than embedded video, to ensure smooth video playback. It also allows you to play video files at different frame rates without the need to alter existing SWF file content.

  • With external video files, playback of the SWF content is not interrupted while the video file is loading. Imported video files can sometimes interrupt document playback to perform certain functions, such as accessing a CD-ROM drive. Video files can perform functions independently of the SWF content, without interrupting playback.

  • Captioning video content is easier with external FLV files because you can access the video metadata using event handlers.