Why Video Format Decisions Are Harder in eLearning
Publishing a video on YouTube is forgiving. Google handles transcoding, CDN delivery, and adaptive bitrate streaming automatically. Your learner gets 1080p on fast fiber and 360p on a shaky 4G connection, and the transition is seamless.
LMS platforms offer no such luxury. When you upload a video to Moodle, Canvas, or Blackboard, the platform stores and serves it largely as-is. Your learners play it through whatever browser or app their organization supports — often an enterprise-managed browser locked to a specific version, on a corporate VPN that throttles bandwidth unpredictably. A 4K video at 20 Mbps that plays flawlessly on your MacBook turns into a buffering nightmare for a learner on a company laptop in a satellite office.
Add compliance requirements (WCAG captions, SCORM tracking), LMS file size caps, and the reality that many corporate learners watch on mobile during commutes, and you have a genuinely constrained format problem with real consequences for learning outcomes.
Getting the format right from the start saves considerable rework.
The Recommended Foundation: MP4/H.264
Every major LMS platform supports MP4 with H.264 video and AAC audio. No exceptions. It is the single format you can upload with confidence and know it will play.
H.265 (HEVC) offers roughly 30-40% better compression than H.264 at equivalent quality — a meaningful advantage for large course libraries. But H.265 browser support inside LMS iframes is inconsistent. Most LMS platforms embed video in HTML5 <video> elements within iframes, and the codec decode path in that context depends on the browser and OS. Safari on macOS handles H.265 natively via hardware decode, but Chrome and Firefox on Windows often do not, requiring software decoding that strains older corporate hardware. In a SCORM package, where you have even less control over the playback environment, H.265 is an unnecessary risk.
Stick with H.264 for LMS and SCORM delivery. Reserve H.265 for archival copies or direct streaming platforms where you can validate client capabilities.
AV1 is even less appropriate for eLearning in 2026. Hardware decode support is limited in enterprise environments, and software AV1 decoding on older machines significantly impacts battery life and performance — exactly the conditions corporate learners face on company-issued laptops.
Resolution and Bitrate Recommendations
Bitrate is the dominant variable in eLearning video performance. Learners on corporate VPNs typically experience 2-10 Mbps of available bandwidth, shared across VPN overhead, other applications, and any concurrent traffic.
| Resolution | Audience | Target Bitrate | Max Bitrate | Audio |
|---|---|---|---|---|
| 1920x1080 | Desktop-primary, under 50% mobile | 3-4 Mbps | 6 Mbps | 128 kbps |
| 1280x720 | Mixed desktop/mobile | 1.5-2.5 Mbps | 4 Mbps | 128 kbps |
| 1280x720 | Mobile-first | 1-2 Mbps | 3 Mbps | 96 kbps |
| 854x480 | Low-bandwidth focus | 600-900 kbps | 1.5 Mbps | 96 kbps |
For most corporate eLearning content — screen recordings, talking head presentations, slideshow-style lectures — 720p at 2 Mbps is the practical optimum. It looks sharp on 1080p monitors, streams reliably on 4G mobile, and does not punish learners behind bandwidth-constrained VPNs.
Full HD 1080p makes sense for high-production courses (live action demonstrations, lab walkthroughs, onboarding videos meant to impress) where visual clarity carries instructional value. At 4 Mbps, a 1080p lecture recording looks excellent. Going above 6 Mbps for H.264 at 1080p rarely produces visible improvement and significantly increases delivery risk.
Pro Tip: Screen recordings of software tools and code editors deserve special attention. Text legibility is critical, and H.264 compresses high-contrast text edges aggressively at low bitrates. For screen recording content, use a constant rate factor (CRF) of 18-20 rather than targeting a specific bitrate. This allocates more bits to detail-heavy frames automatically.
Audio Quality in eLearning
Audio quality affects learning outcomes more than most instructional designers realize. Studies on multimedia learning consistently show that poor audio (background noise, low volume, distortion) degrades comprehension even when learners consciously try to compensate.
Minimum audio specification: 128 kbps AAC, stereo. This handles clean narration, background music, and field audio without perceptible artifacts.
For narration-only content (voiceover slides, podcast-style learning), mono 96 kbps AAC is sufficient and reduces file size. Stereo matters for immersive content, spatial audio cues, and music.
Sample rate should be 44.1 kHz or 48 kHz. The LMS does not care which, but 48 kHz is the standard for video production and avoids unnecessary sample rate conversion during encoding.
Record at the highest quality you can manage. Compress on export. Trying to fix poor source audio during encoding is futile. A 256 kbps MP3 narration recorded in an echoey room sounds worse than 96 kbps AAC narration recorded in a treated space with a decent microphone.
H.264 Encoding Settings for LMS
The following FFmpeg command produces an LMS-optimized MP4 from a screen recording or lecture capture:
ffmpeg -i lecture_source.mov \
-c:v libx264 \
-preset slow \
-crf 20 \
-profile:v high \
-level 4.1 \
-movflags +faststart \
-c:a aac \
-b:a 128k \
-ar 44100 \
output_lms.mp4
Key flags explained:
-preset slow— slower encoding produces better compression at the same quality-crf 20— constant rate factor; lower = better quality, larger file. 18-22 is the eLearning sweet spot-profile:v high -level 4.1— ensures compatibility with hardware decoders in enterprise browsers-movflags +faststart— moves the MP4 moov atom to the front of the file, enabling playback to begin before the full file downloads-b:a 128k— 128 kbps audio bitrate
For batch conversion of an entire course library, the FFmpeg script scales across multiple files:
for f in *.mov *.mkv *.avi; do
base="${f%.*}"
ffmpeg -i "$f" \
-c:v libx264 -preset slow -crf 20 \
-profile:v high -level 4.1 \
-movflags +faststart \
-c:a aac -b:a 128k -ar 44100 \
"${base}_lms.mp4"
done
The -movflags +faststart flag is particularly important for LMS delivery. Without it, the browser must download the entire MP4 before playback can begin. With it, the player starts buffering immediately — a noticeable improvement for learners on slower connections.
You can also compress your course videos using the online tool for quick one-off conversions without the command line.
LMS Platform Comparison
Each major LMS platform has different file size limits, format preferences, and integration options for video.
| LMS Platform | Max Upload Size | Supported Formats | SCORM Version | Caption Format | Streaming Integration |
|---|---|---|---|---|---|
| Moodle | 100 MB (default) | MP4/H.264, WebM | 1.2 and 2004 | VTT, SRT | Kaltura, H5P |
| Canvas LMS | 500 MB | MP4/H.264, H.265, WebM | 1.2 and 2004 | VTT, SRT | Kaltura, Panopto, Studio |
| Blackboard (Ultra) | 250 MB | MP4/H.264, WMV | 1.2 | SRT | Mediasite, Kaltura |
| TalentLMS | 500 MB | MP4, WebM | 1.2 and 2004 | SRT, VTT | YouTube, Vimeo embed |
| Cornerstone OnDemand | 200 MB | MP4/H.264 | 1.2 (preferred) | SRT | Streaming via API |
| Docebo | 500 MB | MP4/H.264, WebM | 1.2 and 2004 | SRT, VTT | Kaltura, GoTo |
| SAP Litmos | 200 MB | MP4, WebM | 1.2 and 2004 | SRT | Streaming recommended |
| AbsorbLMS | 250 MB | MP4/H.264 | 1.2 and 2004 | VTT, SRT | Wistia, Kaltura |
Moodle's 100 MB default is a trap. Moodle administrators can raise this limit in php.ini and Moodle settings, but many installations run on the default. A 30-minute lecture at 4 Mbps runs to roughly 900 MB — an order of magnitude over the cap. Compress aggressively or use Moodle's built-in H5P video integration, which embeds videos from external sources rather than hosting them on the Moodle server.
Blackboard still defaults to SCORM 1.2. Despite the existence of SCORM 2004 and xAPI (Tin Can), Blackboard's tracking and reporting infrastructure works most reliably with SCORM 1.2. If you are authoring courses specifically for Blackboard deployments, default to SCORM 1.2 unless the organization specifically requests 2004 or xAPI.
Canvas's Kaltura and Panopto integrations are worth using for any organization with substantial video libraries. Both provide adaptive bitrate streaming inside Canvas, bypassing the 500 MB limit for hosted files. Kaltura automatically transcodes uploaded video to multiple bitrate/resolution variants and serves them dynamically based on learner bandwidth.
For trimming lecture recordings before LMS upload — removing dead air at the start, cutting post-class discussion that was accidentally captured — the video trimmer handles this without re-encoding.
SCORM 1.2 vs SCORM 2004: The Practical Choice
SCORM (Sharable Content Object Reference Model) packages video into self-contained ZIP archives that LMS platforms can track for completion, scoring, and progress.
SCORM 1.2 and SCORM 2004 are not meaningfully different in what they can track for video content. The relevant distinction is implementation reliability:
- SCORM 1.2 has been around since 2001. Every LMS supports it. Implementation bugs have been ironed out over two decades of deployment. Use SCORM 1.2 unless you have a specific reason not to.
- SCORM 2004 introduced improved sequencing and navigation rules and better progress tracking granularity. Most of these improvements do not matter for simple video-based courses. SCORM 2004 implementations vary significantly between LMS versions and have historically caused compatibility issues.
- xAPI (Tin Can) tracks a much richer set of learning interactions and works outside the LMS via a Learning Record Store (LRS). For compliance training requiring detailed audit trails, xAPI is increasingly preferred over SCORM.
For a video-based course with completion tracking (did the learner watch >80% of the video?), SCORM 1.2 does everything needed and works everywhere without surprises.
Inside a SCORM package, video is typically embedded in HTML5 using a standard <video> element referencing your MP4 file. The JavaScript SCORM API communicates completion to the LMS when the video reaches a defined playback threshold:
<video id="course-video" controls preload="metadata" style="width: 100%; max-width: 960px;">
<source src="lecture.mp4" type="video/mp4" />
<track kind="subtitles" src="lecture.vtt" srclang="en" label="English" default />
Your browser does not support HTML5 video.
</video>
const video = document.getElementById("course-video");
let completionMarked = false;
video.addEventListener("timeupdate", function () {
const progress = video.currentTime / video.duration;
if (progress >= 0.8 && !completionMarked) {
completionMarked = true;
// SCORM 1.2 completion
doLMSSetValue("cmi.core.lesson_status", "completed");
doLMSCommit("");
}
});
The completion threshold (80% in this example) is a common standard for compliance training. Organizations with stricter completion requirements often use 95-100%.
Pro Tip: Always include a preload="metadata" attribute on your <video> elements inside SCORM packages. This loads the video duration and first frame immediately without buffering the full video, which enables progress tracking to work correctly from the moment the learner opens the module. Without it, video.duration returns NaN until buffering begins, which can cause completion tracking bugs.
Closed Captions and WCAG 2.1 Compliance
WCAG 2.1 Level AA — the standard referenced by most accessibility laws and organizational accessibility policies — requires synchronized closed captions for all pre-recorded audio content in video. This is not optional for educational institutions receiving public funding, government agencies, or organizations subject to ADA, Section 508, or the European Accessibility Act.
Two caption formats are relevant for LMS delivery:
- VTT (WebVTT) is the native format for HTML5
<track>elements and the best choice for video embedded directly in HTML (SCORM packages, custom HTML5 courses, LMS-native players). - SRT is supported by most LMS platforms for uploaded caption files and is easier to author and edit than VTT.
VTT has a slight edge in LMS contexts because it works natively in HTML5 <video> elements without any additional processing, and it supports positioning and styling that can improve caption readability for complex video content (text over busy backgrounds, multilingual content).
For generating initial caption drafts, current speech-to-text tools (Whisper, Otter.ai, Descript) produce good starting-point transcripts at 85-95% accuracy for clear narration. Budget time for human review and correction — auto-generated captions alone do not meet WCAG Level AA without verification.
The how to add subtitles to video guide covers VTT and SRT creation and embedding in detail, including FFmpeg commands for burning in captions for platforms that do not support caption tracks.
Optimizing for Mobile eLearning
Mobile learning has moved from a nice-to-have to a core delivery channel. Learning management system mobile apps and responsive web LMS interfaces have improved substantially, but video optimization for mobile remains a distinct concern.
Key differences for mobile-first course design:
- Bandwidth varies dramatically. Learners on 4G in good coverage see 15-30 Mbps. Learners in buildings, elevators, or rural areas see 1-3 Mbps. Target 720p at 1.5-2 Mbps to serve both.
- Screen real estate is limited. 1080p video on a 6-inch phone screen is visually equivalent to 360p on a 32-inch monitor. The bitrate investment in high resolution does not improve the learning experience.
- Battery consumption matters. H.264 hardware decode is available on essentially every modern phone and is extremely efficient. H.265 has hardware decode on newer devices but not universally on older company-issued phones. Stick with H.264.
- Audio is often consumed via earphones. Mobile learners frequently use earphones in commute contexts. Audio quality and normalization matter more than in desktop-only scenarios. Normalize audio to -14 LUFS for consistent volume across modules.
To extract audio from video from recorded lectures for audio-only mobile versions, the extraction tool preserves audio quality from the source video.
Before You Upload: Pre-Flight Checklist
Before uploading video to your LMS, verify:
- Container: MP4 (
.mp4) - Video codec: H.264 (verify with
ffprobe -show_streams file.mp4) - Audio codec: AAC
- Audio bitrate: 128 kbps minimum
- Resolution: 1280x720 or 1920x1080
- Video bitrate: 1.5-4 Mbps depending on resolution
-
faststartflag: present (moov atom at file start) - Caption file: VTT or SRT, timing verified
- File size: within your LMS's upload limit
- Duration: match your SCORM completion threshold
Running ffprobe before upload catches format issues before they become learner-facing problems:
ffprobe -v quiet -print_format json -show_streams lecture.mp4 | \
python3 -c "import json,sys; d=json.load(sys.stdin); \
[print(s['codec_name'], s.get('bit_rate','?')) for s in d['streams']]"
This outputs the codec name and bitrate for each stream. You should see h264 and aac on the video and audio streams respectively.
Use the MP4 converter to repackage video in the correct container format, or the video converter hub to handle codec conversion when source footage is in an incompatible format.
Frequently Asked Questions
What video format does Moodle support?
Moodle natively supports MP4 with H.264 video and AAC audio. WebM (VP8/VP9) also plays in modern browsers. Avoid H.265, WMV, and MOV for Moodle uploads — these either do not play or play inconsistently depending on the learner's browser. Moodle's default upload limit is 100 MB, which administrators can increase in server configuration. For large video libraries, integrate with Kaltura or H5P to serve video externally.
Should I use SCORM 1.2 or SCORM 2004 for video courses?
SCORM 1.2 for the vast majority of video-based courses. It is universally supported, has no significant interoperability issues, and handles completion tracking for video content just as well as SCORM 2004. Use SCORM 2004 only if you need its specific sequencing or reporting capabilities, and have confirmed your LMS implementation supports it correctly. For compliance training requiring detailed audit logs, consider xAPI with a Learning Record Store instead.
Do I need to add captions to eLearning videos?
Yes, for any course deployed in a context subject to WCAG 2.1 Level AA, ADA, Section 508, or the European Accessibility Act. Practically, this covers educational institutions, government agencies, and most medium-to-large organizations with formal accessibility policies. Caption requirements apply to pre-recorded video with audio content. Use VTT or SRT format, verify timing accuracy, and include SDH-style descriptions (sound effects, speaker identification) for full compliance.
Why is my video buffering in the LMS even though I have a fast connection?
The likely cause is missing the faststart flag (moov atom at end of file) or excessive bitrate. Without faststart, the entire file must download before playback begins, regardless of connection speed. Verify the flag with ffprobe -v trace lecture.mp4 2>&1 | grep moov — the moov atom should appear before the mdat atom in the output. If it does not, re-encode with -movflags +faststart. If buffering persists, reduce bitrate by 20-30% and test again.
Can I use H.265 video in SCORM packages?
Technically H.265 can work in SCORM packages on platforms with hardware H.265 decode — macOS (Safari, Chrome), Windows with Intel 7th gen+ or NVIDIA GTX 10 series+. But in corporate eLearning, you cannot predict the learner's hardware configuration, and older company-issued machines often lack H.265 hardware decode. Software H.265 decode in a browser is CPU-intensive and unreliable on low-power devices. Use H.264 for all SCORM content until H.265 decode is ubiquitous in enterprise hardware — approximately 2028-2030 based on current refresh cycles.
Conclusion
LMS video delivery is a constrained problem with a clear solution: MP4 with H.264, 720p at 2 Mbps for mixed audiences, 1080p at 4 Mbps for desktop-primary high-production content, 128 kbps AAC audio, faststart enabled, and SCORM 1.2 for packaging. Closed captions in VTT format are not optional for organizations subject to accessibility requirements.
The technical choices exist to serve one outcome — learners getting through content without friction. Buffering, broken images, and accessibility barriers are not minor annoyances; they interrupt the learning experience at exactly the moments it matters most. Good format decisions are invisible to learners. Bad ones are not.
Use the video compressor to reduce file sizes within LMS upload limits, trim lecture recordings to remove dead time before upload, and the MP4 converter to repackage footage from cameras or screen recorders that output incompatible formats.
For deeper background on the codec and bitrate concepts referenced here, see our guides on best video format for streaming, video bitrate explained, and how to add subtitles to video.



