Recent from talks
Contribute something
Nothing was collected or created yet.
Flash Video
View on Wikipedia
This article needs additional citations for verification. (August 2011) |
| Flash Video | |
|---|---|
| Filename extension |
.flv, .fla, .f4v, .f4a, .f4b, .f4p |
| Internet media type |
video/x-flv, video/mp4, audio/mp4 |
| Developed by | Adobe Systems (originally developed by Macromedia) |
| Initial release | FLV: 10 September 2003 F4V: 3 December 2007 |
| Latest release | 10.1.2.01 August 2010 |
| Type of format | Container format |
| Container for | Audio, video, text, data |
| Extended from | FLV: SWF F4V: MPEG-4 Part 12 |
| Open format? | Yes |
| Free format? | No |
Flash Video is a container file format used to deliver digital video content (e.g., TV shows, movies, etc.) over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There are two different Flash Video file formats: FLV and F4V. The audio and video data within FLV files are encoded in the same way as SWF files. The F4V file format is based on the ISO base media file format, starting with Flash Player 9 update 3.[1][2] Both formats are supported in Adobe Flash Player and developed by Adobe Systems. FLV was originally developed by Macromedia. In the early 2000s, Flash Video was the de facto standard for web-based streaming video (over RTMP). Users include Hulu, VEVO, Yahoo! Video, metacafe, Reuters.com, and many other news providers.
Flash Video FLV files usually contain material encoded with codecs following the Sorenson Spark or VP6 video compression formats. As of 2010[update] public releases of Flash Player (collaboration between Adobe Systems and MainConcept) also support H.264 video and HE-AAC audio.[3] All of these compression formats are restricted by patents. Flash Video is viewable on most operating systems via the Adobe Flash Player and web browser plugin or one of several third-party programs. Apple's iOS devices, along with almost all other mobile devices, do not support the Flash Player plugin and so require other delivery methods such as provided by the Adobe Flash Media Server.[4]
History
[edit]The 2002 release of Flash Player 6 added support for video in the SWF file format. The 2003 release of Flash Player 7 added direct support for the FLV file format. Because of restrictions in the FLV file format, Adobe Systems created new file formats in 2007, based on the ISO base media file format (MPEG-4 Part 12). In this way, the F4V format shares a common base with the MP4 format, which is why F4V is sometimes informally called "Flash MP4". Flash Player does not check the filename extension but instead examines the file to determine the format of the thing created.[5][6]
The new file formats are very different from the older FLV file format. For example, F4V does not support Screen video, Sorenson Spark, VP6 video compression formats and ADPCM, or Nellymoser audio compression formats.[1][6] Authors of Flash Player strongly encourage use of the new standard file format F4V (ISO base media file format) because it overcomes functional limits with the FLV structure when streaming H.264 or AAC, which is one reason Adobe Systems is moving away from the older FLV file structure.[6] Since 2002, the initial format is Flash Video and the file suffix is .flv with a MIME derived Internet media type of video/x-flv.
The Adobe-branded file suffix .f4v was extended from 2007 to support the ISO base media file format using the same MIME derived Internet media type of video/mp4 as the Apple file suffix of .m4v and the general file suffix of .mp4. Adobe-branded file suffixes exist for .f4p which relates to media encrypted with their Adobe Access DRM scheme; .f4a and .f4b relate respectively to .m4a and .m4b with the same MIME derived Internet media type of audio/mp4.
SWF files published for Flash Player 6 and later versions are able to exchange audio, video, and data over RTMP connections with the Adobe Flash Media Server. One way to feed data to Flash Media Server is from files in the FLV file format. Flash Player can play SWF files created for Flash Player 7 and later versions in FLV format directly (MIME type video/x-flv). Flash Player can also play the new F4V file format, beginning with SWF files created for Flash Player 9 Update 3.[1]
| Flash Player version | Released | File format | Video compression formats | Audio compression formats |
|---|---|---|---|---|
| 6 | 2002 | SWF | Sorenson Spark, Screen video | MP3, ADPCM, Nellymoser |
| 7 | 2003 | SWF, FLV | Sorenson Spark, Screen video | MP3, ADPCM, Nellymoser |
| 8 | 2005 | SWF, FLV | On2 VP6, Sorenson Spark, Screen video, Screen video 2 | MP3, ADPCM, Nellymoser |
| 9 | 2007 | SWF, FLV | On2 VP6, Sorenson Spark, Screen video, Screen video 2, H.264[*] | MP3, ADPCM, Nellymoser, AAC |
| SWF, F4V, ISO base media file format | H.264 | AAC, MP3 | ||
| 10 | 2008 | SWF, FLV | On2 VP6, Sorenson Spark, Screen video, Screen video 2, H.264[*] | MP3, ADPCM, Nellymoser, Speex, AAC |
| SWF, F4V, ISO base media file format | H.264 | AAC, MP3 |
- Use of the H.264 compression format in the FLV file format has some limitations so authors of Flash Player strongly encourage use of the new standard F4V file format.[6]
Encoding
[edit]Commonly, Flash Video FLV files contain video bit streams which are a proprietary variant of the H.263 video standard,[10] under the name of Sorenson Spark (FourCC FLV1).[11][12] Sorenson Spark is an older codec for FLV files but it is also a widely available and compatible one, because it was the first video codec supported in Flash Player.[13] It is the required video compression format for Flash Player 6 and 7.[14][15] Flash Player 8 and newer revisions also support the playback of On2 TrueMotion VP6 video bit streams (FourCC VP6F or FLV4). On2 VP6 is the preferred video compression format for use with Flash Player 8 and higher.[7][11] On2 VP6 can provide a higher visual quality than Sorenson Spark, especially when using lower bit rates. On the other hand, it is computationally more complex and therefore will not run as well on certain older system configurations.[14][16]
The Flash Video FLV file format supports two versions of a so-called 'screenshare' (Screen video) codec which is an encoding format designed for screencasts. Both these formats are bitmap tile based, can be lossy by reducing color depths and are compressed using zlib. The second version is only playable in Flash Player 8 and newer. Audio in Flash Video files is usually encoded as MP3. However, audio in Flash Video FLV files recorded from the user's microphone use the proprietary Nellymoser Asao Codec.[8] (Flash Player 10 released in 2008 also supports the open source Speex codec.[17]) FLV files also support uncompressed audio or ADPCM format audio. Recent versions of Flash Player 9 support AAC (HE-AAC/AAC SBR, AAC Main Profile, and AAC-LC). Support for encoding Flash Video files is provided by an encoding tool included with Adobe's Flash Professional and Creative Suite products, On2's Flix encoding tools, Sorenson Squeeze, FFmpeg and other third-party tools.
Media type support
[edit]Supported media types in both the Flash Video and ISO base media file formats:[1]
- Video
- H.264 (added to MP4 and FLV)
- unofficial Google GPL FLV implementations for Android[18]
- MPEG-4 ASP (native to MP4)
- ITU H.263 (native to 3GPP MP4)
- Audio
- MPEG layer 3 (native to Flash Video)
- MPEG AAC (added to Flash Video)
Supported media types in just the Flash Video file format:[1]
- General video
- RGB (supported by same type code SWF uses)
- run-length (supported by same type code SWF uses)
- Sorenson's H.263 (native to Flash Video)
- On2 TrueMotion VP6 with and without alpha channel (added to Flash Video)
- Animated video are the zlib based Screen 1 and 2 (native to SWF).
- General audio are PCM and ADPCM (native to SWF).
- Vocal audio
- Timed text requires ActionScript specific commands for loading captioning, which is only supported by external text files in either JSON or W3C XML formats.
Supported media types in just the ISO base media file format:[1]
- Animated video are QuickTime types for GIF, PNG and JPEG, which replace the Screen 1 and 2 encodings.
- Timed text requires ActionScript specific commands for loading captions embedded as either EIA-608 or QuickTime mac based styled text with the 3GPP derived version that supports Unicode.
FLV converters
[edit]An FLV converter is a type of video conversion software that is used for turning videos from different formats into FLV. Below is a list of popular free video converters which support conversion to FLV.
- SUPER (freeware)
- Free Studio (freeware)
- Freemake Video Converter (freeware)
- Format Factory (freeware)
- HandBrake Video Converter (GPL-licensed free software)
- VLC Video Player (GPL-licensed free software)
- Any Video Converter (freeware and commercial)
- FFmpeg (GPL-licensed free software)
- Easy 7-Zip (7z)-Via Extraction of Audios (MP3) and Videos (no audio)
These programs run under Microsoft Windows. HandBrake, FFmpeg and VLC also run under Mac OS X and Linux.
Flash Video Structure
[edit]Header
[edit]FLV files start with a standard header which is shown below:[19]
| Field | Data Type | Default | Details |
|---|---|---|---|
| Signature | byte[3] | "FLV" | Always "FLV" |
| Version | uint8 | 1 | Only 0x01 is valid |
| Flags | uint8 bitmask | 0x05 | Bitmask: 0x04 is audio, 0x01 is video (so 0x05 is audio+video) |
| Header Size | uint32_be | 9 | Used to skip a newer expanded header |
Packets
[edit]After the header, the file is split into packets called "FLV tags", which have 15-byte packet headers. The first four bytes denote the size of the previous packet/tag (including the header without the first field), and aid in seeking backward.
| Field | Data Type | Default | Details |
|---|---|---|---|
| Size of previous packet | uint32_be | 0 | For first packet set to NULL |
| Packet Type | uint8 | 18 | For first packet set to AMF Metadata |
| Payload Size | uint24_be | varies | Size of packet data only |
| Timestamp Lower | uint24_be | 0 | For first packet set to NULL |
| Timestamp Upper | uint8 | 0 | Extension to create a uint32_be value |
| Stream ID | uint24_be | 0 | For first stream of same type set to NULL |
| Payload Data | freeform | varies | Data as defined by packet type |
The Packet Type byte of a packet/tag header is based on the RTMP message ID byte with the AMF metadata value of 18 (0x12), video payload value of 9 (0x09) and audio payload value of 8 (0x08) being the only valid types used. The third bit indicates the payload is encrypted using the same mechanism as RTMP uses, however this is rarely used due to encrypted transports such as RTMP being used instead. The FLV packet encryption is generally inherited from a MP4 file that is stored on an Adobe Flash Media Server.
- Packet types enumerated as 1 is a RTMP set packet size.
- Packet types enumerated from 3 are RTMP bytes read report, RTMP ping, RTMP server bandwidth, RTMP client bandwidth.
- Packet types enumerated from 8 are Audio payload, Video payload.
- Packet types enumerated from 15 are RTMP flex stream send, RTMP flex shared object, RTMP flex message, AMF metadata, shared object, RTMP invoke.
- Packet type enumerated as 24 is an encapsulated flash video.

