Video Tutorial

Getting Started: Converting Video Files

Learn how to convert and edit video files with Media Manipulator's video converter. This tutorial walks through every section of the video conversion panel — format selection, trim, transform, visual effects, temporal effects, advanced color/HDR controls, and the GPU-backed transcription option for subtitles and captions.

1. Upload your video file

Drag a video file into the upload zone on the home page, or click Choose File. Common inputs include MP4, MOV, MKV, AVI, WebM, WMV, and FLV. Large videos are uploaded directly to S3 via a presigned URL for speed; smaller files upload through the standard form endpoint.

After upload, the right panel shows a Convert / Transcribe toggle. Keep it on Convert for now — we'll cover Transcribe below.

Loading the tool…

2. Pick the output format and quality

Use Format to choose the container/codec for the output:

  • MP4 — H.264 + AAC, the safest default for the web and most devices.
  • WebM — VP9 + Opus, optimal for the open web.
  • MOV / MKV / AVI / WMV / FLV — containers for specific workflows (Apple, archival, legacy players, etc.).
  • ProRes / DNxHD — high-bitrate professional editing codecs.
  • GIF (Animated) — silent looping image for chat threads, READMEs, and bug reports. See the dedicated section below.

Quality chooses a CRF preset under the hood: Low ≈ CRF 30 (small file), Medium ≈ CRF 23 (balanced), High ≈ CRF 18 (visually transparent on most footage). The Quality, Height, and Speed controls are skipped for GIF output — the Animated GIF panel below takes over.

2a. Converting video to an animated GIF

Pick GIF (Animated) as the format to expose the Animated GIF Settings panel. This runs a two-stage pipeline modeled on a battle-tested screencast script: FFmpeg downscales the source and samples it at a low frame rate, then gifsicle re-quantizes the palette and optimizes the output for size.

  • Width (px) — output width. Height is computed automatically (and rounded to a multiple of 4) to preserve the aspect ratio. 480–900 is a good sweet spot for screencasts.
  • Frame rate (fps) — how many frames per second FFmpeg samples from the source. 12 fps reads smooth for UI screen recordings; raise to 18–24 for motion-heavy clips, or drop to 8–10 to shrink the file.
  • Colors — gifsicle palette size (2–256). 128 is a strong default; drop to 64 on flat UI footage, raise to 256 for photographic clips with smooth gradients.
  • Frame delay — gifsicle inter-frame delay in 1/100s. Lower = faster playback. 3 (≈30ms) is the snappy screencast feel; 6–10 produces a slower, more deliberate loop.
  • Optimize level — gifsicle --optimize level. 1 is fastest with the biggest output, 3 is slowest with the smallest output. Stick with 3 unless you're iterating on a long clip and want a quick draft.

Trim still works for GIFs — pair a short trim with a small Width and modest Colors to keep the file well under a few megabytes. The preview modal animates the result in place once the job finishes; toggle to Original to compare against the source video.

3. Resize, speed, and aspect ratio

Set Width and/or Height to resize the video. Leave one blank to scale proportionally. Toggle Preserve aspect ratio when you set both to use a non-stretching force_original_aspect_ratio=decrease scale.

Speed Multiplier changes both video and audio playback tempo from 0.25x to 4x. We pair it with FFmpeg's setpts filter and matching atempo on the audio track.

4. Trim

Click Trim Video to scrub the player and pick a start and end time. Only the selected segment is encoded into the output, and trim works regardless of the output codec.

5. Advanced Video Effects

The Advanced Video Effects section groups every filter into collapsible panels. Expand a panel to access its controls:

  • Visual Effects — brightness, contrast, saturation, hue, gamma, exposure, shadow/highlight recovery, Gaussian blur, motion blur, unsharp mask (sharpening), film/digital/vintage noise, and artistic effects (oil painting, watercolor, sketch, emboss, edge detection, posterize).
  • Transform — free rotation in degrees, horizontal/vertical flip, custom crop, and padded letterboxing with a configurable color.
  • Temporal Effects — reverse playback, ping-pong (forward then backward), frame-rate conversion with optional motion interpolation, and video stabilization with shakiness/accuracy controls.
  • Advanced Processing — deinterlacing, HDR tone mapping (hable, reinhard, mobius), and explicit input/output colorspace conversion (Rec.709, Rec.2020, sRGB, P3).

6. Convert and download

Click Convert File. A streaming progress bar shows real-time job status pulled from FFmpeg. When the job finishes, the result auto-previews in a modal with an Original / Final toggle so you can compare the two side by side. A Download button saves the final file.

7. Transcribe a video (subtitles, captions, plain text, JSON)

Switch the panel toggle to Transcribe to run our local GPU transcription pipeline (whisper-ctranslate2). Pick an output format:

  • VTT — time-coded captions/subtitles that drop into HTML5 video players.
  • Plain text — a continuous transcript for reading or editing.
  • Structured JSON — segmented transcript with timing data for downstream pipelines.

Optionally type a BCP-47 language hint (e.g. en, es, ja). Leave it blank to auto-detect. A summary and content-safety review run automatically after the transcript is ready.

Tips for great video output

  • Use MP4 / High as a default for web delivery — it streams everywhere and looks great.
  • Prefer WebM for open-web embeds where file size matters and you control the player.
  • Avoid resizing upward in the standard pipeline — small inputs look better after lossless encode at original resolution.
  • Apply stabilization before strong color grading so the warp doesn't fight the color filter.
  • Run Transcribe alongside the conversion if you want both a converted file and subtitles — they're independent jobs.
  • For GIF output, trim aggressively first — every extra second of footage multiplies the final size by frame rate × colors.