Back to Blog
Use Cases

Your LMS Can Record Video Now. Here's How We Made It Trivial.

Moodle, Canvas, and every LMS want video assignments but can't justify building the infrastructure. VIDTREO's open-source plugin adds video recording to Moodle assignments in minutes — no server-side processing, no storage headaches.

Christian Segovia March 24, 2026 7 min read

TL;DR

  • Every LMS wants video assignments but none want to build the infrastructure.
  • We built an open-source Moodle plugin that adds video recording to assignments — students record in-browser, teachers grade inline.
  • No files touch the Moodle server. Video transcodes in the browser and uploads directly to Vidtreo’s edge network.
  • The plugin is free (GPL v3, required by Moodle). The video infrastructure costs $0.01/minute.
  • Canvas, Google Classroom, and more integrations are coming.

The Problem Every LMS Has

Talk to any EdTech team building on Moodle, Canvas, or Blackboard. Ask them about video assignments. You’ll hear the same story:

“We’d love to add video submissions. Our teachers want oral exams, presentation assessments, language practice, portfolio reviews. But building video recording into an LMS is a nightmare.”

Here’s why:

Storage explodes. A single 3-minute video at 720p is ~50MB as WebM. A class of 30 students submitting one video assignment is 1.5GB. Ten assignments per semester across 500 courses? You’re looking at terabytes of storage on your Moodle server — storage that was designed for PDFs and Word docs, not video.

Server-side transcoding is expensive. Raw browser recordings need processing before playback. That means ffmpeg, worker queues, CPU-intensive jobs running on your LMS server — the same server that’s supposed to handle 2,000 concurrent students during exam week.

Mobile is chaos. iOS Safari, Android Chrome, tablets in classroom Wi-Fi — each with different camera APIs, permission models, and bandwidth constraints. Most LMS video plugins just give up on mobile.

Maintenance never ends. Browser APIs change. Moodle updates break things. Codec support shifts. A video plugin built in-house becomes a permanent engineering obligation.

The result? Most LMS deployments punt on video entirely. Students submit text. Teachers miss the richest assessment signal available.

How We Solved It

We built a Moodle plugin that separates the concerns cleanly:

Moodle handles what Moodle is good at — assignments, grading workflow, permissions, course structure, GDPR compliance.

Vidtreo handles what Vidtreo is good at — video capture, browser-native transcoding, upload, storage, delivery, and AI transcription.

The plugin is a thin integration layer. No video files ever touch the Moodle server.

Student's browser → Records video
                  → Transcodes to MP4 in-browser (WebCodecs)
                  → Uploads directly to Vidtreo (Cloudflare R2)
                  → Returns recording ID to Moodle

Moodle stores: recording ID, duration, status (< 1KB per submission)
Vidtreo stores: the actual video file + AI transcript

When a teacher opens the grading view, the Vidtreo Player loads the video directly from the edge network. No Moodle server bandwidth consumed. No disk space used.

What Teachers and Students See

Student submits a video assignment

  1. Teacher creates an assignment and checks “VIDTREO Recorder” as a submission type
  2. Student opens the assignment — the recorder appears inline, right in the submission form
  3. Student records from camera or screen (with pause, mute, device switching)
  4. Upload happens automatically with a progress bar
  5. Student clicks Submit — done

No app to install. No file to download and re-upload. No leaving Moodle.

Teacher grades the submission

  1. Teacher opens the grading panel
  2. Video plays inline — no external links, no downloads, no new tabs
  3. Duration and status are shown as metadata
  4. Teacher assigns grade, writes feedback, moves to the next student

The entire workflow stays inside Moodle. The video infrastructure is invisible.

Why This Architecture Matters

Zero impact on Moodle server

Traditional video plugins save recordings to Moodle’s filesystem. A university with 10,000 students doing video assignments quickly needs 10-50TB of additional storage. With Vidtreo, Moodle stores a recording ID — a string. The server load difference is orders of magnitude.

Browser-native transcoding

Most video solutions record in WebM format and either serve it as-is (compatibility issues) or transcode server-side (expensive). VIDTREO Recorder uses WebCodecs to transcode to MP4 in real-time, directly in the student’s browser. The file that uploads is already a compact, playable MP4. No server processing needed.

Works on mobile

Students can record from their phone browser. The recorder detects the device and adapts — overlay mode for focused recording, native camera handoff for iOS Safari. No app required.

GDPR and privacy built in

The plugin implements Moodle’s Privacy API:

  • Declares exactly what data is stored locally and what is sent externally
  • Supports user data export requests
  • Supports user data deletion requests
  • External system declaration for Vidtreo’s infrastructure

Universities in the EU can deploy this knowing the privacy pipeline is documented and auditable.

Backup and restore

Course migrations preserve all video submission references. When a teacher copies a course to a new semester, all recording links remain intact. Moodle backs up the metadata; Vidtreo retains the videos.

The Numbers

ScenarioTraditional LMS VideoWith Vidtreo
Server storage per 1,000 videos (3 min avg)~50 GB~0 MB (recording IDs only)
Server CPU for transcodingHigh (ffmpeg queues)Zero (browser-side)
Cost per minute of video$0.05-0.20 (server + storage)$0.01 (all-inclusive)
Mobile compatibilityPartialFull (iOS, Android, tablets)
AI transcriptionNot includedIncluded
Time to integrateWeeks-monthsMinutes (plugin install)

For a university processing 50,000 video minutes per semester: $500 total with Vidtreo vs. $2,500-10,000 with traditional infrastructure — plus the engineering time to build and maintain it.

Open Source, Pay-As-You-Go

The plugin is GPL v3 — required by Moodle’s plugin directory. Completely open source. Any institution can inspect the code, audit the privacy implementation, and contribute improvements.

The video infrastructure behind it runs on Vidtreo’s pay-as-you-go model:

  • $0.01/minute for HD video recording, storage, and delivery
  • AI transcription included — every recording gets a searchable transcript
  • No monthly minimums — pay only for what students record
  • $1 free credit to prototype — enough for ~100 student recordings

A small department piloting video assignments might spend $5-10/month. A large university doing it at scale might spend $500/semester. Either way, it’s a fraction of building and maintaining video infrastructure in-house.

Beyond Moodle

Moodle is the first integration. The same architecture — thin plugin, Web Components, direct upload — works for any LMS:

PlatformStatusIntegration Type
Moodle 4.4+v1.0.0Assignment submission plugin
CanvasPlannedLTI 1.3 integration
Google ClassroomPlannedGoogle Workspace Add-on
BlackboardPlannedBuilding Block / LTI
WordPress (LearnDash, Tutor LMS)PlannedWordPress plugin

Every LMS gets the same capabilities: browser-based recording, zero server load, AI transcription, mobile support. The plugin is the thin adapter. Vidtreo is the engine.

Get Started

For Moodle administrators:

  1. Download the plugin from GitHub
  2. Install via Site Administration → Plugins
  3. Enter your Vidtreo API key (get one free at app.vidtreo.com)
  4. Enable on any assignment

For EdTech companies building on LMS platforms: If you’re building a product that runs inside Moodle, Canvas, or any LMS and you need video — talk to us. The SDK works anywhere a browser runs.


Try it: vidtreo.com · Plugin documentation

Building on a different LMS? Let us know which platform matters to you — we’re prioritizing integrations based on demand.

Share this article