Overview
Jellyfin’s transcoding system converts media files in real-time to formats compatible with client devices. The transcoding engine supports extensive customization of output parameters including codecs, bitrates, resolutions, and more.Transcoding Parameters
Video Codec Parameters
Specify the video codec to encode to. Common values:
h264- H.264/AVC (widely compatible)hevc- H.265/HEVC (better compression)vp9- VP9 (open format)av1- AV1 (next-gen codec)
Specify an encoder profile (varies by encoder):
- H.264:
baseline,main,high - HEVC:
main,main10
Specify a level for the encoder profile:
- Examples:
3.0,3.1,4.0,4.1,5.0,5.1
Whether to require AVC (H.264) encoding
Video Quality Parameters
Specify a video bitrate to encode to in bits per second:
- SD (480p):
1500000(1.5 Mbps) - HD (720p):
3000000(3 Mbps) - Full HD (1080p):
5000000(5 Mbps) - 4K (2160p):
15000000(15 Mbps)
The maximum video bit depth (8, 10, 12). Higher values provide better color accuracy but require more bandwidth.
The maximum number of reference frames. More reference frames improve compression but increase decode complexity.
Resolution Parameters
The fixed horizontal resolution of the encoded video in pixels. Use this when you need an exact output size.
The fixed vertical resolution of the encoded video in pixels.
The maximum horizontal resolution. The video will be downscaled if it exceeds this width while maintaining aspect ratio.
The maximum vertical resolution. The video will be downscaled if it exceeds this height while maintaining aspect ratio.
- 480p SD: 720x480 (16:9) or 640x480 (4:3)
- 720p HD: 1280x720
- 1080p Full HD: 1920x1080
- 1440p QHD: 2560x1440
- 4K UHD: 3840x2160
Frame Rate Parameters
A specific video framerate to encode to (e.g.,
23.976, 24, 25, 29.97, 30, 50, 59.94, 60)Generally this should be omitted unless the device has specific requirements.A specific maximum video framerate. Video will be downsampled if it exceeds this rate.
Audio Codec Parameters
Specify the audio codec to encode to. Common values:
aac- Advanced Audio Coding (widely compatible)mp3- MPEG Audio Layer 3 (universal compatibility)opus- Opus (excellent quality/compression)ac3- Dolby Digitaleac3- Dolby Digital Plusflac- Free Lossless Audio Codecvorbis- Ogg Vorbis
Specify an audio bitrate to encode to in bits per second:
- Low quality:
64000(64 kbps) - Standard quality:
128000(128 kbps) - High quality:
192000(192 kbps) - Very high quality:
256000(256 kbps) - Lossless: Use codec default
Audio Channel Parameters
Specify a specific number of audio channels to encode to:
1- Mono2- Stereo6- 5.1 Surround8- 7.1 Surround
Specify a maximum number of audio channels. Audio will be downmixed if it exceeds this value.
The maximum number of audio channels to transcode (different from maxAudioChannels as it affects transcode decision)
Specify a specific audio sample rate in Hz:
44100- CD quality48000- Standard professional audio96000- High resolution audio
The maximum audio bit depth (16, 24, 32). Higher values provide better dynamic range but require more bandwidth.
Whether to enable Audio VBR (Variable Bit Rate) Encoding. VBR provides better quality at the same average bitrate.
Container Parameters
The output container format:
- Video: mp4, mkv, webm, ts, avi, mov
- Audio: mp3, aac, flac, opus, ogg, m4a
The segment container for HLS streaming:
ts- MPEG-TS (more compatible)fmp4- Fragmented MP4 (better compression)
Processing Parameters
Whether to deinterlace the video. Required for interlaced content (1080i, 480i) to display properly on progressive displays.
Whether to require a non-anamorphic stream. Anamorphic video uses non-square pixels that require display-side scaling.
The limit of how many CPU cores to use during transcoding. Useful for limiting server load.
Stream Copy Parameters
Whether to allow automatic stream copy if requested values match the original source. Stream copy avoids transcoding when possible, reducing server load and improving quality.
Whether to allow copying of the video stream without transcoding.
Whether to allow copying of the audio stream without transcoding.
Timestamp Parameters
Whether to copy timestamps when transcoding with an offset. Important for maintaining proper timing when starting from a non-zero position.
Specify a starting offset in ticks. 1 tick = 10,000 microseconds = 0.01 milliseconds.Example: To start at 5 minutes:
5 * 60 * 1000 * 10000 = 3000000000 ticksSubtitle Parameters
The index of the subtitle stream to use. If omitted, no subtitles will be included.
Specify the subtitle delivery method:
Encode- Burn subtitles into video (always visible, no client support needed)Embed- Include as a separate stream (client must support format)External- Serve as separate file (maximum compatibility)Hls- Include in HLS playlist
Specify a subtitle codec to encode to:
srt- SubRipass- Advanced SubStation Alphavtt- WebVTTsubrip- SubRip format
Advanced Parameters
Comma-separated list of reasons for transcoding. This is typically set automatically by the server. Possible values include:
ContainerNotSupportedVideoCodecNotSupportedAudioCodecNotSupportedSubtitleCodecNotSupportedAudioIsExternalSecondaryAudioNotSupportedVideoProfileNotSupportedVideoLevelNotSupportedVideoResolutionNotSupportedVideoBitDepthNotSupportedVideoFramerateNotSupportedRefFramesNotSupportedAnamorphicVideoNotSupportedInterlacedVideoNotSupportedAudioChannelsNotSupportedAudioProfileNotSupportedAudioSampleRateNotSupportedAudioBitDepthNotSupportedContainerBitrateExceedsLimitVideoBitrateNotSupportedAudioBitrateNotSupportedUnknownVideoStreamInfoUnknownAudioStreamInfoDirectPlayErrorVideoRangeTypeNotSupported
The index of the audio stream to use. If omitted, the first audio stream will be used.
The index of the video stream to use. If omitted, the first video stream will be used.
The encoding context:
Streaming- For real-time streamingStatic- For static file delivery
Dictionary of additional streaming options as key-value pairs.
Whether to enable the MPEG-TS M2TS mode (used for certain Blu-ray formats).
Example: High-Quality 1080p Transcode
Example: Low-Bandwidth Mobile Transcode
Transcoding Best Practices
Server Performance
- Hardware Acceleration: Use hardware acceleration (Intel Quick Sync, NVIDIA NVENC, AMD VCE) when available to reduce CPU load
- CPU Limits: Set
cpuCoreLimitto prevent transcoding from consuming all server resources - Stream Copy: Enable stream copy parameters to avoid unnecessary transcoding
Quality Optimization
- Bitrate Matching: Match bitrates to content type (animation can use lower bitrates than live action)
- Resolution Scaling: Only scale down, never up (use
maxWidth/maxHeightinstead of fixed dimensions) - Frame Rate: Don’t increase frame rate; only maintain or reduce it
- Audio: Use AAC for best compatibility; Opus for best quality/size ratio
Compatibility
-
Codec Selection:
- Most Compatible: H.264 Main Profile + AAC
- Modern Devices: H.265 Main + AAC
- Web Browsers: VP9 + Opus (WebM) or H.264 + AAC (MP4)
-
Container Selection:
- Most Compatible: MP4
- Streaming: HLS (TS or fMP4 segments)
- High Quality: MKV
Bandwidth Considerations
Recommended bitrates by resolution:| Resolution | Video Bitrate | Audio Bitrate | Total Bandwidth |
|---|---|---|---|
| 480p | 1.5 Mbps | 128 kbps | ~2 Mbps |
| 720p | 3 Mbps | 192 kbps | ~4 Mbps |
| 1080p | 5 Mbps | 192 kbps | ~6 Mbps |
| 1080p HQ | 8 Mbps | 256 kbps | ~9 Mbps |
| 4K | 15-25 Mbps | 256 kbps | ~20-30 Mbps |