Initializing... drag & drop files here
Supports: SWF
.swf files from your device. Batch upload is supported — process a folder of legacy banner ads, e-learning modules, or archived animations in one pass. Files are uploaded over an encrypted connection, processed on our servers, and deleted automatically after a few hours — no sign-up, no watermark, never shared.qscale — lower numbers mean better quality and larger files.Adobe Flash Player reached end-of-life on December 31, 2020, and Adobe blocked Flash content from running in the player starting January 12, 2021 — every major browser (Chrome, Firefox, Edge, Safari, Opera) had already dropped Flash by late 2020. That leaves billions of .swf files (banner ads, training modules, vector animations, browser games, museum kiosks, courseware) effectively unplayable. MJPEG, by contrast, stores each frame as an independent JPEG — every modern NLE (Premiere, DaVinci Resolve, Final Cut, Avid) decodes it natively, and frame-accurate scrubbing is trivial because there are no I/P/B inter-frame dependencies. Typical reasons to make the SWF → MJPEG hop:
Need a different target? Try SWF to MP4 for general streaming/playback, SWF to GIF for a short animated still, or go the other way with MJPEG to MP4 to compress an MJPEG master.
| Property | MJPEG | H.264 (AVC) |
|---|---|---|
| Compression model | Intra-frame only (each frame = one JPEG) | Inter-frame (I/P/B frames + motion compensation) |
| Typical bitrate, 1080p30 | 50–100 Mbps for visually transparent quality | 8–15 Mbps for visually transparent quality |
| Frame-accurate scrubbing | Every frame is a keyframe — instant seek | Seeks snap to nearest I-frame (1–10 s apart by default) |
| Editing workflow | Cut anywhere; no GOP re-encode required | Best with smart-rendering NLEs or pre-converted intermediates |
| Encode/decode CPU | Very low (JPEG is one of the lightest codecs to decode) | Moderate; hardware-accelerated almost everywhere |
| Hardware decoder support | Most UVC webcams, USB capture sticks, medical/industrial cameras | Practically every smartphone, browser, smart TV since ~2010 |
| Streaming use | IP camera live preview, embedded HMI panels | YouTube/Vimeo/Netflix, HLS/DASH delivery |
| Best fit | Editing intermediate, frame-extraction, low-latency local preview | Final delivery, web streaming, mobile playback |
| Property | SWF (Flash) | MJPEG |
|---|---|---|
| Container | Adobe SWF (vector + bitmap + audio + ActionScript) | Raw stream usually wrapped in AVI, MOV, MP4, or MKV |
| Graphics model | Resolution-independent vectors with timeline animation | Raster video — fixed resolution per file |
| Audio | MP3, ADPCM, Speex, Nellymoser inside the SWF tag stream | Carried separately in the wrapper (often PCM, AAC, or MP3) |
| Interactivity | ActionScript 1/2/3 — buttons, scripts, drag-and-drop | None — purely linear video |
| Current browser support | None — all major browsers dropped Flash by end of 2020 | Plays in any video player; browsers play it via <video> when in an MP4/WebM wrapper, otherwise via download |
| Typical use today | Legacy archives, museum/preservation, Ruffle emulation | Editing intermediate, IP cameras, scientific capture |
| Editability | Requires Adobe Animate or decompilers (JPEXS) | Native in every modern NLE |
Because MJPEG is an editing format, not a delivery format. If you're going to drop the converted clip into a timeline in Premiere, Resolve, or Final Cut and cut on individual frames — say, picking specific animation frames out of a Flash tutorial — MJPEG is friendlier than H.264 because every frame is a keyframe. If your goal is to upload the result to YouTube or watch it on a phone, convert to MP4 instead; MJPEG files at the same visual quality are roughly 5–10× larger than H.264.
No. ActionScript code, buttons, and scripted timeline jumps are not video — they're code. The converter renders the SWF's default timeline playback as it would appear in Flash Player, then captures that as a linear MJPEG stream. If the SWF needs user input to advance (a quiz, a clickable menu), you'll lose those branches. For interactive Flash content, look at Ruffle, the open-source Flash emulator, which keeps interactivity intact.
VLC, mpv, MPC-HC, QuickTime, and Windows Media Player all decode MJPEG natively when it's wrapped in AVI, MOV, or MKV. Some browsers won't play raw .mjpeg files via <video>, but they'll play an MJPEG track inside an MP4/MOV container. If you're targeting web playback, re-wrap to MP4 (MJPEG is a legal video codec inside MP4) or transcode to H.264.
SWF stores resolution-independent vectors plus compressed bitmaps and audio — a 30-second vector animation can be under 100 KB. MJPEG is raster video; it has to encode a full JPEG for every frame at the chosen output resolution. A 30-second SWF rendered to 1080p30 MJPEG at very high quality can easily land between 300 MB and 1 GB. Lowering the quality preset to Medium or dropping the output resolution to 720p typically cuts size 3–5×.
The frame rate from the SWF header is preserved by default (Flash content typically authored at 12, 24, or 30 fps). If your source SWF was authored at 12 fps for filesize reasons, the MJPEG will be 12 fps too — bumping it up wouldn't add detail, only repeat frames. For smoother playback in modern editors, you can re-encode the MJPEG output to 24 or 30 fps in a second pass.
Yes — that's one of MJPEG's strengths. Because each frame is a complete JPEG, you can pull individual frames with ffmpeg -i input.mov -vf "select=eq(n\,K)" -vframes 1 frame.jpg (where K is the frame index) or with any video editor's "Export Frame" command. Compare this to H.264, where you decode an entire GOP just to extract one middle frame.
Files process server-side for SWF (we need to render the Flash timeline, which is a heavyweight operation), but they're deleted after your session ends. Anonymous users can convert up to the per-session size cap shown on the upload widget; signed-in users get higher caps. No watermark, no required account for routine use.
Yes, if the SWF embeds audio (MP3, ADPCM, Nellymoser, or Speex stream tags), it's decoded and remuxed into the output container alongside the MJPEG video stream. ActionScript-triggered sound effects that play only on user input won't appear in the linear render — same caveat as interactivity above.
Banner-ad SWFs often loop indefinitely. The converter renders one pass of the timeline (the equivalent of one loop). If your banner has multiple animation states triggered by hover or click, only the default idle-state animation gets captured. For multi-state banners, use Adobe Animate to publish each state as a separate SWF first, then convert each one.