Supported Transcoding Profiles
JetEncode treats a transcoding profile as supported only when validation accepts it and the integration suite can produce an artifact that matches the expected FFprobe/Shaka properties.
The release gate uses the production encoders with real FFmpeg and FFprobe. When Shaka Packager is installed, streaming validation also uses real Shaka.
Video container / codec contract
| Container | Supported video codecs | Default |
|---|---|---|
| MP4 | H.264, HEVC, copy, no-video | H.264 |
| WebM | VP8, VP9, no-video | VP9 |
| MPEG-TS | H.264, HEVC, copy, no-video | H.264 |
| MOV | H.264, HEVC, DNxHD, ProRes, ProRes KS, copy, no-video | H.264 |
Codec/container combinations outside this table are rejected during validation rather than being passed optimistically to FFmpeg.
Audio codec contract inside video containers
| Container | Supported audio codecs | Default |
|---|---|---|
| MP4 | AAC, AC-3, copy, no-audio | AAC |
| WebM | Vorbis, no-audio | Vorbis |
| MPEG-TS | AAC, AC-3, MP2, copy, no-audio | AAC |
| MOV | AAC, AC-3, PCM S16LE (pcm / pcm-s16le), PCM A-law, PCM U8, copy, no-audio | AAC |
copy is intentionally source-dependent: the source stream must already be legal for the destination container. The validation suite verifies copy using its known H.264/AAC fixture.
Standalone audio containers
| Container | Supported codecs | Default |
|---|---|---|
| OGG | Vorbis | Vorbis |
| AAC | AAC | AAC |
| MP3 | MP3 | MP3 |
| WAV | PCM S16LE (pcm / pcm-s16le), PCM A-law, PCM U8 | PCM S16LE |
Legacy tokens that do not have a supported destination profile (for example AMR-NB, WMA2, FLAC, or Theora in the current container inventory) are rejected. A token being understood by an old FFmpeg mapping is not a production support promise.
H.264 profiles and pixel formats
The following H.264 combinations are explicitly generated and FFprobed:
vprofile | Required supported pix_fmt | Expected FFprobe profile |
|---|---|---|
baseline | yuv420p | Constrained Baseline |
main | yuv420p | Main |
high | yuv420p | High |
high10 | yuv420p10le | High 10 |
high422 | yuv422p | High 4:2:2 |
high444 | yuv444p10le | High 4:4:4 Predictive |
H.264 without an explicit profile also validates yuv422p and lets x264 select the matching profile automatically.
HEVC supports normal yuv420p and validated 10-bit yuv420p10le. vprofile and level are currently part of the supported H.264 contract only.
DNxHD
DNxHD is intentionally not advertised as an arbitrary codec/resolution combination. The supported profile is:
- MOV
- 1280×720
- 25 fps
- 90 Mbps
yuv422p- PCM S16LE audio
Other DNxHD combinations are rejected until they are explicitly validated.
Resolution profiles
Landscape H.264 validation runs every accepted preset and verifies the actual output dimensions with FFprobe:
144p, 240p, 360p, 480p, 540p, 576p, 720p, 1080p, 1440p, 2160p, 4k, plus custom WxH.
Portrait input is tested separately so preset scaling is verified to preserve orientation.
4k is explicitly parsed as a resolution, not as a 4k bitrate token.
Frame-rate profiles
0fps, 15fps, 23.98fps, 25fps, 29.97fps, 30fps, 60fps.
0fps means preserve the source frame rate. It must not emit FFmpeg -r 0.
Encoding options
The validation suite verifies real artifacts for:
- quality/CRF + maxrate on H.264, HEVC, VP8, and VP9
- H.264 profile and level
- supported H.264/HEVC pixel formats
- fragmented MP4 with a real
moofatom - H.264 two-pass
- HEVC two-pass
- watermark / transpose / flip / crop / trim operations
Two-pass is accepted only for H.264/HEVC, requires a video bitrate in the resolved output, and cannot be combined with quality/CRF mode.
Audio properties
Sample-rate validation covers 8000, 11025, 22050, 44100, and 48000 Hz.
Mono and stereo are asserted directly. multi is tested with a generated 5.1 source and must preserve six channels.
PCM codecs do not accept bitrate settings because that option is meaningless for these uncompressed profiles.
Image profiles
- JPEG
- PNG
- WebP
- GIF
- WebP with automatic height (
400x) - animated WebP scene extraction
- number / interval / offset thumbnails
- sprite generation and VTT output
Streaming profiles
The real integration suite verifies:
- video-only HTTP-stream variants
- audio-only variants
- mixed audio/video variants
- HLS packaging
- DASH + HLS fMP4 packaging
- AES-128 HLS post-encryption
Generated manifests and referenced files must exist and be non-empty. HLS media segments are probed with FFprobe.
Release commands
Media-only validation:
make test-transcodingFull release gate with PostgreSQL available:
make test-releaseThere is deliberately no line-coverage requirement. The release criterion is that every advertised profile produces the expected media artifact and that the real job/infrastructure workflows pass.