Convert video to WebM

“Reel” (an open-source video platform like PeerTube) wants to serve royalty-free formats. WebM with VP9 is the open alternative to MP4 with h264.

API

ittybit video \
  -i https://reel-app.com/uploads/video.mov \
  --format webm \
  --codec vp9 \
  --quality high \
  --cloud
const task = {
  input: "https://reel-app.com/uploads/video.mov",
  kind: "video",
  options: {
    format: "webm",
    codec: "vp9",
    quality: "high",
  },
};

const res = await fetch("https://api.ittybit.com/tasks", {
  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://reel-app.com/uploads/video.mov",
    "kind": "video",
    "options": {
        "format": "webm",
        "codec": "vp9",
        "quality": "high",
    },
}

res = requests.post(
    "https://api.ittybit.com/tasks",
    headers={"Authorization": f"Bearer {api_key}"},
    json=task,
)
data = res.json()
TASK='{
  "input": "https://reel-app.com/uploads/video.mov",
  "kind": "video",
  "options": {
    "format": "webm",
    "codec": "vp9",
    "quality": "high"
  }
}'

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

CLI

ittybit video \
  -i video.mov \
  -o video.webm \
  --codec vp9 \
  --quality high

AV1 in WebM

For even smaller files with modern browser support:

ittybit video \
  -i video.mov \
  -o video.webm \
  --codec av1 \
  --quality high

Dual format delivery

Serve WebM to Chrome/Firefox, MP4 to Safari:

ittybit video \
  -i video.mov \
  -o video.webm \
  --codec vp9 \
  --quality high

ittybit video \
  -i video.mov \
  -o video.mp4 \
  --codec h264 \
  --quality high
<video>
  <source src="video.webm" type="video/webm" />
  <source src="video.mp4" type="video/mp4" />
</video>

The browser picks the first format it supports.