Files
abdulive/docs/offene-punkte.md
T

4.2 KiB

Offene Punkte

Stand 2026-09-09. Sortiert nach Dringlichkeit, nicht nach Aufwand. Erledigtes wandert raus, nicht ins Archiv — die Historie steht in Git.

Blockiert, bis jemand am Stream-PC sitzt

  • S2 abnehmen. Der obs-websocket-Client ist gebaut und getestet, soweit es ohne OBS geht: Anmeldeverfahren, Pfadübersetzung, Warten auf die fertige Datei. Ungeprüft ist das tatsächliche Gespräch mit einem laufenden OBS. Bis dahin ist !clip nicht bewiesen.
  • Strecke IRC → Datenbank im Livebetrieb. Die Teile sind einzeln getestet, die Verdrahtung wird erst beim ersten echten Stream sichtbar.
  • Layout umstellen nach obs-layout.md und danach calibrate laufen lassen.

Bekannte Lücke im Betrieb

  • Aufräumen im Arbeits-Volume. Jede Rohdatei landet unter /work/<clipId>/ und bleibt dort liegen. Bei fünf Clips pro Stream und mehreren hundert MB je Datei läuft das Volume in wenigen Wochen voll. Gebraucht wird eine Aufbewahrungsregel — Vorschlag: Rohdateien der letzten 30 Clips behalten, ältere löschen, sobald status = 'rendered'. Das ist der Punkt, der als Erstes weh tun wird.
  • Was passiert, wenn der Rechner mitten im Rendern ausgeht? Clips bleiben auf status = 'raw' stehen und werden nach Neustart nicht wieder eingereiht.

Untertitel verbessern

Der Durchlauf am echten Clip war brauchbar, aber nicht gut. Was auffiel:

  • Größeres Modell testen. ggml-small machte aus „Danke" ein „Dank es" und aus „Sabrina" ein „Savina". medium ist etwa dreimal so langsam — bei 30-Sekunden-Clips nach dem Stream ist das egal. Vergleich an demselben Clip fahren und entscheiden.
  • Wörter mit niedriger Wahrscheinlichkeit prüfen. Whisper liefert je Token ein p. Bei den Fehlgriffen lag es unter 0,15, bei korrekten Wörtern über 0,9. Entweder weglassen oder gedimmt anzeigen.
  • Schrift. DejaVu Sans ist im Image vorhanden, aber unauffällig. Auf Shorts trägt eine fettere, rundere Schrift (Montserrat ExtraBold, Inter Black). Braucht eine Schriftdatei im Image und eine Lizenzprüfung.
  • Nur das aktuelle Wort hervorheben statt fortlaufend einzufärben. Der heutige Karaoke-Effekt lässt gesprochene Wörter gefärbt stehen; der Stil, der auf TikTok funktioniert, hebt genau ein Wort hervor. Braucht mehrere Dialogzeilen je Zeile statt einer.
  • Position prüfen. 340 px Abstand nach unten ist geschätzt, nicht gemessen. An einem echten Handy gegen die TikTok-, Reels- und Shorts-Oberfläche halten.
  • Nur transkribieren, wenn Abdu spricht. Bei getrennten Tonspuren reicht ein Pegelfilter auf der Mikrofonspur, damit aus Stille kein erfundener Text wird.

Streamsetup

  • Live-Captions verschieben. Sie liegen im Gameplay-Band und sind fest eingebrannt. Zwei Vorschläge stehen in obs-layout.md.
  • Spieluntertitel abschalten.
  • Bessere Bildquelle für die Facecam — Plugin Source Record oder Aitum Vertical. Damit entfällt die 2,25-fache Vergrößerung. Lohnt sich erst, wenn regelmäßig Shorts entstehen.

Nach dem MVP

  • Spitzen-Erkennung scharf schalten. Sie läuft mit und schreibt jeden Kandidaten samt Punktzahl in events. Sobald ein paar Streams protokolliert sind: an echten Daten kalibrieren, dann armed: true.
  • Automatischer Upload zu TikTok und YouTube.
  • EventSub für Follows, Subs, Raids — bisher reicht IRC plus Polling.
  • Follower-Prüfung bei !clip, falls die Abklingzeiten nicht reichen.
  • Die übrigen acht Werkzeuge, siehe 04-roadmap.md.

Kleinigkeiten

  • docker compose run reicht ein TTY durch, dadurch schreibt die Fortschrittsanzeige \r-Zeilen ins Protokoll. Mit -T sauber, aber unschön als Standard.
  • ldconfig meldet beim Bauen libwhisper.so.1 is not a symbolic link. Funktioniert, ist aber unsauber.
  • docs/05-setup.md nennt ffmpeg 6+; im Image steckt 5.1.9 aus Debian bookworm. Für unseren Filtergraph irrelevant, die Angabe stimmt trotzdem nicht.