Following that, there are three bytes for the Payload Size denoting length of the Payload Data, then four bytes for the Timestamp in milliseconds (with the last byte used to extend the first three bytes), the next 3 bytes for the Stream ID (incremented for multiple streams of the same type), and finally followed by the actual payload data. There is a direct relation between the fields encountered in an FLV Tag and those found in a RTMP packet, as for example the FLV Packet Type field uses the same numeric values as the RTMP Chunk Type field (ex. 0x08 for audio and 0x09 for video). FLV tags are thus converted into RTMP packets when the file is streamed through a Flash Media Server or equivalent RTMP Server.
The first packet encountered is usually a metadata packet which contains information such as:
- "duration" - 64-bit IEEE floating point value in seconds
- "width" and "height" – 64-bit IEEE floating point value in pixels
- "framerate" – 64-bit IEEE floating point value in frames per second
- "keyframes" – an array with the positions of p-frames, needed when random access is sought.
- "|AdditionalHeader" - an array of required stream decoding informational pairs
When streamed using an Actionscript built player, the metadata values above are passed as arguments on the onMetaData callback function. Audio packets have the first byte of the payload defining the decoding details with the first four bits for the encoding used and the last four bits for the parameters required to process the encoding. Video packets have this order reversed.
Video encodings enumerated from 0 are:
| Id | Video encoding |
|---|---|
| 0 | RGB |
| 1 | run-length |
| 2 | Sorenson's H.263 |
| 3 | Screen 1 |
| 4 | On2 TrueMotion VP6 |
| 5 | VP6 with alpha |
| 6 | Screen 2 |
| 7 | MP4 H.264 |
| 8 | ITU H.263 |
| 9 | MPEG-4 ASP. |
Video processing parameters enumerated from 1 are:
| Id | Video processing parameters |
|---|---|
| 1 | key frame |
| 2 | non-key frame |
| 3 | H.263 disposable frame |
| 4 | generated key frame |
| 5 | one byte frame seeking instruction |
MPEG-4 encodings such as H.264, MPEG-4 ASP and AAC add a one byte value with a NULL value indicating that the payload contains MPEG-4 configuration details. MPEG-4 video encodings also add three bytes for composition timestamp offset which is required for encodings that use B-frames.
Audio encodings enumerated from 0 are:
| Id | Audio encoding |
|---|---|
| 0 | native PCM |
| 1 | ADPCM |
| 2 | MPEG layer 3 |
| 3 | PCM - little endian |
| 4 | Asao 16 kHz |
| 5 | Asao 8 kHz |
| 6 | Asao parameter rate |
| 7 | a-law |
| 8 | μ-law |
Audio encodings enumerated from 10 are:
| Id | Audio encoding |
|---|---|
| 10 | MP4 AAC |
| 11 | Speex |
Audio encodings enumerated from 14 are MPEG layer 3 8 kHz, Device specific such as MIDI.
Audio processing parameters with the first two bits for the sampling rate, next bit flags 16-bit sample size on with off indicating 8-bit sample size, and the final bit flags stereophonic channels on with off indicating monaural only. Sampling rates enumerated from 0 are 5.5 kHz, 11.025 kHz quarter, 22.05 kHz half, 44.1 kHz full.
Encrypted packets have an additional 31 or 24 byte header before the AES-CBC encrypted payload as follows:
| Field | Data Type | Default | Details |
|---|---|---|---|
| NumFilters | uint8 | 1 | always only 1 |
| FilterName | C string | "Encryption" | if only selected payloads are encrypted then is "SE" |
| Length | uint24_be | 16 or 17 | initialization vector length |
| EncryptedAU | uint8 bitmask | 0x80 or 0x00 | only if FilterName is "SE", then 0x80 mean encrypted payload |
| IV | uint128 | varies | initialization vector for AES decryption |
| Content | freeform | varies | encrypted payload |
| Padding | freeform | 0x10 | encryption padding |
FLV players
[edit]An FLV player is a type of media player that is used for playing Flash video from PC as well as from Internet websites. An FLV player can be used standalone, without the need of the Adobe Flash authoring or developmental tools. It can also be embedded in the website using Flash component or embeddable version of FLV player.
Adobe Flash Player is a multimedia and application player originally developed by Macromedia and acquired by Adobe Systems. It plays SWF files, which can be created by Adobe Flash Professional, Apache Flex, or a number of other Adobe Systems and 3rd party tools. It has support for a scripting language called ActionScript, which can be used to display Flash Video from an SWF file. Because the Flash Player runs as a browser plug-in, it is possible to embed Flash Video in web pages and view the video within a web browser. Flash Player supported display of Flash Video files since version 6, with the Sorenson Spark and On VP6 video codecs. Support was recently added for H.264 video content as well.
H.264
[edit]Flash Player 9 Update 3, released on 3 December 2007,[20] also includes support for the new Flash Video file format F4V and H.264 video standard (also known as MPEG-4 part 10, or AVC) which is even more computationally demanding, but offers significantly better quality/bitrate ratio.[1] Specifically, Flash Player now supports video compressed in H.264 (MPEG-4 Part 10), audio compressed using AAC (MPEG-4 Part 3), the F4V, MP4 (MPEG-4 Part 14), M4V, M4A, 3GP and MOV multimedia container formats, 3GPP Timed Text specification (MPEG-4 Part 17) which is a standardized subtitle format and partial parsing support for the 'ilst' atom which is the ID3 equivalent iTunes uses to store metadata. MPEG-4 Part 2 video (e.g. created with DivX or Xvid) is not supported.[5] In an interview with BBC News, the main programmer of Flash Jonathan Gay said that the company had wanted to use H.264 when video support was originally added to Flash, but had been deterred by the patent licensing fees of around $5 million (£3.5 million) per year.[21]
Playback
[edit]Flash Player supports two distinct modes of video playback:
- Software Rendered Video : Flash Player supports software rendered video since version 6. Such video supports vector animations displayed above the video content. Such content is typically rendered using software decoding.[22]
- Hardware Accelerated Video : Flash Player supports hardware accelerated video playback since version 10.2, for H.264, F4V, and FLV video formats. Such video is displayed above all Flash content, and takes advantage of video codec chipsets installed on the user's device. Developers must specifically use the "StageVideo" technology within Flash Player in order for hardware decoding to be enabled. Flash Player internally uses technologies such as DirectX Video Acceleration and OpenGL to do so.
Desktop-based
[edit]Microsoft Windows, Mac OS X, Unix-based
- Adobe Media Player (freeware) (no longer published or supported by Adobe)
- Media Player Classic (free software)
- MPlayer (free software)
- RealPlayer (freeware)
- VLC media player (free software)
- Winamp (freeware)
Mac OS devices can play flash videos in QuickTime with the help of additional software (such as the open source Perian component.)
PDA-based and smartphone-based
[edit]Windows Mobile, Palm OS–based
- The Core Pocket Media Player (open source software)
The iPhone and Android devices can play flash videos with the help of additional software (such as the Skyfire web browser application.) Apple iOS has never supported Flash. Android versions above 2.1 through 4.0 supported Flash; Adobe has discontinued Flash Player for Android.[23] On 29 June 2012, Adobe announced that, as they were discontinuing development of the mobile version of Flash, they would prevent the Flash player from installing from the Google Play Store on any Android devices that do not already have the Flash player installed, and that they would not be releasing a version of Flash certified for use with Android version 4.1, codenamed Jelly Bean.[24]
Delivery options
[edit]Flash Video files can be delivered in several different ways:
- As a standalone .FLV file. Although Flash Video files are normally delivered using a Flash player for control, the .FLV file itself is only playable with an FLV player. There are several third party players available.
- Embedded in an SWF file using the Flash authoring tool (supported in Flash Player 6 and later). The entire file must be transferred before playback can begin. Changing the video requires rebuilding the SWF file.
- Progressive download via HTTP (supported in Flash Player 7 and later). This method uses ActionScript to include an externally hosted Flash Video file client-side for playback. Progressive download has several advantages, including buffering, use of generic HTTP servers, and the ability to reuse a single SWF player for multiple Flash Video sources. Flash Player 8 includes support for random access within video files using the partial download functionality of HTTP, sometimes this is referred to as streaming. However, unlike streaming using RTMP, HTTP "streaming" does not support real-time broadcasting. Streaming via HTTP requires a custom player and the injection of specific Flash Video metadata containing the exact starting position in bytes and timecode of each keyframe. Using this specific information, a custom Flash Video player can request any part of the Flash Video file starting at a specified keyframe. For example, Google Video, YouTube, and Bitgravity support progressive downloading and can seek to any part of the video before buffering is complete.
- Streamed via RTMP to the Flash Player using the Flash Media Server (formerly called Flash Communication Server), free C++ RTMP Server,[25] VCS, ElectroServer, Helix Universal Server, Wowza Media Server, Unified Streaming Platform WebORB for .NET, WebORB for Java, erlyvideo (in erlang), or the open source Red5 server. As of April 2008, there are stream recorders available for this protocol, re-encoding screencast software excluded.
- Flash Media Server 4.5 allows Flash video streaming to iPhones and iPads. It achieves this by delivering the content in an MPEG-2 stream using the HTTP Live Streaming format.[26]
Flash video recording
[edit]It is possible to record online flash videos using stream recorders and screen video capture software. The former gives lossless results, while the latter allows recording any video even when anti-leeching measures are used.
See also
[edit]References
[edit]- ^ a b c d e f g h Adobe Systems Incorporated (August 2010). "Adobe Flash Video File Format Specification, Version 10.1" (PDF). Adobe Systems Incorporated. Archived (PDF) from the original on 1 December 2021.
{{cite journal}}: Cite journal requires|journal=(help) - ^ "What is the difference between Flash Video (FLV), F4V and H.264". Google Knol. 7 December 2008. Archived from the original on 13 February 2009. Retrieved 3 August 2009.
- ^ "Flash H.264". MainConcept. Archived from the original on 18 November 2010. Retrieved 24 September 2010.
- ^ Adobe Flash Media Server
- ^ a b Kaourantin.net (20 August 2007). "What just happened to video on the web". Archived from the original on 6 January 2010. Retrieved 12 August 2009.
- ^ a b c d Kaourantin.net (31 October 2007) Tinic Uro New File Extensions and MIME Types Archived 6 July 2010 at the Wayback Machine, Retrieved on 2009-08-03
- ^ a b Adobe Flash CS4 Professional Documentation – Digital video and Flash, Retrieved on 2009-08-09
- ^ a b MultimediaWiki Nelly Moser, Retrieved on 2009-08-11
- ^ Adobe (3 December 2007) List of codecs supported by Adobe Flash Player, Retrieved on 2009-08-10
- ^ Benjamin Larsson (17 March 2009). "h263-svq3 optimizations". FFmpeg-devel (Mailing list). Archived from the original on 17 August 2009. Retrieved 9 August 2009.
- ^ a b "The quest for a new video codec in Flash 8". Kaourantin.net. 13 August 2005. Archived from the original on 6 February 2009. Retrieved 10 August 2009.
- ^ "Sorenson Spark". MultimediaWiki. Retrieved 3 November 2009.
- ^ Sorenson Media Difference Between Flash 6 and Flash 8 video Archived 25 August 2009 at the Wayback Machine, Retrieved on 2009-08-09
- ^ a b Adobe LiveDocs (2005) Flash 8 Documentation – About the On2 VP6 and Sorenson Spark video codecs Archived 11 February 2009 at the Wayback Machine, Retrieved on 2009-08-09
- ^ "Flash CS3 – Comparing the On2 VP6 and Sorenson Spark video codecs". Archived from the original on 14 February 2011. Retrieved 4 February 2011.
To support better quality video at the same data rate, the On2 VP6 codec is noticeably slower to encode and requires more processor power on the client computer to decode and play back. For this reason, carefully consider the lowest common denominator of computer you intend your viewing audience to use when accessing your Flash Video content. If you anticipate a large user base that uses older computers, consider encoding your FLV files using the Sorenson Spark codec.
- ^ Adobe LiveDocs (2005) Flash 8 Documentation – Comparing the On2 VP6 and Sorenson Spark video codecs Archived 2 December 2008 at the Wayback Machine, Retrieved on 2009-08-09
- ^ AskMeFlash.com (10 May 2009) Speex vs Nellymoser Archived 15 April 2009 at the Wayback Machine, Retrieved on 2009-08-12
- ^ "Git.videolan.org Git - ffmpeg.git/Blob - libavformat/Flvdec.c". Archived from the original on 24 March 2017. Retrieved 17 December 2019.
- ^ Open Source Flash (2011) Flash Video (FLV) [online] Available from (link already dead): http://osflash.org/flv#flv_format Archived 23 March 2017 at the Wayback Machine
- ^ "Adobe Flash Player 9 Downloads". Adobe. 3 December 2007. Retrieved 31 January 2008.
- ^ Frewin, Jonathan (18 May 2010). "Flash creator wades into Apple debate". BBC News. Retrieved 1 June 2010.
- ^ Melanson, Mike (27 January 2010). "Solving Different Problems". Penguin.SWF. Retrieved 15 November 2014.
- ^ "An Update on Flash Player and Android". Adobe. Retrieved 31 March 2016.
- ^ Arthur, Charles (29 June 2012). "Flash Player for Android: Adobe calls time, declares it dead". The Guardian. Retrieved 30 June 2012.
- ^ "Rtmpd – Outside of the Box Thinking".
- ^ Apple iPads and iPhones finally get Flash video 9 September 2011. Retrieved 10 September 2011.
External links
[edit]- Flash Developer Center – Flash Video Articles
- Flash Video (FLV) File Format Specification (adobe.com)
- List of codecs supported by Adobe Flash Player versions from 6 to 9 (adobe.com)
- Macromedia Flash FLV Video File Format (Library of Congress)
Flash Video
View on GrokipediaHistory
Development
Video support was first introduced in Flash Player 6, released in 2002 alongside Macromedia Flash MX, allowing developers to embed compressed video directly into SWF files using the Sorenson Spark codec, a variant of H.263 optimized for low-bandwidth streaming.[5][6] This integration resulted from a partnership between Macromedia and Sorenson Media, enabling seamless combination of video with Flash animations for web delivery.[7] In 2003, Flash Player 7 introduced the standalone FLV file format, which supported on-demand video playback outside of embedded SWF files and became the primary container for Flash Video.[1][8] The FLV format initially relied on the Sorenson Spark codec for video compression, facilitating efficient streaming over the internet.[9] Subsequent enhancements focused on improving video quality and codec options. With the release of Flash Player 8 in September 2005, support for the On2 VP6 codec was added, offering better compression efficiency and alpha channel transparency compared to Sorenson Spark, thus enabling higher-quality web video.[10][11] By 2007, Adobe—having acquired Macromedia in 2005—advanced Flash Video further with Flash Player 9 Update 3, which introduced the F4V format.[12] F4V was based on the ISO base media file format (ISO/IEC 14496-12), providing greater interoperability with emerging standards and native support for the H.264 (AVC) video codec and AAC audio codec.[8][13] This update, released in December 2007, marked a significant milestone by aligning Flash Video with high-definition streaming capabilities used in Blu-ray and other platforms.[13]Adoption
Flash Video experienced rapid growth as the dominant web video format in the mid-2000s, supplanting earlier technologies like QuickTime and RealMedia due to its efficient compression and seamless integration with Flash Player. Following the launch of YouTube in February 2005, which utilized the FLV container for video uploads and playback, Flash Video powered the site's explosive popularity by enabling progressive downloads that buffered smoothly in browsers.[14] Other streaming services, including MySpace and MSN Video, quickly adopted FLV, solidifying its role as the de facto standard for delivering user-generated and professional content across the internet. By 2006, major outlets like The New York Times and retailers such as Vodafone were embedding Flash Video, reflecting its broad appeal for high-quality playback without requiring specialized plugins beyond the ubiquitous Flash Player.[14] The format's adoption extended deeply into advertising, e-learning, and interactive media, fueled by Flash Player's near-universal reach, which achieved 97.3% penetration on internet-enabled computers by 2006 and over 95% in browsers by late 2008.[14][15] In online advertising, Flash Video facilitated dynamic rich media campaigns with embedded clips and interactivity, boosting user engagement on high-traffic sites. E-learning platforms leveraged its multimedia capabilities for interactive tutorials combining video narration, animations, and quizzes, transforming static content into engaging educational experiences. Interactive media applications, from web-based games to corporate presentations, benefited from FLV's support for vector graphics and scripting, enabling rich experiences that were consistent across desktops.[16] Expansion to mobile devices marked a key phase in Flash Video's adoption, beginning with Flash Lite for feature phones. In 2006, Nokia preinstalled Flash Lite 1.1 on models like the 8800, 7390, and 6288, and version 2.0 on the 5200 and 5300, allowing users to view simple videos and animations as screensavers or wallpapers on Series 40 platforms.[17] Early Android support arrived with Flash Player 10.1 in June 2010 alongside Android 2.2 (Froyo), enabling full video streaming on compatible smartphones and extending web video to mobile users.[18] Statistical milestones underscored Flash Video's scale: by 2009, FLV had become the standard for progressive downloads, supporting billions of daily video streams, with YouTube alone serving over 1 billion views per day primarily via Flash.[19] This dominance influenced video compression standards, as Flash's integration of the H.264 codec in 2007 accelerated its acceptance for efficient, high-quality streaming, paving the way for its core role in HTML5 video specifications. Prior to HTML5's native video element, Flash Video enhanced web accessibility by democratizing online media playback, though it relied on plugin-based controls that sometimes limited screen reader compatibility.[20]Decline and Obsolescence
The decline of Flash Video began in the early 2010s with the emergence of HTML5, which introduced the native<video> element supporting codecs like H.264, enabling direct video playback in browsers without requiring plugins like Flash Player.[21] This shift addressed Flash's limitations, particularly its lack of native mobile support and dependency on proprietary runtime environments, allowing platforms to deliver video content more efficiently across devices.[22] By 2010, major browsers such as Safari, Chrome, and Firefox had begun implementing HTML5 video capabilities, accelerating the transition away from Flash for web-based streaming.[23]
Adobe's strategic decisions further hastened Flash Video's obsolescence. In November 2011, Adobe announced the end of development for Flash Player on mobile devices, citing the rise of HTML5 and native app ecosystems as more viable alternatives.[24] The company deprecated Flash Player in 2017, committing to end all support by December 31, 2020, after which browsers would block its content starting January 12, 2021.[25] This timeline aligned with industry-wide efforts to phase out the plugin, reflecting its diminishing relevance in modern web architectures.
Security vulnerabilities in Flash Video playback exacerbated its downfall, with numerous exploits targeting the format's parsing mechanisms. Between 2015 and 2019, Adobe issued patches for multiple Common Vulnerabilities and Exposures (CVEs) involving buffer overflows during FLV file handling, such as CVE-2015-8446 (a heap-based buffer overflow) and CVE-2015-5587 (a stack-based buffer overflow), which allowed remote attackers to execute arbitrary code via malicious videos.[26][27] These issues, often stemming from improper validation of user-supplied input in video streams, contributed to Flash's reputation as a high-risk technology, prompting browsers to disable it by default.[28]
In response to these pressures, Adobe initiated transition efforts to mitigate the impact on existing content. The Open Screen Project, launched in 2008, aimed to open Flash's runtime and protocols for broader device compatibility, including royalty-free licensing for mobile implementations, though it ultimately failed to stem the tide of HTML5 adoption.[29] Adobe also provided conversion tools, such as Adobe Media Encoder, to transform FLV files into MP4 format compatible with HTML5, facilitating the migration of legacy video assets.[30]
Today, Flash Video persists primarily in archival and legacy contexts, with platforms like the Internet Archive preserving thousands of FLV-based files for historical access through emulators or converted formats, while modern browsers universally block unsupported Flash content.[31] Its use in active web environments is negligible, confined to isolated enterprise systems requiring custom playback solutions, underscoring its status as an obsolete technology.[32]
File Formats
FLV
The FLV (Flash Video) format is a binary container designed to encapsulate synchronized audio, video, and data streams within a single file, utilizing the .flv file extension. Introduced in 2003 with the release of Adobe Flash Player 7, it enabled direct playback of embedded multimedia content in Flash applications and over the internet via Real-Time Messaging Protocol (RTMP) streaming.[33][34] FLV employs a straightforward tag-based structure, drawing inspiration from chunked formats like RIFF for simplicity in parsing and streaming, consisting of a fixed 9-byte header followed by sequential tags that store media packets with precise timestamps in milliseconds. This design supports efficient seeking through the use of keyframes (marked as FrameType 1 in video tags), allowing players to jump to specific points without decoding the entire file, which was particularly advantageous for progressive downloads in bandwidth-constrained environments of the early 2000s.[8][34] The official MIME type for FLV files is video/x-flv, facilitating web delivery and browser integration. Compared to contemporaries like AVI, FLV often resulted in smaller file sizes due to its integration of efficient codecs and streamlined container overhead, making it suitable for online video distribution.[8][34] Initially, FLV relied on the Sorenson H.263 video codec for compression, which provided basic quality but suffered from artifacts in low-bitrate scenarios; it also supported codecs like Screen Video for screencasts. This was later enhanced with the integration of the On2 VP6 codec in 2005 with Flash Player 8, offering superior visual fidelity, better color reproduction, and support for alpha channels at comparable or lower bitrates, significantly improving its viability for web video.[8][34][35] Despite these advancements, FLV's tag-based design imposed some limitations, such as less optimal handling of complex metadata and advanced features like subtitles or multiple tracks compared to ISO-based standards; while it supports H.264/AVC, this prompted Adobe to transition toward the F4V format in 2007 for broader codec compatibility and future-proofing.[8][33]F4V and Extensions
The F4V file format, with the .f4v extension, was introduced in 2007 alongside Adobe Flash Player 9 Update 3 (version 9.0.115.0), enabling support for advanced video delivery within the Flash ecosystem.[36][37] It serves as an extension of the ISO base media file format specified in ISO/IEC 14496-12, incorporating features like fragmentation for efficient seeking and progressive downloading, which enhance playback flexibility over the web.[37] This standards-based structure was designed to align Flash Video more closely with industry norms, facilitating broader interoperability while maintaining compatibility with Adobe's media servers, including Flash Media Server versions that followed shortly after.[38] F4V introduced several specialized extensions to address specific use cases within Flash Video workflows. The .f4p variant supports protected content through encryption and digital rights management, allowing secure distribution of premium media.[37] The .f4m extension defines manifest files in XML format for adaptive bitrate streaming, enabling dynamic adjustment of video quality based on network conditions via protocols like HTTP Dynamic Streaming.[37] Additionally, the .f4a format focuses on audio-only files, stripping video tracks to optimize for podcasts or background audio delivery.[37] These extensions build on the core F4V container to support diverse applications, from live events to on-demand content. A key advantage of F4V lies in its native integration of H.264/AVC video and HE-AAC audio codecs, which deliver higher compression efficiency and visual quality compared to earlier Flash formats, while enabling playback in non-Flash environments.[36][37] This codec support, combined with the ISO foundation, improves compatibility with players like QuickTime, positioning F4V as an attempt to future-proof Flash content amid rising adoption of web standards.[12] The format uses MIME types such as video/mp4 or video/x-f4v, aligning it with broader MP4 ecosystems for easier web serving and device support.[39] Regarding compatibility, F4V files are playable in Flash Player 9 and later versions without modification, ensuring seamless integration into existing Flash applications.[37] They can also be generated by converting from the older FLV format using Adobe tools, preserving legacy content while upgrading to the more robust structure—though FLV remains the simpler, proprietary baseline for basic streaming.[37] This backward compatibility facilitated a gradual transition for developers during the late 2000s.Technical Structure
File Header
The file header in Flash Video formats serves as the initial segment that identifies the file type and provides essential metadata for playback initialization. For the FLV container, the header is a fixed 9-byte structure that precedes the sequence of data tags containing the actual media streams. This compact design allows media players to rapidly detect the format and determine the presence of audio and video components without parsing the entire file.[37] The header's byte-level composition is as follows:| Byte Position | Description | Details |
|---|---|---|
| 0-2 | Signature | Three unsigned 8-bit integers (UI8) forming the ASCII characters 'F' (0x46), 'L' (0x4C), and 'V' (0x56), uniquely identifying the file as FLV.[37] |
| 3 | Version | One UI8 byte, typically set to 0x01 for FLV version 1.x, indicating the format revision supported by Adobe Flash Player.[37] |
| 4 | Flags | One UI8 byte structured as bit flags in big-endian order: bits 7-3 reserved (must be 00000), bit 2 for audio presence (1 if audio tags are included), bit 1 reserved (must be 0), and bit 0 for video presence (1 if video tags are included). These flags enable the player to allocate resources for the respective streams.[37] |
| 5-8 | Data Offset | One unsigned 32-bit integer (UI32) in little-endian byte order, usually set to 9 (0x00000009), specifying the byte position from the file start to the first data tag. This offset accounts for the header length and supports potential future expansions.[37] |
Data Packets
Following the file header, Flash Video files, particularly in the FLV format, organize media data into a sequence of tags, each beginning with an 11-byte header that includes a tag type (UI8: 8 for audio, 9 for video, 18 for script data), data size (UI24 indicating the length of the subsequent data field), timestamp (UI24 in milliseconds plus UI8 for the upper 8 bits, forming a 32-bit value relative to the first tag), and stream ID (UI24, typically 0 for the main stream), followed by the variable-length data payload specific to the tag type.[8] Audio tags encapsulate audio frames with a 1-byte header describing the format (UB[40]: e.g., 2 for MP3, 10 for AAC), sampling rate (UB[41]: 0=5.5 kHz, 1=11 kHz, 2=22 kHz, 3=44 kHz), sample size (UB[42]: 0=8-bit, 1=16-bit), and channel type (UB[42]: 0=mono, 1=stereo), after which the payload consists of raw codec-specific audio data, such as MP3 frames or AAC packets (for AAC, an additional UI8 packet type distinguishes sequence headers from raw data).[8] Video tags begin with a 1-byte header specifying the frame type (UB[40]: 1 for keyframe, 2 for inter frame, 3 for disposable inter frame, 4 for generated keyframe, 5 for command frame) and codec ID (UB[40]: e.g., 2 for Sorenson H.263, 4 for On2 VP6, 7 for H.264/AVC), followed by codec-specific video data; for H.264 (AVC), the payload includes an additional UI8 packet type (0 for sequence header, 1 for NALU, 2 for end of sequence) and a SI24 composition time offset in milliseconds (0 for headers, variable for NALUs to adjust display timing).[8] Script tags contain AMF (Action Message Format)-encoded objects, typically metadata such as duration, framerate, and filesize, structured as an array of script data objects, with each object terminated by the three-byte end marker 0x00 0x00 0x09, which players use to retrieve essential file information without decoding media streams.[8] The seeking mechanism in Flash Video relies on the timestamps embedded in each tag header, measured in milliseconds, enabling non-linear access by scanning for keyframes (frame type 1 in video tags) at desired time positions to initiate playback from arbitrary points in the file.[8]Encoding and Codecs
Supported Media Types
Flash Video formats, including FLV and F4V, natively support a range of video and audio codecs designed for efficient web delivery and playback within Adobe Flash Player. These codecs enable compression suitable for streaming and progressive download, with video primarily using older proprietary formats in FLV and modern standards in F4V.[37]Video Codecs
The supported video codecs are identified by specific numeric IDs in the file header and tag structures. Key codecs include:| Codec ID | Name | Description |
|---|---|---|
| 2 | Sorenson H.263 (Spark) | A proprietary codec developed by Sorenson Media, optimized for low-bitrate video suitable for early web streaming.[37] |
| 4 | On2 VP6 | An intra-frame video codec from On2 Technologies, providing improved compression over H.263 for standard web video.[37] |
| 5 | On2 VP6A | Variant of VP6 with alpha channel support for transparency in video overlays.[37] |
| 7 | H.264/AVC | Advanced Video Coding standard, using Network Abstraction Layer Units (NALU) prefixed format; supports Baseline, Main, and High profiles for high-quality playback.[37][43] |
Audio Codecs
Audio codecs in Flash Video are similarly tagged with IDs, focusing on compact formats for voice and music:| Codec ID | Name | Description |
|---|---|---|
| 2 | MP3 | MPEG-1 Audio Layer 3, widely used for stereo music at variable bitrates.[37] |
| 5 | Nellymoser 8 kHz Mono | Proprietary low-bitrate codec for voice, at 8 kHz sampling.[37] |
| 6 | Nellymoser | General Nellymoser codec, supporting up to 44.1 kHz for higher quality voice.[37] |
| 10 | AAC | Advanced Audio Coding, supporting Low Complexity (LC) and High Efficiency (HE) profiles for efficient stereo audio.[37] |
| 11 | Speex | Open-source codec optimized for voice at 16 kHz mono, introduced in Flash Player 10.[37] |
Conversion Tools
Adobe Flash Media Live Encoder, a standalone tool for encoding video into Flash Video formats like FLV, had support discontinued by Adobe in 2016.[45] Adobe Media Encoder, part of the Creative Cloud suite, previously supported exporting to FLV and F4V formats but removed this capability starting with the CC 2014 release to prioritize modern standards like H.264 in MP4 containers.[46] Open-source tools provide robust alternatives for converting media to and from Flash Video. FFmpeg, a widely used command-line multimedia framework, enables conversion to FLV by remuxing streams without re-encoding, as in the commandffmpeg -i input.mp4 -c copy output.flv, which copies H.264 video and compatible audio directly into the FLV container while preserving quality.[47] This approach supports the codecs compatible with Flash Video, such as H.264 for video and AAC for audio.
Specialized utilities like FLV Extract allow users to isolate and remux video, audio, and metadata tags from FLV files without decompression or recompression, facilitating conversions to formats like MP4 or MKV for further processing.[48] Online services, such as Zamzar, offer batch conversion of FLV files to other formats or vice versa through a web interface, handling uploads up to 50MB per file without requiring software installation.[49]
Conversion processes often involve remuxing H.264-encoded video into FLV containers to avoid quality loss from re-encoding, using flags like -c copy in FFmpeg to stream-copy the elementary streams.[50] However, pitfalls such as timestamp mismatches can arise during remuxing, particularly if source files have irregular packet ordering or backward timestamps, leading to playback errors like desynchronized audio-video or abrupt cuts in the output FLV.[51] These issues may require manual correction, such as using FFmpeg's -fflags +genpts flag to generate presentation timestamps or repairing the source file beforehand.[52]
In the post-Flash era, following Adobe's end-of-life for Flash Player in 2020, converting legacy FLV files to MP4 has become essential for HTML5 compatibility in web browsers, achievable via FFmpeg with ffmpeg -i input.flv -c copy output.mp4 to retain original quality without transcoding.[53] Tools like Zamzar also support this one-way migration, enabling seamless integration of archived Flash content into modern platforms.[54]
Playback
Player Software
Adobe Flash Player served as the primary software for rendering Flash Video files, supporting FLV playback starting with version 7 and F4V with version 9 Update 3 (9.0.115.0).[8] It was available as a cross-platform plugin for Windows, macOS, and Linux operating systems until its end-of-life in 2020.[55] The player integrated directly into web browsers via NPAPI and PPAPI plugins, which were deprecated by major browsers between 2015 and 2017, with full blocking of Flash content occurring in January 2021.[25] Standalone players provided alternatives for offline playback of Flash Video files. VLC Media Player offers native support for FLV and F4V formats without requiring additional plugins, enabling seamless rendering on desktop environments.[56] JW Player, originally a web-focused Flash-based solution, historically supported Flash Video but transitioned to HTML5 in version 8, dropping direct FLV compatibility.[57] Legacy standalone tools, such as Applian FLV Player and FLV-Media-Player, were designed specifically for FLV files, offering lightweight playback options independent of browsers.[58][59] Key features of Flash Player for video playback included full-screen mode, invocable via ActionScript to expand content across the entire screen while displaying user warnings for exit options. Subtitle overlays could be implemented through ActionScript, allowing dynamic loading and synchronization of caption data, often from external XML or SRT files, to enhance accessibility.[60] Digital rights management was handled via Flash Access, Adobe's proprietary DRM system that protected content through license verification and playback restrictions.[61] Following the end-of-life announcement, Adobe provided an official uninstaller to remove Flash Player from systems, urging users to delete remnants for security reasons, with automated prompts appearing post-2020.[25] Migration guides recommended shifting to open standards like HTML5 video, with tools such as Adobe Express offered as alternatives for content creation and playback.[25] For legacy Flash content, including embedded videos, open-source emulators like Ruffle—a Rust-based Flash Player reimplementation—enable compatibility with most older Flash content in modern browsers via WebAssembly as of November 2025, though direct FLV file support remains limited to emulated SWF contexts.[62] Another emulator, Lightspark, provides ongoing support for around 88% of Flash APIs in its alpha stage, allowing playback of some SWF-based video content.[63]Platform Support
Flash Video enjoyed widespread playback support on desktop operating systems through major web browsers, including Internet Explorer, Firefox, Chrome, and Safari, across Windows, macOS, and Linux platforms, until Adobe's official end-of-support on December 31, 2020, after which content was blocked starting January 12, 2021.[25] This compatibility relied on the Adobe Flash Player plugin, which handled FLV and F4V files natively in browsers. Hardware acceleration for smoother video decoding and rendering was introduced in Flash Player 10.1, released in 2010, enabling GPU-accelerated playback on compatible graphics hardware to reduce CPU load during video reproduction.[64] On mobile devices and PDAs, Flash Video playback was facilitated by Adobe Flash Lite 2.x, a lightweight runtime released in 2006 that supported Symbian OS and Java-enabled phones, allowing limited video playback on devices like Nokia's S60 series until around 2012 as mobile ecosystems shifted.[65] Android devices received brief native support via Flash Player starting in 2010, enabling full browser-based Flash Video playback on versions up to 4.0, but Adobe discontinued updates and distribution through Google Play in August 2012, citing performance and battery life concerns.[66] Among smartphones, iOS devices never supported Flash Video due to ongoing disputes between Apple and Adobe, culminating in Steve Jobs' 2010 open letter criticizing Flash's resource demands and security issues, which led Apple to exclude it from iPhone OS (later iOS) entirely.[67] BlackBerry offered partial compatibility, with Flash Player 10.1 integrated into the PlayBook tablet in 2010 for video playback, though support on BlackBerry OS phones was limited and eventually phased out without full browser integration.[68] Similarly, Windows Phone 7 received Flash Player 10.1 support in 2010 for basic video handling in Internet Explorer Mobile, but Adobe withdrew commitment for Windows Phone 7.5 (Mango) and later versions, restricting playback to app-based implementations rather than native browser support.[69] In the post-Flash era, modern alternatives for Flash Video playback include browser emulation projects like Mozilla's Shumway, an open-source HTML5-based runtime for SWF files that aimed to replace Flash Player but was abandoned in 2016 due to incomplete feature parity and maintenance challenges.[70] Legacy app wrappers, such as standalone older browser installations bundled with archived Flash Player versions, allow continued playback of FLV files on modern desktops by isolating the runtime in virtualized environments.[71] Flash Video incorporated accessibility features through ActionScript, enabling keyboard navigation for controls like play, pause, and seek via tab-order management and key event handling, which supported users relying on keyboard-only input.[72] Screen reader integration was achieved using the AccessibilityProperties class in ActionScript 3.0, which exposed video descriptions, captions, and timelines to assistive technologies like JAWS or NVDA for audio narration of visual content.[73]H.264 Integration
H.264, also known as Advanced Video Coding (AVC), was integrated into Flash Video with the release of Flash Player 9 Update 3 in December 2007, marking a significant advancement in video compression efficiency for the platform. This support was introduced through the F4V file format, an extension of the ISO Base Media File Format (ISOBMFF) that superseded the older FLV container for H.264 content. Flash Player supported the Baseline, Main, High, and High 10 profiles of H.264, along with various levels such as 3.1 and 4.0 to accommodate different resolutions and bitrates, enabling broader compatibility for streaming applications.[13] In the Flash Video container, H.264 video data is packetized within video tags of type 9, identified by codec ID 7 for AVC. These tags include an AVCVideopacket structure that begins with an AVCPacketType field: a value of 0 indicates the AVC sequence header, which contains the AVCDecoderConfigurationRecord with essential configuration data such as profile, level, and Sequence Parameter Set (SPS) and Picture Parameter Set (PPS) NAL units; a value of 1 signifies AVC NALU units for keyframe or interframe data; and a value of 2 denotes the end of the sequence. This packetization allows seamless encapsulation of H.264's Network Abstraction Layer Units (NALUs) within the RTMP protocol for streaming or in F4V/FLV files for progressive download, ensuring synchronization with audio streams.[8] The integration of H.264 offered substantial bitrate savings over the prior VP6 codec, typically 15-30% for equivalent quality, which facilitated high-definition (HD) video streaming at manageable bandwidths without excessive CPU demands.[74] Hardware-accelerated decoding for H.264 was further enhanced starting with Flash Player 10.2 in November 2010, via the Stage Video API, which offloads decoding, scaling, and compositing to the GPU on supported platforms like Windows, macOS, and Linux, reducing CPU usage to under 1% for full-screen HD playback.[75] Compatibility requires explicit use of the Stage Video API for acceleration; in older Flash Player versions or on unsupported hardware, playback falls back to software decoding, potentially increasing resource consumption. To address patent concerns, Adobe secured licensing through the MPEG LA patent pool for H.264 implementation in Flash Player and related tools, incorporating required notices in end-user license agreements to ensure users could deploy H.264-encoded content without additional royalty obligations for non-commercial streaming. This arrangement streamlined adoption by handling the complex licensing landscape of the AVC standard, which involves over 1,000 essential patents.[76]Delivery Methods
Progressive Download
Progressive download is a method for delivering Flash Video files, such as those in .flv or .f4v formats, over the internet using standard HTTP requests from a web server.[77] The process begins with an initial HTTP GET request to fetch the file sequentially, allowing the client to start receiving and processing data without waiting for the entire file to download.[78] For seeking functionality, the player issues byte-range requests specified in the HTTP Range header, prompting the server to respond with status code 206 Partial Content, which delivers only the requested portions of the file.[79] In the Flash Player, the NetStream class handles the loading and playback of these files, buffering initial data packets—including key metadata tags like file header and video keyframes—to enable playback to begin shortly after the download starts.[80] This partial downloading permits users to view content progressively as it arrives, with seeking limited to already-buffered sections until additional ranges are fetched.[77] The file's tag structure supports efficient navigation during these partial loads by providing timestamps and positions for quick jumps.[37] This delivery approach offers significant advantages in simplicity, as it requires no specialized streaming server or additional setup beyond a standard HTTP web server, making it accessible for widespread deployment.[78] It was extensively utilized by platforms like YouTube for video distribution prior to 2009, where uploaded content was automatically encoded to FLV format for progressive serving.[78] However, progressive download necessitates downloading the complete file to finish playback, which can be inefficient for longer videos or scenarios requiring live updates or adaptive bitrate adjustments based on network conditions.[77] Implementation typically involves the ActionScript NetStream class within a Flash application, which connects via a NetConnection to load the video URL and provides methods for play, pause, seek, and buffer management to control the progressive flow.[80] Developers can integrate this with components like FLVPlayback for user interface elements, ensuring compatibility with HTTP progressive delivery while keeping the SWF file lightweight.[77]Streaming
Flash Video streaming primarily relies on the Real-Time Messaging Protocol (RTMP), an application-layer protocol developed by Adobe for low-latency delivery of audio, video, and data over TCP connections between a media server and Flash Player clients.[81] RTMP enables real-time transport by breaking content into chunks and multiplexing streams, supporting both live and on-demand playback with minimal buffering for interactive applications.[82] RTMP variants enhance security and compatibility in restricted network environments. RTMPE provides real-time encryption to protect streams from unauthorized capture, integrating with SWF verification for added content security on Flash Media Server.[83] RTMPT tunnels RTMP packets over HTTP, allowing streams to bypass firewalls that block non-HTTP traffic by using standard port 80 or 443.[84] Adaptive bitrate streaming over RTMP is facilitated through SMIL (Synchronized Multimedia Integration Language) manifests, which define multiple bitrate variants of the same content for dynamic switching based on client bandwidth without interrupting playback.[85] In 2009, Adobe introduced HTTP Dynamic Streaming (HDS) as an alternative for delivering Flash Video over standard HTTP, specifically optimized for the F4V container format.[86] HDS supports adaptive bitrate by segmenting video into small fragments (typically 4-10 seconds) and using .f4m (Flash Media Manifest) playlists to describe available bitrates, durations, and URLs, enabling seamless quality adjustments during playback.[87] Server-side implementation for Flash Video streaming requires dedicated media servers such as the discontinued Adobe Media Server, which was available as a scalable option on Amazon Web Services (AWS) Marketplace until its end of support in 2018 for handling RTMP and HTTP-based protocols.[88][45] Open-source alternatives like Red5 provide compatible functionality, supporting RTMP ingestion and distribution as a community-driven replacement for Adobe's proprietary server.[89] Common use cases for Flash Video streaming include live events, such as broadcasts and webinars, where low-latency RTMP ensures real-time audience engagement, and video-on-demand (VOD) services, where adaptive streaming maintains consistent quality across varying connections.[90] Embedded cue points in FLV or F4V files facilitate synchronization, allowing applications to trigger metadata events, chapters, or interactive elements precisely at designated timeline positions during playback.[91] H.264 encoding is often used within these streams to balance compression efficiency and visual quality.[92] These delivery methods are now legacy due to the discontinuation of Adobe Flash Player on December 31, 2020.[25]Creation and Recording
Authoring Tools
Adobe Animate, formerly known as Flash Professional, serves as a primary authoring tool for integrating Flash Video into interactive animations and applications. It allows users to import video assets in FLV or F4V formats directly into a project timeline, enabling synchronization with graphics, audio, and interactive elements created using ActionScript.[2] For encoding source media to these formats, Adobe Premiere Pro, in conjunction with Adobe Media Encoder, provided robust capabilities in versions up to CS6 (2012) to compress and prepare videos, supporting H.264 for F4V and VP6 or Sorenson Spark for FLV, while preserving quality for web delivery.[93] Current versions of Adobe Media Encoder (as of 2024) no longer support FLV or F4V export.[94] The typical workflow begins with importing video files via the Video Import panel in Adobe Animate, which guides users through options for progressive download, streaming, or embedding the video within a SWF file. Assets such as video clips, images, and scripts are layered on the timeline, where effects like transitions, masking, or interactivity can be applied using ActionScript to respond to user events. Exporting involves generating an FLV or F4V file with embedded cue points—timed markers for navigation or triggers—and metadata for searchability or player controls, often finalized through Adobe Media Encoder for optimized bitrate and compatibility.[77] Open-source alternatives include AviDemux, a lightweight editor suitable for basic cutting, filtering, and re-encoding of FLV files without advanced timeline features. For more complex muxing and format conversion, FFmpeg is widely used to assemble FLV or F4V containers from source media, supporting command-line control over video and audio streams to produce files compatible with legacy Flash playback.[95][96] Key features across these tools encompass keyframe insertion for precise animation timing around video segments, bitrate control to balance file size and quality during encoding, and seamless integration with SWF files for embedding videos in interactive content. In Adobe Animate, keyframes define changes in video playback states, such as pauses or loops, while FFmpeg allows granular bitrate specification via parameters like-b:v for video.[97][98]
Following the end of Adobe Flash Player support in December 2020, authoring tools have shifted toward HTML5-compatible workflows, with Adobe Animate evolving to prioritize canvas and WebGL exports over legacy SWF and FLV production, though backward compatibility for editing existing Flash Video remains available.[99][100]
Recording Software
Screen recording software for Flash Video typically involved tools designed to capture desktop activity and export it in the FLV or F4V formats compatible with Adobe Flash Player. Camtasia Studio, developed by TechSmith, was a prominent option for creating tutorials and demonstrations, allowing users to record screen actions along with audio narration and export directly to FLV files for web playback.[101] Similarly, Adobe Captivate facilitated screen recordings for e-learning content, capturing interactions and outputting them as Flash Video files integrated with SWF presentations before the platform's shift to HTML5 outputs.[102] For recording live streams, RTMP-compatible clients were essential, as Flash Video often relied on the Real-Time Messaging Protocol for real-time transmission. OBS Studio, an open-source tool, supports RTMP output, which was used for Flash-based streaming platforms; however, with Adobe's end-of-support in 2020, such use is obsolete, though RTMP remains available for other services like Twitch.[103] Telestream's Wirecast provided professional live encoding capabilities, including direct support for Flash Video formats via H.264 in an FLV container, enabling multi-camera setups and real-time switching for broadcasts.[104] Webcam and audio capture tools focused on direct input to Flash servers. Adobe's Flash Media Live Encoder (FMLE), a free utility discontinued in 2012, allowed users to ingest live video from cameras or microphones, encode it on-the-fly, and output to F4V files for server-side storage or streaming, supporting resolutions up to 1080p with H.264 compression.[105] During recording, effective buffer management ensured smooth capture by allocating memory to handle variable frame rates and prevent dropped frames, particularly in live scenarios where latency could disrupt playback.[106] Metadata tags, such as duration, keyframes, and custom cues, were embedded during capture using tools like FMLE or NetStream APIs to enable seeking and synchronization in Flash players. With Flash's end-of-life in 2020, recorded FLV files are now commonly converted to modern formats like MP4 or WebM for broader compatibility, using tools such as FFmpeg to remux without re-encoding while preserving quality.[53] This adaptation addresses security vulnerabilities in legacy FLV playback and aligns with HTML5 standards.[107]References
- The FLV video format was developed by Adobe Systems for its Flash Player. It was created to embed video streams in Adobe applications and for use with a Flash ...
- May 7, 2025 · The FLV and F4V (H.264) video formats offer technological and creative benefits that let you fuse video together with data, graphics, sound, and ...
- FLV files (also known as Flash Video files) stream video and audio online. They help play multimedia content on websites, including films, television shows, ...
