Video
Decode once, apply filters, encode once. Containers, codecs, and resize behaviour for the video transport.
Formats
Reading is wider than writing. Encode targets and the full table → Compatible files.
| Direction | Formats |
|---|---|
| Send us | mp4, m4v, webm, mov, mkv, avi, ogv, mpg, mpeg, ts, 3gp |
| Get back | mp4, webm, mov, mkv |
mp4 / mov / mkv carry H.264 + AAC; webm carries VP9 + Opus. mp4 and mov are written with the index at the front so playback can start before the full object downloads.
A branch with no
video.convert re-encodes into the source container — resize-only jobs need a writable container, or add a convert node to pick the output.Nodes
video.resize— scale by percentage or into a pixel box, with fit modes and optional letterbox colour.video.convert— re-encode to mp4, webm, mov, or mkv at a quality.
SDK examples → Recipes. Several outputs from one clip → Pipelines.
Order of operations
Resizes chain into one filter pass; convert is the terminal encode. Two converts on one branch — the last one wins.
Dimensions land on even numbers
Encoders need an even width and height, so the transport rounds the final size down to a multiple of 2. Ask for 721px and you get 720px.
Next steps
- Pipelines — fan one clip out to several sizes.
- HTTP & curl — submit and poll without the SDK.