Creating high-quality slow motion requires planning your frame rate before you hit record. The fundamental concept of slow motion in cinematography is "overcranking"—recording at a higher frame rate (Source FPS) than your playback or timeline frame rate (Target FPS).
Quick Rule: To get smooth slow motion, your Source FPS must be at least double your Target FPS (e.g., Shoot at 60fps for a 30fps timeline to get 50% speed).
How the Calculation Works
When you conform high-frame-rate footage to a standard timeline, you are essentially stretching time. This calculator uses three key variables:
Shooting FPS (Source): The frame rate captured by the camera (e.g., 60fps, 120fps).
Timeline FPS (Target): The frame rate of your editing project (usually 24fps or 30fps).
Duration: The length of the clip in real-time.
Common Slow Motion Ratios
Here are standard settings used by professional videographers:
60fps on 24fps timeline: 40% speed (2.5x slower). Great for B-roll and weddings.
120fps on 24fps timeline: 20% speed (5x slower). Ideal for sports and action.
240fps on 30fps timeline: 12.5% speed (8x slower). Used for water droplets, breaking glass, or extreme detail.
Avoiding "Choppy" Footage
If your Shooting FPS is lower than your Timeline FPS, you cannot achieve slow motion without the software artificially creating frames (interpolation), which often results in visual artifacts or "ghosting." Always ensure your Source FPS is higher than your Target FPS for true slow motion.
function calculateSlowMo() {
// Get input values using var
var sourceFpsInput = document.getElementById("sourceFps").value;
var targetFpsInput = document.getElementById("targetFps").value;
var clipDurationInput = document.getElementById("clipDuration").value;
var resultBox = document.getElementById("result-box");
// Validate inputs
if (sourceFpsInput === "" || clipDurationInput === "" || isNaN(sourceFpsInput) || isNaN(clipDurationInput)) {
alert("Please enter valid numbers for Frame Rate and Duration.");
return;
}
var sourceFps = parseFloat(sourceFpsInput);
var targetFps = parseFloat(targetFpsInput);
var originalDuration = parseFloat(clipDurationInput);
// Prevent division by zero or negative inputs
if (sourceFps <= 0 || targetFps <= 0 || originalDuration < 0) {
alert("Frame rates and duration must be positive numbers.");
return;
}
// Calculation Logic
// 1. Calculate the percentage of speed (e.g., 60fps source / 30fps target = 0.5 or 50% speed)
var speedRatio = targetFps / sourceFps;
var speedPercent = speedRatio * 100;
// 2. Calculate the "Times Slower" factor (e.g., 60 / 30 = 2x slower)
var slowFactor = sourceFps / targetFps;
// 3. Calculate new duration (e.g., 10s * 2x slower = 20s)
var newDuration = originalDuration * slowFactor;
// 4. Determine Status
var statusText = "";
var statusColor = "#27ae60"; // Green
if (sourceFps 0) {
durationString = finalMinutes + "m " + finalSeconds + "s";
} else {
durationString = finalSeconds + "s";
}
document.getElementById("resDuration").innerHTML = durationString;
var statusElement = document.getElementById("resStatus");
statusElement.innerHTML = statusText;
statusElement.style.color = statusColor;
// Show results
resultBox.style.display = "block";
}