Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
Ben Nadel at InVision In Real Life (IRL) 2018 (Hollywood, CA) with: Brad Brewer
Ben Nadel at InVision In Real Life (IRL) 2018 (Hollywood, CA) with: Brad Brewer

Converting TechSmith JING SWF Movies To MP4 Videos

By Ben Nadel on
Tags: Flash

For the last few years, I've been using TechSmith's Camtasia For Mac in order to record my web development screencasts as MP4 video files. Prior to Camtasia, I was using another TechSmith product called JING. JING was an awesome tool and made sharing screencasts super easy with its built-in file uploader; but, it generated its screencasts as Flash movies (SWF files). And, now that Flash is all but dead on the web, I have several years worth demos that are no longer viewable on this site. As such, I've begun the process of converting my JING SWF movie files into MP4 video files. Which, unfortunately, is going to be a labor-intensive, real-time process.


 
 
 

 
 
 
 
 

When I first started down this path, I experimented with a number of online and offline "SWF to MP4" video conversion tools. And, they were all terrible. None of them came even close to producing a valid conversion file. If I was lucky, the generated file would have the right dimensions. But, most of the tools didn't even get that right.

In order to get a better sense of why this conversion was so hard, I downloaded the trial version of the Flash Decompiler by Trillix. And, once I opened up one of the SWF movies, I was quickly able to see the problem: the JING movies don't actually contain any video assets:


 
 
 

 
 Flash decompiler shows that JING SWF has no video assets. 
 
 
 

The JING SWF files aren't "videos" in the traditional sense - they're "interactive movies". So, instead of embedded video assets, the JING SWF visuals are a composite of hundreds of image sprites that are animated across thousands of frames on the Flash timeline.


 
 
 

 
 Flash decompiler shows that JING SWF has no video assets. 
 
 
 

Because of this movie architecture, generating an MP4 video file requires playing back the SWF movie in realtime and, essentially, recording the output in the desired MP4 format. To do this, I purchased the SWF Converter For Mac by iOrgSoft. This product does exactly that - it plays the SWF movie in realtime and records the audio and visual output:


 
 
 

 
 SWF converter for Mac plays back SWF movie and records output. 
 
 
 

On of the problem with this - and one that I don't think I can get around - is that the JING movie is truly interactive. Meaning, it doesn't auto-play: as the consumer of the SWF movie, I have to hit the Play button to start the embedded demo. This is why the JING controls show up when I start the conversion:


 
 
 

 
 SWF converter for Mac plays back SWF movie and records output. 
 
 
 

So, for each conversion, I have to start the conversion process, click the Play button in the movie while it's being recorded, and then quickly mouse-out of the video so that the JING playback controls will know to fade-away. This will result in an MP4 video file that contains the original JING controls (as seen here in Quicktime):


 
 
 

 
 MP4 video file generated from JING SWF movie. 
 
 
 

The bottom scrubber is the Quicktime playback. That giant Play button in the center is the JING tooling that is now forever-embedded in the converted MP4 video file.

This is a bummer. Not only is this going to be a time-intensive, manual, non-scriptable process; but, I don't think there's any way around it. Since the JING SWF file is a video-free, "interactive movie" that actually requires user-interaction in order to run, I think the SWF Converter for Mac is going to be my best bet. The saving grace of this process is that I can start the conversion process and then move the converter to the background so that I can do other work. The SWF Converter won't pick up any computer sounds or music - it just records the audio coming out of the SWF movie. So, one little victory there is that it's fairly isolated.

This seems like a great scenario for Amazon's Mechanical Turk. But, since this task needs licensed software, I think this going to end up being a one-man brute-force effort.


Looking For A New Job?

Ooops, there are no jobs. Post one now for only $29 and own this real estate!

100% of job board revenue is donated to Kiva. Loans that change livesFind out more »

Reader Comments

@Chris,

Ah, very interesting thought! Unfortunately, I know even less about testing tools than I do about video conversion :P But, I will keep that in the back of my mind as I go about all of this.

Reply to this Comment

@Ben

I think this might be your answer, an end-to-end testing tool that can be programmatically controlled.

https://www.cypress.io/

Another interesting approach that might be worth thinking about is to use a headless browser, which can also be programmatically controlled.

Reply to this Comment

@Chris,

I recently listened to a podcast with Gleb Bahmutov, who I think may be one of their lead developers -- Cypress.io. It sounds like a really interesting project. I'll take a look.

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
NEW: Some basic markdown formatting is now supported: bold, italic, blockquotes, lists, fenced code-blocks. Read more about markdown syntax »
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.