A SWF file freezes on its first frame on an Android signage player because Android has shipped no Flash Player since Android 4.1, while your Windows and Linux clients render it with a Flash runtime of their own. Convert the SWF to H.264 MP4 at 1920 x 1080 and 30 fps for pure animation, and rebuild anything with buttons or live feeds as an HTML5 page.
A region that sits frozen on its first frame on an Android signage player, while the same design plays on the Windows and Linux clients, is almost always a SWF file. Android has had no Flash Player since Android 4.1, and a desktop client renders the file only because a Flash runtime was available to it. The fix is to convert the SWF to H.264 MP4, and to rebuild anything that takes touch input or reads live data as an HTML5 page. This article shows how to confirm which case you have and which settings to convert with.
Why the file will not play
Adobe confirmed on 29 June 2012 that there would be no certified Flash Player for Android 4.1, and new installs of mobile Flash from Google Play stopped on 15 August 2012. From that Android release on, the platform has had no Flash runtime for a signage player to call on.
So the region loads the SWF, draws the first frame and then has nothing to run the timeline with. The autoplay flag inside the file, and the plug-in setting, change nothing: a setting can only instruct a runtime that exists. Android's own documented supported-media list names MP4 with H.264 AVC video, H.263, MPEG-4 and common image formats such as JPG and PNG, and SWF appears nowhere on it.
That list gives you the target. H.264 MP4 at 720p or 1080p is the combination that works essentially everywhere, so the conversion fixes the file for the Android player and keeps it playable on any desktop client you still run.
Symptoms and what each points to
- One region frozen on its first frame while the slides around it keep playing. The file in that region is a SWF, and Android cannot draw it.
- The same published design plays on the Windows and Linux clients and freezes only on the Android client. The design carries Flash content, and the desktop machines had a Flash runtime to render it. The platform difference is the cause.
- The region starts after a double tap on its icon and still shows no animation. The same fault. A tap cannot supply a runtime the platform does not ship.
- Autoplay is switched on in the file and in the plug-in and nothing improves. Expected, for the reason in the section above.
- A video region runs but stays black, or a video plays from a file browser and not inside the player app. Different faults with their own fixes: see an Android signage player that shows a black screen on video and a video that plays over USB but not in the player app.
Confirm the cause before converting
- Open the design's media list and read the extension. A .swf entry confirms Flash content. Its two siblings fail the same way and belong to the same family: .fla is the Flash authoring source and .flv is Flash video, and neither is on Android's documented format list.
- Play the same published design on a desktop client. If it renders there and freezes on Android, the file is intact and the platform is the difference, so there is nothing to repair in the file itself.
- Note the panel's native resolution and orientation before you convert: 1920 x 1080 in landscape for a 1080p panel, 1080 x 1920 for the same panel hung upright.
Convert the SWF to H.264 MP4
- Open a converter that exports or records the SWF timeline to video. The settings matter more than the tool.
- Set the container to MP4 and the video codec to H.264.
- Set the frame size to the panel's native resolution from step 3 above.
- Set the frame rate to 30 fps.
- Pick the bitrate for the content type and test it on the unit; video bitrate for a signage player covers how to choose it and what to watch for.
- Replace the SWF region in the design with the new MP4, publish, and load the files onto microSD or USB.
- Power the player and watch one full cycle.
This is the content the IMD Signage Player takes: images and MP4 video from microSD or USB, with H.264 MP4 the recommended codec, since H.265 and VP9 depend on the unit. The player keeps a copy of the media in internal memory, so the show carries on when the card comes out. The missing Flash runtime is the same on any current Android unit, so the conversion is the fix whichever player you use; if that hardware choice is still open, the digital signage player guide covers the basics.
Example: converting a 60-second SWF news ticker to H.264 MP4
Inputs, with where each comes from:
- Loop length of 60 seconds. This is the one number in the example you set; substitute your own length and redo the single multiplication below.
- Frame size of 1920 x 1080 pixels, the native resolution of a 1080p panel, and the conversion target.
- Frame rate of 30 frames per second, the conversion target.
Rule in words: the number of frames in the converted clip equals the loop length in seconds multiplied by the frame rate in frames per second.
Arithmetic: 60 s x 30 frames/s = 1800 frames.
Result: the converter draws 1800 frames, each 1920 x 1080 pixels, into one MP4 that runs for 60 seconds and loops cleanly if the SWF looped cleanly.
Decision: if the ticker only animates text and images, this MP4 replaces the SWF one for one and the job is done. The threshold is live data or touch input. A news ticker that reads an RSS feed is frozen by the conversion at whatever the feed showed when you exported, so past that point, rebuild the ticker as an HTML5 page.
Rebuild interactive content as HTML5
An MP4 stores fixed pixels. Buttons, menus, forms and anything that reads data while it plays do not survive the conversion. Rebuild that content as a web page and show it in the player's web page region; what to know about a web page signage player explains how that region behaves. If the rebuilt page embeds video, read why embedded webpage video will not autoplay in a signage player first, because the same autoplay rules apply inside the page.
Recommendation: Convert every SWF in the design to H.264 MP4 at the panel's native resolution and 30 fps before the files reach the Android player. When a SWF takes touch input, drives a menu or pulls a live feed, rebuild it as an HTML5 page shown in the web page region, because the MP4 conversion stores fixed pixels and none of that interaction survives.
Check the unit after the swap
- The former SWF region starts with its slide, with no tap.
- The clip runs a full loop and restarts cleanly.
- Sound stays off by default: videos play muted until you turn sound on in the player's settings.
- If the app stops mid-loop, the player is designed to start again within seconds and go back to playing.
Once the design holds no SWF, the same published files load on any player in the building, and the next conversion is a plain re-export at whatever resolution the next panel needs.
Questions
Can I install a Flash Player plug-in on the Android unit?
There is no supported plug-in to install. Adobe never certified Flash Player for Android 4.1, and new installs from Google Play ended on 15 August 2012. Without that runtime the player cannot draw Flash frames, so the documented path is converting the file to H.264 MP4, or rebuilding interactive content as an HTML5 page.
What happens to a live RSS feed inside a SWF once it becomes an MP4?
The MP4 is a recording of the ticker as it stood when you exported, so the headlines freeze and then repeat in the loop. To keep headlines fresh, rebuild the ticker as an HTML5 page that reads the feed, regenerate the MP4 on a schedule you choose, or use the IMD Signage Player's option to pull an updated playlist from your own web server on a timer over HTTPS.
Do FLV or FLA files play on an Android signage player?
No. FLV is Flash video and FLA is the Flash authoring source, and neither is on Android's documented supported-media list. Export an FLA project to MP4 with H.264 video, and convert FLV video into the same container and codec. Set the frame size to the panel's native resolution and the frame rate to 30 fps, and test the result on one unit before you roll the design out.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.