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:
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.
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:
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:
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):
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.
Think you might be able to use testing tools to automate this?
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.
I think this might be your answer, an end-to-end testing tool that can be programmatically controlled.
Another interesting approach that might be worth thinking about is to use a headless browser, which can also be programmatically controlled.
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.
In fact, it is very simple to convert an SWF movie to MP4, and a simple and reliable video converter can easily convert. The WonderFox hd pro I am using can be converted in just three steps. The operation is very simple. I think you can try this software.