The Swiff Army Knife
hosted by swfchan


A small program written in Java that you can edit videos with.

DOWNLOAD (21.6 MiB) — Extracts to 50.9 MiB.

Includes all dependencies. Designed to run on Windows. Requires Java 8 or higher.


If the program doesn't start: Right-click "! Run TheSwiffArmyKnife.bat" and select Edit to open it in Notepad.
Then replace "javaw" with the complete path to javaw.exe on your machine so the line reads like this:

start "TheSwiffArmyKnife" "C:\<your java path>\jre<version>\bin\javaw.exe" -Xmx999m -jar "! Data/programJar"


Video Slicer
+ Crop videos (inwards).
+ Resize videos (ensures that the optimal divisible dimensions are used).
+ Cut videos (remove selection or keep selection).
+ Change framerate of videos (can go both lower and higher than the input video's FPS in case it's needed to match clips in the Video Merger).
+ Mute videos (or don't).
+ Preview your cut (encodes two small videos right next to your cut and extracts the frames from them).
+ The preview also reflects cropping/resize and framerate.
+ Can press F5 at any time to refresh the preview instead of clicking the button.

Video Merger
+ Put together several smaller videos into one big video.
+ Extremely fast, uses stream copy.
+ However, stream copy means that video cuts must be compatible with each other. They must have the same width/height/FPS and should use the same video/audio codecs.
+ Cuts created with the Video Slicer always works in the Video Merger as long as you match the width/height/FPS.

Video Encoder
+ Make a usable video file at exactly the right file size.
+ Can change final dimensions/framerate.
+ Several audio options that works well with all containers, including mute.
+ Output: MP4 container (H.264/AAC) for general use.
+ Output: FLV container (H.264/AAC) for streaming or SwfH264.
+ Output: FLV container (On2VP6/MP3) for SWF timeline embedding.
+ Output: WEBM (VP8/Vorbis) for imageboards.
+ Correct metadata will be injected into created FLV files.
+ Two pass encoding is used to ensure that the bitrate goes where it's needed.

Audio Handler
+ Extract audio from a video file.
+ Replace the audio of a video file.

+ Using the program should be straightforward, there's not too many buttons/options.
+ Spawn new tabs at any time by pressing Ctrl + T.
+ Text field values can be modified using * / + - (works on time values as well).
+ A console that tells you exactly what's going on, including any error messages. Every single argument used with ffmpeg is shown.
+ Fake tabs working as a shortcut to the working directory and for cleaning up (deleting) temporary throwaway files.
+ Pretty much everything has mouse-over tooltips that explains how stuff works.
+ An actual "check for updates"-button on the Welcome-tab!


This is the Video Slicer tab.

The preview button has been pressed so ten frames from the would-be resulting video are displayed. Those marked with blue are the ones right next to the cut defined by the start/end times.

A "reverse cut" means that the cut will be removed from the resulting video instead of being kept.

This is the Video Encoder tab.

The arbitrary starting video bitrate (1237 kbps) created a video file that was larger than desired. The program automatically lowered the bitrate four times and increased it once before finally generating an output close enough to the target 1.75 MiB.

ANY can be specified as target if you wish to manually set the video bitrate.


+ I want to incorporate all features of my previous programs into The Swiff Army Knife so everything's in one place. Then I only need to update one program from now on and can add new tabs to it whenever I feel like it.

+ That includes some audio stuff and actual .swf stuff, hopefully improved. But I jumped over to a different project for now, only finishing the video part of The Swiff Army Knife. Head on over to the discussion thread if you feel like motivating me!


Release 2 (6dec2016) Quack Damage Edition

+ New tab: Audio Handler. You can extract audio from video files here as well as replace a video's audio.
+ The "open" buttons next to selected files are now a little bigger. Such buttons for output files have also been made green to differentiate them more from input files.
+ The Video Slicer and Video Encoder tabs now show dummy stuff until a file has been selected (for instant familiarity).
+ Video Slicer: Greatly improved encoding speed (fast/normal/slow modes).
+ Video Slicer: The default denominator is now 8 instead of 16 because 1080 doesn't divide evenly by 16.
+ Video Encoder: You can now scale the output dimensions here.
+ During work the MKV container format is now used instead of MP4.
+ Added a "! Data" folder which makes the program's root folder much cleaner (so program files won't mix with your eventual project files).
+ There's now a .ini settings file created inside the data folder upon first run. You can change several things there, for example default directories.
Release 1 (26may2016) Quad Damage Edition

+ Initial release.