Skip to content

Ringpuffer: die letzten Sekunden aller Quellen sichern (#140 Schritt 5) - #148

Open
larszu wants to merge 1 commit into
mainfrom
feat/140-ringpuffer
Open

larszu wants to merge 1 commit into
mainfrom
feat/140-ringpuffer

Conversation

@larszu

@larszu larszu commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Teil von #140, Schritt 5 (Ringpuffer). Baut auf #146 auf.

Was

  • Dritter Ausgang im ffmpeg der Quelle (server/ring.mjs): Segmente von 2 s reihum (segment_wrap), Matroska, im Ordner .lzs-ring des freigegebenen Aufnahme-Ordners; Dateinamen je ffmpeg-Start, alte fallen aus dem Fenster und werden gelöscht, beim Abschalten wird der Ordner geleert. Jedes Segment beginnt mit Keyframe (Kopie: Muxer schneidet an Keyframes; ProRes/DNxHR/FFV1 intra; HEVC -force_key_frames).
  • Sichern: alle Ringe mit derselben Zeitmarke; Fenster je Quelle um die gemessene Latenz verschoben; Warten auf den Nachlauf, Segmente beiseite kopieren (COPYFILE_FICLONE), letzter Keyframe vor dem Fensteranfang per ffprobe, concat mit inpoint/outpoint, -c copy. Ergebnis <Datum-Uhrzeit>-ring/<Name>_ring.mkv + Begleitdatei mit Fenster und Markern.
  • UI: „Ring“ je Quelle in der Quellenkarte (bleibt an der Quelle gespeichert), „Ring sichern“ in der Kopfleiste (P; schmal im ⋯-Menü), Länge/Nachlauf in Einstellungen → Aufnahme.
  • Steuer-API ring, ring.save; Companion Aktionen Ring buffer / Save ring buffers, Feedback Ring buffer running, Preset.
  • Doku: README/README.de, control-api(.de), docs/research/aufzeichnung.md.

Geprüft

  • test/ring.test.ts: Fenster mit Latenz, Segmentauswahl, Keyframe-Suche, concat-Liste, Überschreiben; mit ffmpeg: H.264-Kopie beginnt am Keyframe vor dem Fenster (100 Bilder exakt), Bridge-Ring ProRes mit Nachlauf und Begleitdatei, Ring-Ordner danach leer.
  • e2e/record.spec.ts: Ring in der Quellenkarte, ring.save über die Steuer-API, Kopfleisten-Knopf.
  • typecheck, test, lang:check, build, companion:test.

Ungeprüft

Ring mit Hardware-Encodern außer VideoToolbox, DeckLink/NDI, Windows (Segmentliste per Datei). Kein Ring für Browser-Quellen.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XNHC4iLPbpBn6YwXKF1XAW

Dritter Ausgang im ffmpeg der Quelle: Segmente von 2 s reihum
(segment_wrap) im Ordner .lzs-ring des Aufnahme-Ordners. „Ring sichern“
fügt per concat -c copy ab dem letzten Keyframe vor jetzt − Länge
zusammen, optional mit Nachlauf; alle Quellen mit derselben Zeitmarke,
das Fenster je Quelle um ihre Latenz verschoben; Begleitdatei mit Fenster
und Markern. Ring je Quelle in der Quellenkarte, „Ring sichern“ in der
Kopfleiste (P), Länge/Nachlauf in Einstellungen → Aufnahme, Steuer-API
ring/ring.save, Companion-Aktionen, Feedback und Preset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XNHC4iLPbpBn6YwXKF1XAW

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant