This week I am at the annual iPres digital preservation conference. It is an amazing week of meeting colleagues and old friends who share the same passion of digital preservation. Outside of this community and my co-workers, talking about file formats and digital preservation usually bores people to death and I can hear some of them mumble under their breath, “nerd”! I term I am happy to accept.
At the conference, which is in lovely Urbana-Champaign Illinois this year, I am trying to soak in all the amazing talks and conversations about the challenges facing our work. There were a couple great workshops on Persistent Identifiers and Digital Object Storage Criteria. The presentations I made were of course on File Formats, documentation, and obsolescence. One talk before my panel conversation was about the ubiquitous Adobe Flash format.
The paper, “Around for Decades, Gone in a Flash: How we dealt with Flash objects and the National Archives of the Netherlands” was presented by Lotte Wijsman and Marin Rappard. They knew they had flash objects in their web archives and wanted to go through the process of how they might be preserved and accessed. They started out looking for any files with “FLA”, “SWF”, and “FLV” as extensions. This proved problematic as there were references to those extensions within other documents and objects. They then used DROID to identify the flash formats. “SWF” has quite a number of format PUID’s.
PUID | Format Name | Format Version | Extension |
---|---|---|---|
fmt/104 | Macromedia Flash | 1 | swf, |
fmt/105 | Macromedia Flash | 2 | swf, |
fmt/106 | Macromedia Flash | 3 | swf, |
fmt/107 | Macromedia Flash | 4 | swf, |
fmt/108 | Macromedia Flash | 5 | swf, |
fmt/109 | Macromedia Flash | 6 | swf, |
fmt/110 | Macromedia Flash | 7 | swf, |
fmt/505 | Adobe Flash | 8 | swf, |
fmt/506 | Adobe Flash | 9 | swf, |
fmt/507 | Adobe Flash | 10 | swf, |
fmt/757 | Adobe Flash | 11 | swf, |
fmt/758 | Adobe Flash | 12 | swf, |
fmt/759 | Adobe Flash | 13 | swf, |
fmt/760 | Adobe Flash | 14 | swf, |
fmt/761 | Adobe Flash | 15 | swf, |
fmt/762 | Adobe Flash | 16 | swf, |
fmt/763 | Adobe Flash | 17 | swf, |
fmt/764 | Adobe Flash | 18 | swf, |
fmt/765 | Adobe Flash | 19 | swf, |
fmt/766 | Adobe Flash | 20 | swf, |
fmt/767 | Adobe Flash | 21 | swf, |
fmt/768 | Adobe Flash | 22 | swf, |
fmt/769 | Adobe Flash | 23 | swf, |
fmt/770 | Adobe Flash | 24 | swf, |
fmt/771 | Adobe Flash | 25 | swf, |
fmt/772 | Adobe Flash | 26 | swf, |
fmt/773 | Adobe Flash | 27 | swf, |
fmt/774 | Adobe Flash | 28 | swf, |
fmt/775 | Adobe Flash | 29 | swf, |
fmt/776 | Adobe Flash | 30 | swf, |
Even the Macromedia/Adobe Flash Video format has a PRONOM PUID, x-fmt/382.
The format missing from PRONOM is the FLA format. FLA is the native format for Macromedia/Adobe Flash for saving the source project of your Flash document. SWF files are compiled from the FLA source. This means the the SWF will be the most common format found on the web and in public places, but the FLA format might be more often found on local drives and working folders.
The Flash format and software was actually created by Future Wave software in 1996 as FutureSplash Animator, but was shortly bought by Macromedia later that year and Flash 1.0 was born. FutureSplash used the extension .SPA, but Macromedia changed it to FLA.
The format was initially based on the Microsoft Compound File Format or the OLE container format.
oledir Flash4-S01.fla oledir 0.54 - http://decalage.info/python/oletools OLE directory entries in file Flash4-S01.fla: ----+------+-------+----------------------+-----+-----+-----+--------+------ id |Status|Type |Name |Left |Right|Child|1st Sect|Size ----+------+-------+----------------------+-----+-----+-----+--------+------ 0 |<Used>|Root |Root Entry |- |- |1 |5 |4416 1 |<Used>|Stream |Contents |2 |- |- |6 |4013 2 |<Used>|Stream |Page 1 |- |- |- |0 |329 3 |unused|Empty | |- |- |- |0 |0 ----+----------------------------+------+-------------------------------------- id |Name |Size |CLSID ----+----------------------------+------+-------------------------------------- 0 |Root Entry |- |597CAA70-72AA-11CF-831E-524153480000 1 |Contents |4013 | 2 |Page 1 |329 |
The FLA format stayed with OLE until Adobe Flash CS5, which the format changed to use a ZIP container to store all the content.
Flash5.5-S01.fla Type = zip Physical Size = 216632 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2022-07-09 11:57:46 ..... 25 25 mimetype 2022-07-09 11:57:46 ..... 9 9 Flash5.5-S01.xfl 2022-07-09 11:57:46 D.... 0 0 LIBRARY 2022-07-09 11:57:46 D.... 0 0 META-INF 2022-07-09 11:57:46 ..... 49267 3936 DOMDocument.xml 2022-07-09 11:57:48 ..... 9735 1103 META-INF/metadata.xml 2022-07-09 11:57:48 ..... 8093 2222 PublishSettings.xml 2022-07-09 11:57:48 ..... 0 0 MobileSettings.xml 2022-07-09 11:57:48 D.... 0 0 LIBRARY/Mouth shape graphic symbols 2022-07-09 11:57:48 D.... 0 0 LIBRARY/Voice 2022-07-09 11:57:48 ..... 151006 151006 bin/M 1 1252032698.dat 2022-07-09 11:57:48 ..... 99707 15311 LIBRARY/mouth.xml 2022-07-09 11:57:48 ..... 16510 4534 LIBRARY/Mouth shape graphic symbols/A I.xml 2022-07-09 11:57:48 ..... 14334 4086 LIBRARY/Mouth shape graphic symbols/C D G K N R S Th Y Z.xml 2022-07-09 11:57:48 ..... 14531 4040 LIBRARY/Mouth shape graphic symbols/E.xml 2022-07-09 11:57:48 ..... 15846 4007 LIBRARY/Mouth shape graphic symbols/F V D Th.xml 2022-07-09 11:57:48 ..... 13093 3542 LIBRARY/Mouth shape graphic symbols/L D Th.xml 2022-07-09 11:57:48 ..... 2106 751 LIBRARY/Mouth shape graphic symbols/M B P Closed.xml 2022-07-09 11:57:48 ..... 14130 3949 LIBRARY/Mouth shape graphic symbols/O.xml 2022-07-09 11:57:48 ..... 11082 2951 LIBRARY/Mouth shape graphic symbols/Open_Rest.xml 2022-07-09 11:57:48 ..... 14847 4066 LIBRARY/Mouth shape graphic symbols/U.xml 2022-07-09 11:57:48 ..... 8139 2202 LIBRARY/Mouth shape graphic symbols/W Q.xml 2022-07-09 11:57:48 ..... 15768 3914 LIBRARY/panda.xml 2022-07-09 11:57:48 ..... 10477 1064 LIBRARY/sample graph.xml 2022-07-09 11:57:48 ..... 538 538 bin/SymDepend.cache ------------------- ----- ------------ ------------ ------------------------ 2022-07-09 11:57:48 469243 213256 21 files, 4 folders
The move to a ZIP container included a new format, XFL. This XFL file is a simple text file with the text “PROXY-CS5″. In the DOMDocument.xml file we find an XML namespace, xmlns=”http://ns.adobe.com/xfl/2008/” and a version of the XFL structure, xflVersion=”2.1″.
This ZIP compressed FLA file is still being used in the current Adobe Animate software, which no longer uses the flash technology and uses more modern web formats like HTML5 to display the animations.
I took each version and made a PRONOM signature, which you can find here with samples. These container signatures should cover all the major changes for the format, but there is a problem……..
Listing archive: Flash5.5-S01v5.fla -- Path = Flash5.5-S01v5.fla Type = zip ERRORS: Headers Error Physical Size = 216581 Embedded Stub Size = 63 Characteristics = Local Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2022-07-09 11:57:46 ..... 25 25 mimetype 2022-07-09 11:57:46 D.... 0 0 LIBRARY 2022-07-09 11:57:46 D.... 0 0 META-INF 2022-07-09 11:57:46 ..... 48556 3742 DOMDocument.xml 2022-07-09 11:57:48 ..... 10133 1112 META-INF/metadata.xml 2022-07-09 11:57:48 ..... 8115 2219 PublishSettings.xml 2022-07-09 11:57:48 ..... 0 0 MobileSettings.xml 2022-07-09 11:57:48 D.... 0 0 LIBRARY/Mouth shape graphic symbols 2022-07-09 11:57:48 D.... 0 0 LIBRARY/Voice 2022-07-09 11:57:48 ..... 151006 151006 bin/M 1 1252032698.dat 2022-07-09 11:57:48 ..... 99551 15319 LIBRARY/mouth.xml 2022-07-09 11:57:48 ..... 16580 4536 LIBRARY/Mouth shape graphic symbols/A I.xml 2022-07-09 11:57:48 ..... 14404 4089 LIBRARY/Mouth shape graphic symbols/C D G K N R S Th Y Z.xml 2022-07-09 11:57:48 ..... 14531 4044 LIBRARY/Mouth shape graphic symbols/E.xml 2022-07-09 11:57:48 ..... 15848 4008 LIBRARY/Mouth shape graphic symbols/F V D Th.xml 2022-07-09 11:57:48 ..... 13024 3546 LIBRARY/Mouth shape graphic symbols/L D Th.xml 2022-07-09 11:57:48 ..... 2106 752 LIBRARY/Mouth shape graphic symbols/M B P Closed.xml 2022-07-09 11:57:48 ..... 14200 3955 LIBRARY/Mouth shape graphic symbols/O.xml 2022-07-09 11:57:48 ..... 11152 2963 LIBRARY/Mouth shape graphic symbols/Open_Rest.xml 2022-07-09 11:57:48 ..... 14777 4069 LIBRARY/Mouth shape graphic symbols/U.xml 2022-07-09 11:57:48 ..... 8287 2228 LIBRARY/Mouth shape graphic symbols/W Q.xml 2022-07-09 11:57:48 ..... 15768 3914 LIBRARY/panda.xml 2022-07-09 11:57:48 ..... 10477 1064 LIBRARY/sample graph.xml 2022-07-09 11:57:48 ..... 538 538 bin/SymDepend.cache 2022-07-09 11:57:46 ..... 25 25 mimetype 2022-07-09 11:58:18 ..... 9 9 Flash5.5-S01v5.xfl ------------------- ----- ------------ ------------ ------------------------ 2022-07-09 11:58:18 469112 213163 22 files, 4 folders
Turns out majority of the samples I have from many versions of Adobe Flash after CS5 have a ZIP Header error. When using the new signatures in DROID, the samples with the header errors will fail in the DROID’s zip library processing. The DROID logs shows this issue:
Could not process the potential container format (ZIP): file:///Flash5.5-S01v5.fla Expected 25 more entries in the Central Directory!
The Central Directory header in a ZIP file is quite important to the proper function of the ZIP container. Wikipedia has a great explanation of the header. You may notice in the listing above the file “mimetype” is shown twice which is probably the extra entries the parser wasn’t expecting.
So currently the identification of majority of these FLA formats is on hold until a way is discovered to ignore the error and continue the container identification in DROID.