Change video frame rate

View Markdown

“Projector” (a film collaboration tool like Frame.io) receives footage shot at 60fps but needs 24fps for cinematic delivery and 30fps for web.

API

ittybit video \
  -i https://projector-app.com/footage/scene-4.mov \
  --fps 24 \
  --format mp4
const task = {
  input: 'https://projector-app.com/footage/scene-4.mov',
  kind: 'video',
  options: {
    fps: 24,
    format: 'mp4',
  },
};

const res = await fetch('https://api.ittybit.com/jobs', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.ITTYBIT_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(task),
});
const data = await res.json();
import requests

task = {
    "input": "https://projector-app.com/footage/scene-4.mov",
    "kind": "video",
    "options": {
        "fps": 24,
        "format": "mp4",
    },
}

res = requests.post(
    "https://api.ittybit.com/jobs",
    headers={"Authorization": f"Bearer {api_key}"},
    json=task,
)
data = res.json()
TASK='{
  "input": "https://projector-app.com/footage/scene-4.mov",
  "kind": "video",
  "options": {
    "fps": 24,
    "format": "mp4"
  }
}'

curl -X POST https://api.ittybit.com/jobs \
  -H "Authorization: Bearer $ITTYBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$TASK"

CLI

ittybit video \
  -i scene-4.mov \
  -o scene-4-24fps.mp4 \
  --fps 24

ittybit video \
  -i scene-4.mov \
  -o scene-4-30fps.mp4 \
  --fps 30

Common frame rates

FPSUse case
24Film, cinematic look
25PAL broadcast
30Web, general purpose
60Gaming, sports, smooth motion

Reduce frame rate to save bandwidth

A 60fps video at 30fps is roughly 30-40% smaller. For content that doesn’t need high frame rates (talking heads, slides):

ittybit video \
  -i webinar.mov \
  -o webinar.mp4 \
  --fps 30 \
  --quality medium

Low frame rate for previews

For hover-preview thumbnails, 15fps is enough and dramatically smaller:

ittybit video \
  -i clip.mp4 \
  -o preview.mp4 \
  --fps 15 \
  --width 320 \
  --quality very_low