Lectern

A native screen recorder and non-linear editor for teachers and course creators, built on a C++23 engine.

Own product (working title)

The problem

Most screen recordings flatten the screen, camera and voice into one picture. Moving the camera or changing the layout later usually means recording again.

The solution

Screen, cameras, microphone and system audio are recorded as separate, synchronized tracks. A Qt-free C++23 engine owns capture, timeline and rendering, and one compositor and one audio mixer serve both preview and export, so what you see and hear is what you export.

Objective

Give teachers a recorder and editor where the layout can change after recording, without re-recording anything.

Who it was for

Own product (working title)

How it was built

  1. Wrote the architecture first: recording engine, timeline engine, rendering pipeline and project format each have their own document.

  2. Built crash-safe recording with automatic recovery and a command-line recorder, lectern-rec.

  3. Added the editing engine: split, trim, ripple delete, layouts by section, undo and redo, markers.

  4. Added the compositor, real-time playback, creator tools (text, subtitles, overlays, effects, colour, audio mix) and MP4 export.

Technology and tools

C++23Qt 6 QuickFFmpegObjective-C++CMakeGoogleTest

Status and results

  • 155 unit and integration tests in the repository
  • Recording, editing and MP4 export verified on macOS
  • Windows backends written and compile-checked, not yet run on Windows

Related services