Transcoding is the process of decoding a source video file and re-encoding it into one or more output formats, codecs, resolutions, and bitrates that are suited for delivery over the web to heterogeneous devices. In a learning video pipeline, transcoding has two main purposes: producing the rendition ladder required for adaptive bitrate (ABR) streaming — typically three to five quality levels in HLS or DASH format — and ensuring codec compatibility across browsers and devices, since a source file might be ProRes, H.265, or VP9 but the web player expects H.264 in an MP4 or fMP4 container. Transcoding is computationally intensive and is almost always handled by a dedicated cloud service rather than the application server: AWS Elemental MediaConvert, Google Transcoder API, Mux, Cloudflare Stream, and FFmpeg-based self-hosted pipelines are common choices. The quality of the transcoding job — the choice of encoding preset, CRF or CBR mode, keyframe interval, and audio normalisation settings — directly affects both playback smoothness and the accuracy of ABR segment switching. A keyframe interval that is too long will cause ABR switches to wait for the next keyframe, introducing stutter; for HLS, a two-second segment duration aligned with keyframes is the common practice. Transcoding also creates the opportunity to normalise audio loudness, add burn-in captions for compatibility, and inject chapter markers, making it a natural integration point for accessibility post-processing. A practical consideration for learning platforms is that transcoding jobs must be orchestrated asynchronously: the upload API should return immediately while the job runs in a queue, and the LMS course record should be updated only once the output renditions are confirmed ready.

