Try   HackMD

Videostudio für Lehrende

Aufbau eines Self-Recording-Studios für Lehrende.

Grundideen

  • Lehrende sollen ein Studio buchen können
    • Das Studio MUSS vorher gebucht werden
    • Es DARF KEINEN freien Zugang (ohne Buchung) geben
  • Lehrende sollen einfach Aufzeichnungen machen können
    • Lehrende MÜSSEN die Aufzaichnung selbst starten können
    • Lehrende MÜSSEN die Aufzaichnung selbst stoppen können
    • Aufzeichnungen MÜSSEN automatisch zu Opencast hochgeladen werden
  • Es soll drei identische Studios geben
  • Videosstreams werden gemischt aufgezeichnet und live zur Vorschau dargestellt
    • Kameraaufzeichnung
    • Bildschirmaufzeichnung
  • Metadaten MÜSSEN vorher festgelegt werden
    • Sie werden beim Buchen festlegen
    • Damit wird die aufzeichnende Person festgelegt und dieser Person die Aufzeichnung zugeordnet
  • Metadaten KÖNNEN später in Opencast aktualisiert werden
  • Mehrere Aufzeichnungen in der gebuchten Zeit MÜSSEN möglich sein

Zeitplan

Einrichtung der Studios bis August 2021.

Buchung

Über Opencast planen

Jedes Studio registriert sich selbst als Capture Agent in Opencast. So können Aufzeichnungen für die jeweiligen Studios geplant werden.

Bucht ein Lehrender ein Studio, so werden folgende Schritte durchgeführt:

  • Es wird in Opencast eine neue Aufzeichnung geplant
  • Metadaten werden in Opencast mit eingegeben
  • Die Aufzeichnung wird der Person zugeordnet

Aufzeichnungsplanung in Opencast

Aufzeichnungssteuerung

Lehrende sollen mit der Aufzeichnungshardware möglichst wenig interagieren:

  • Buchungsdetails werden Angezeicht um zu verifizieren, dass es ihre Aufzeichnung ist
  • Sie starten und stoppen Aufzeichnungen.

Aufzeichnung über Opencast

Folgendes beschreibt einen Ablauf einer Aufzeichnungsplanung via Opencast:

  • Lehrender meldet sich bei der Studioverwaltung
  • Aufzeichnung wird in Opencast geplant
    • Startzeit vergeben
    • Maximale Endzeit vergeben
    • Metadaten (Titel, …) vergeben
  • Studiosoftware holt sich die Liste geplanter Aufzeichnungen
    • Angezeigt wird, wann die nächste Aufzeichnung stattfindet
      Nächste Aufzeichnung
    • Zwischen Start- und Endzeit werden die Metadaten der Aufzeichnung angezeigt
      Anzeige der Metadaten
  • Der Lehrende betritt das Studio und überprüft die Metadaten
  • Die folgenden Schritte können sich beliebig oft wiederholen bis die Endzeit erreicht ist
    • Der Lehrende startet die Aufzeichnung via Elgato Streamdeck
      • Es wird „Aufzeichnung läuft“ angezeigt
      • Es wird an Opencast gemeldet, dass die Aufzeichnung des geplanten Events läuft (nur bei der ersten Aufzeichnung)
    • Der Lehrende Stoppt die Aufzeichnung via Elgato Streamdeck
      • Es wird wieder „Bereit für Aufzeichnung“ angezeigt
    • Die Aufzeichnung wird automatisch zu Opencast hochgeladen
      • Der erste Upload ist die geplante Aufzeichnung in Opencast
        • Überschreibt die geplante Aufzeichnung
        • Übernimmt alle Metadaten
      • Folgende Uploads erzeugen neue Events
        • Übernahme aller Metadaten
        • Übernahme der Zugriffskontrolle
        • Änderung des Titels durch Anhängen der Nummer der laufenden Aufzeichnung
          • new_title = titel + " " + i

Nutzung von pyCA

PyCA ist ein Opencast Capture Agent für automatisierte Aufzeichnungen. Die Software besteht aus mehreren Komponenten die für ein „pyCA Studio“ teils übernommen werden können, teils umgeschrieben werden müssen.

Übernommen werden können:

  • Interaktion mit Opencast
    • Registrieren als Capture Agent
    • Download und Speicherung der Aufzeichnungsplanung
    • Übernahme von Metadaten
    • Upload von Aufzeichnungen
  • Interaktion mit Aufzeichnungstools/-hardware
    • Starten der Aufzeichnungskommandos
  • Management Web-Interface
    • Aufzeichnungsstatus
    • Status von Planungen
    • Status der Hardware

Fehlende Komponenten bzw. Erweiterungen

  • Manuelles Starten von Aufzeichnungen (~8h)
    • Aufzeichnung zur Startzeit freigeben
      • Aufzeichnungsdauer auf Maximallänge setzen
    • Auf Eingabe (Stream Deck) reagieren
    • Technische Änderungen
      • Freigabe von Events
        • Zusätzliche Datenbankspalte für Freigabe
          • Spalte allowed-to-start für Event
          • Eingabe setzt Feld auf true
        • …oder neuer Eventstatus
          • Event wird in Status ready-to-record überführt, wenn Startzeit erreicht ist
          • Streamdeck (oder andere Eingabe) setzt Status auf recording
      • Kommando zum Starten der Aufzeichnung
  • Manuelles Stoppen von Aufzeichnungen (~6h)
    • Technische Anforderung
      • Kommando zum Stoppen
      • Endzeit auf jetzt setzen
      • Direktes sigterm senden
  • Duplizieren von Aufzeichnungen (~3h)
    • Abändern von Titel/Identifier wenn schon aufgezeichnet wurde
  • Web-Interface zur Statusanzeige (~8h)
    • Ohne Authentifizierung
    • Anzeige des aktuellen Status
    • Anzeige der nächsten Planung
    • Erweiterung des aktuellen Interfaces
      • Getrennte Authentifizierung
  • Steuerung von Web-API (4h)
    • Kommunikation mit Aufzeichnungshardware via HTTP
      • Alternative zu Unix Signals
  • Anbindung von „Stream Deck“
    • Bilder setzen
    • Auf Tastendruck reagieren
    • Kommandos absetzen
  • Bugfixing/Testen/Integration (12h)
    • Irgendetwas ist immer

Aufzeichnung mit OBS Studio

Bei Bedarf genauer spezifizieren…

OBS Studio ist eine populäre Software zur Aufzeichnung von Videos. OBS lässt sich mit Stream Deck steuern. Eine experimentelle Integration zum Upload in Opencast existiert.

  • OBS Funktionen inkl. Vorschau und Start-/Stoppfunktionen künnen genutzt werden
  • Keine Freigabe von Aufzeichnungen
    • Es kann unabhängig von Buchungen aufgezeichnet werden
  • Beim Upload könnte Opencast abgefragt werden
    • Metadaten abfragen und für Upload nutzen
  • Metadatenanzeige existiert nicht
  • Uploadanzeige existiert nicht

Aufzeichnungshardware

Wie wird der Videostream aufgezeichnet

Video4Linux

Videostreams, die per Video4Linux verfügbar sind können mit FFmpeg oder GStreamer aufgezeichnet und via pyCA kontrolliert werden.

Video4Linux-Treiber gibt es für einige PCIe-Karten und für alle USB-UVC Geräte:

Aufzeichnung mit Hardware

Manche Geräte wie die Epiphan Perl können via API gesteuert werden. Das könnte pyCA zur Aufzeichnung nutzen. Eventuell lohnt sich soetwas um einen Videomischer zu sparen?