Initializing... drag & drop files here
Supports: PEF
SWF is the Flash movie format. Adobe ended support for Flash Player on 31 December 2020 and began blocking Flash content outright on 12 January 2021, so nothing on the modern web plays these files natively any more. What keeps SWF alive is a specific set of destinations: legacy courseware and LMS packages, kiosk and signage software built in the Flash era, Adobe Animate projects, museum and installation systems, and the Ruffle emulator that people use to keep Flash archives playable.
If one of those is where your images are going, this page builds the movie: a sequence of Pentax raw frames, each held on screen for a set time, encoded into a single .swf.
The Video Codec group offers exactly two entries, and they behave very differently on still images.
FLV — the page's default — is Sorenson Spark, a Flash-flavoured variant of H.263. It codes each frame as a difference from the one before, so a still held on screen costs almost nothing after its first frame. It is also the codec Ruffle actually decodes: Ruffle's video support is built on h263-rs, described by its own authors as a pure-Rust implementation of ITU-T H.263 that "correctly decodes most Sorenson-flavor video streams".
MJPEG stores every frame as a complete JPEG with no relationship to its neighbours. On photographs it looks slightly cleaner at the same nominal quality, and it costs dramatically more.
The difference is easy to measure. Encoding the same 1024 x 768 still into a SWF at one frame per second, at matched encoder quality:
| Held for | FLV (Sorenson Spark) | MJPEG |
|---|---|---|
| 5 seconds | 41,652 bytes | 270,426 bytes |
| 10 seconds | 43,717 bytes | 463,551 bytes |
| Growth from 5 s to 10 s | about 5% | about 71% |
FLV barely notices the extra five seconds because nothing changed between frames. MJPEG pays full price for every second. On a slideshow of held stills — which is exactly what this page produces — that gap compounds with every image you add, so leave the codec on FLV unless something specific demands JPEG frames.
.swf for each raw file. Image Duration opens at 5 seconds per frame, with everything from 1/60 second to 10 seconds available.Your frames will be reduced before encoding. The image-to-video path caps the long edge at 4,096 pixels. Ricoh's specification for the K-3 Mark III gives its raw size as 6192 x 4128, so a frame from that body arrives at the encoder as roughly 4096 x 2730 before any resolution setting of yours applies. That is almost never a problem — a SWF playing at 1280 x 720 does not want a 26-megapixel source — but it does mean "Keep original" is not literally the original on a modern raw file.
The Quality Preset dropdown will not do what you expect. It works by scaling a source bitrate, and a still photograph does not have one. On the FLV codec with an image source there is nothing for it to scale, so it has no effect on the output. Move File Compression to Constant Quality and set the 1-31 value directly, or to Constraint Quality if you also want to cap the peak rate. This is the single most common reason a SWF comes back looking worse than expected.
The output is also silent. The audio controls are not rendered at all on an image source, because there is no audio stream to configure. Add a soundtrack afterwards in Animate or an editor if the project needs one.
| Image Duration | Playback effect | Typical use |
|---|---|---|
| 1/60 or 1/30 second | 60 or 30 frames per second | Timelapse from interval shots |
| 1/24 second | 24 frames per second | Cinematic timelapse |
| 0.2 or 0.3 second | 5 or roughly 3 frames per second | Product turntable, stop-motion |
| 1 second | One image per second | Fast gallery |
| 5 seconds (the opening value) | One image every five seconds | Slideshow with time to look |
| 10 seconds | Very slow | Annotated retrospective, signage loop |
The encoder itself runs at a fixed one frame per second and simply repeats each still for its duration, which is why an FLV-coded slideshow stays so small — the repeated frames are almost free.
Not a browser, and not Flash Player — Adobe ended support on 31 December 2020 and started actively blocking Flash content on 12 January 2021. What does play them is emulation and desktop software: Ruffle runs SWF in a browser extension, as a desktop application and as a self-hosted web player; VLC and mpv will open the video stream inside one; and Adobe Animate still imports and exports the format. Legacy kiosk, signage and courseware systems that were built around Flash also still run them internally, which is the main reason this conversion is asked for at all.
FLV, in nearly every case. It is far smaller on held stills — measured above at roughly a tenth the size for a five-second hold and a fifteenth for ten seconds — and it is the codec Ruffle's H.263 decoder is written for. MJPEG's advantage is that every frame is an independent JPEG, which can matter if something downstream needs to pull individual frames out, and it avoids the softness Sorenson Spark introduces on fine detail. Unless one of those applies, FLV is the answer.
Because it scales a source bitrate, and a still image has no bitrate to scale. On video sources the preset takes the input's own rate and multiplies it; on an image source that figure is zero, so on the quantiser-based codecs this page offers there is nothing for the preset to act on. Use Constant Quality instead — the 1-to-31 slider maps directly onto the encoder's quantiser, where 1 is nearly lossless and 31 is heavily compressed, and 2 to 4 is the range worth using for photographs.
Because Sorenson Spark is a quantiser-based codec rather than a constant-rate-factor one. The label says CRF because the control is shared across the site, but the scale underneath is the MPEG-style quantiser: integers from 1 to 31, lower meaning better quality and a larger file. It is not the H.264 CRF scale and the numbers do not correspond — a value of 23 would be very heavily compressed here, whereas on an H.264 target it is the normal default.
They will be rendered, once, and then fixed. Converting raw to video is a one-way development: the sensor data is demosaiced on our servers using the white balance the camera recorded, mapped to 8-bit video, and compressed. All the latitude a PEF holds — the extra bits of highlight and shadow, the ability to reset white balance — is spent at that moment. If the exposure needs work, develop the raws first in a free raw processor such as RawTherapee or darktable, then feed the exported images in instead.
Multiply the number of images by the Image Duration. Twenty frames at the default 5 seconds is a 100-second movie; the same twenty at 1/24 second is under a second, which is what you would use for a timelapse. There is no per-image timing and no transition stage, so every frame gets the same hold and cuts straight to the next.
Because a PEF frame is 3:2 and the output frame usually is not, so the difference has to be filled. That fill is the Background Color, which opens on White. Set it to Black for a darker presentation, or choose a resolution that matches your images' shape so the bars disappear. If you need the images to fill the frame instead, crop them to the output aspect ratio before uploading — there is no crop-to-fill option here.
Ask what is playing the file. If it is a Flash-era system that only accepts SWF, this is the page. If it is anything with a modern player — a website, a phone, a television, a media server — MP4 is a far better answer, and PEF to MP4 builds the same slideshow with H.264 video that everything decodes. Converting to SWF for general distribution in 2026 means most of your audience will not be able to open the result.
Your PEF files are uploaded over an encrypted connection, developed and encoded on our servers, and both the uploads and the finished movie are deleted automatically after a few hours. Nothing is shared or made public, and there is no sign-up, no watermark and no account required.