Anleitungen

OBS mitten in der Aufnahme abgestürzt: die MP4 wiederherstellen

Du hast zwei Stunden aufgenommen, OBS ist abgestürzt, und die zurückgebliebene MP4 lässt sich in nichts öffnen. Die Foren sagen dir, sie sei verloren. Das stimmt für eine enge Definition von Reparatur und ist für eine andere falsch, und in diesem Unterschied liegt die ganze Sache. Dein Material ist mit ziemlicher Sicherheit noch auf der Platte. Was der Absturz mitgenommen hat, ist der Index, der es abspielbar macht.

Warum der Absturz dir eine nicht abspielbare Datei hinterlassen hat

Eine MP4 ist zweierlei in einer Datei: das Material, ein langer Block aus komprimiertem Video und Audio, und der Index, eine kleine Tabelle, die einem Player sagt, wo jeder Frame liegt und wie der Ton sich ausrichtet. Während OBS aufnimmt, streamt es das Material fortlaufend auf die Platte. Den Index kann es noch nicht schreiben, denn der Index hält endgültige Größen und Offsets fest, die erst feststehen, wenn die Aufnahme endet. Also schreibt OBS den Index zuletzt, in dem Augenblick, in dem du auf Stopp klickst.

Ein Absturz erreicht diesen Augenblick nie. Der Prozess stirbt, das Material bereits auf der Platte und der Index nie geschrieben. In MP4-Begriffen hat die Datei ihren ftyp-Header und ihrenmdat-Block mit den Medien, und ihr fehlt das moov-Atom, das sie indexiert, weshalb jeder Player sie verweigert und ffmpegmoov atom not found sagt. Stundenlanges Material kann in einer Datei liegen, die für jeden normalen Player völlig leer aussieht. Für die vollständige Anatomie dieses Index und warum er am Ende sitzt, siehedas moov-Atom der MP4 erklärt, und für die genaue Fehlermeldung und ihre Ursachen"moov atom not found".

Ein OBS-Absturz, gezeichnet: die Aufnahme erreichte die Platte, aber der Index, den OBS beim Stoppen schreibt, wurde nie geschrieben.

Ist sie wirklich verloren? Ja und nein

Suche nach diesem Problem, und du findest Forenthread um Forenthread, viele mit einem OBS-Contributor, der sagt, eine nicht finalisierte MP4 sei im Grunde verloren. Sie liegen nicht falsch, und es lohnt sich, genau zu verstehen, was sie meinen, denn es ist eine präzise Aussage, kein Achselzucken.

Was sie meinen, ist, dass du die Datei nicht remuxenkannst. Remuxing kopiert die Streams in einen sauberen Container, und es ist der übliche Weg, eine schrullige MP4 zu retten. Aber Remux muss den vorhandenen Index lesen, um zu wissen, wo die Streams liegen, und eine nicht finalisierte Datei hat keinen Index, den man lesen könnte. Also scheitert Remux auf der Stelle, und jeder ffmpeg--c copy- und faststart-Trick, der auf Remuxing aufbaut, scheitert mit ihm. Gemessen an dieser Definition von "reparieren" ist die Datei tatsächlich verloren.

Die Hälfte, die sie weglassen, ist, dass Remuxing nicht die einzige Option ist. Index-Rekonstruktion ist ein anderer Vorgang: statt einen Index zu lesen, der nicht da ist, scannt sie das Material direkt nach Frame-Grenzen und baut den Index aus dem auf, was sie misst. Das ist die Klasse von Reparatur, die Kommandozeilen-Tools wie untrunc durchführen, und sie ist es, die eine von den Foren abgeschriebene Aufnahme rettet. Das Material war nie das Problem; der fehlende Index war es, und ein Index lässt sich neu aufbauen.

Der Ansatz mit der Referenzaufnahme

Den Index neu aufzubauen bedeutet, die Struktur der Datei aus dem Material selbst zu rekonstruieren, und der zuverlässigste Weg dorthin führt über eine Referenzaufnahme: einen gesunden, normal gestoppten Clip, in OBS mit denselben Einstellungen erstellt, demselben Encoder, derselben Auflösung, Bildrate und demselben Container. Diese gesunde Datei trägt einen vollständigen, gültigen Index für genau das Format, das deine kaputte Aufnahme benutzt hat, was dem Rebuild eine Vorlage gibt, die zu deinem überlebenden Material passt.

Eine zu erstellen dauert unter einer Minute: öffne OBS mit demselben Profil, unter dem du aufgenommen hast, nimm ein paar Sekunden auf und stoppe normal, damit die Datei finalisiert. Der Rebuild liest diese Referenz, um deine Daten zu interpretieren, und schreibt dann eine abspielbare Datei über das Material, das überlebt hat.

Nun die ehrlichen Grenzen, klar benannt. Die letzten paar Sekunden vor dem Absturz waren noch im Speicher und erreichten die Platte nie, also sind sie weg; der Rebuild liefert alles bis zu diesem Punkt. Eine mit stark variabler Bitrate erstellte Aufnahme kann mit leichtem Audio- und Video-Versatz zurückkommen. Die Referenz muss wirklich passen, denn ein mit anderen Einstellungen erstellter Clip gibt eine Vorlage, die nicht zusammenpasst. Und wenn die Datei 0 Byte anzeigt oder nur ein kleiner Bruchteil ihrer erwarteten Größe ist, steckt kein Material darin, aus dem sich etwas aufbauen ließe, was ein Speicher- oder Datenrettungsproblem ist statt eines Reparaturproblems. Was ein Rebuild zurückgibt, ist deine echte Aufnahme, indexiert und abspielbar, niemals erfundene Frames.

Beim nächsten Mal vermeiden: wie OBS aufnehmen soll

Dieser ganze Fehlermodus ist vermeidbar, und das OBS-Projekt hat die Werkzeuge gebaut, um ihn zu vermeiden. Drei Einstellungen, geordnet danach, wie viel sie helfen:

In MKV aufnehmen, dann zu MP4 remuxen

Der langjährige Rat, und immer noch der sicherste: stelle OBS auf Aufnahme in MKV. MKV wird so geschrieben, dass eine Aufnahme nutzbar bleibt, selbst wenn OBS unerwartet stoppt, denn es hängt nicht an einem einzigen, am Ende geschriebenen Index. Wenn deine Session sauber endet, nutze das in OBS eingebaute Remux, um die MKV in Sekunden verlustfrei und ohne Neu-Encodieren zu MP4 zu konvertieren. Du kannst OBS sogar nach jeder Aufnahme automatisch zu MP4 remuxen lassen.

Hybrid MP4 in OBS 30.2 und neuer nutzen

Wenn du MP4 direkt brauchst, etwa für einen Editor, der MKV nicht mag, schalte Hybrid MP4 ein, hinzugekommen in OBS 30.2. Es schreibt die MP4 in einer fragmentierten, absturzresistenten Struktur, sodass eine unterbrochene Aufnahme weitgehend nutzbar bleibt, statt ohne Index zu stranden. Es ist das Nächste, das MP4 der Sicherheit von MKV kommt.

Den Trick mit der fragmentierten MP4 verstehen

Hybrid MP4 funktioniert dank fragmentierter MP4, einer Struktur, die kleine, in sich geschlossene Index-Fragmente über die ganze Datei verteilt schreibt statt eines einzigen Index am Ende. Wenn du einen eigenen Output von Hand konfigurierst, lautet die Muxer-Einstellungmovflags=frag_keyframe+empty_moov, die dasselbe absturzresistente Verhalten erzeugt. Es ist der Mechanismus unter dem freundlichen Schalter.

FAQ

Kann ich eine OBS-Aufnahme nach einem Absturz wiederherstellen?

Oft ja, wenn OBS in MP4 oder MOV geschrieben hat und die Datei eine gesunde Größe besitzt. OBS schreibt das Material während der Aufnahme fortlaufend auf die Platte und schreibt den Index, der alles zusammenbindet, erst wenn du auf Stopp drückst. Ein Absturz überspringt diesen Schritt, also liegt das Material ohne Index auf der Platte und spielt nicht ab. Den Index neu aufzubauen macht die Aufnahme wieder abspielbar, abzüglich der letzten paar Sekunden, die noch im Speicher waren, als OBS starb. Eine Datei mit 0 Byte ist ein anderes Problem, denn dort gibt es kein Material, aus dem sich etwas wiederaufbauen ließe.

Warum ist meine OBS-MP4 nach dem Absturz von OBS nicht abspielbar?

Weil die MP4 nie finalisiert wurde. Der Index, den ein Player braucht, das moov-Atom, wird in dem Moment geschrieben, in dem du die Aufnahme stoppst, sobald die endgültigen Größen feststehen. Ein Absturz reißt dem Prozess den Strom weg, bevor dieser Schreibvorgang passiert, deshalb enthält die Datei ihr gesamtes Material, aber keine Indexierung, die darauf zeigt. Player und ffmpeg melden das als 'moov atom not found'. Das Material hat überlebt; die Karte dazu nicht.

Sollte ich in OBS in MKV oder MP4 aufnehmen?

Nimm in MKV auf, wenn Absturzsicherheit zählt, und bei langen Sessions tut sie das. MKV wird so geschrieben, dass eine Aufnahme selbst dann nutzbar bleibt, wenn OBS unerwartet stoppt, denn es hängt nicht von einem einzigen, am Ende geschriebenen Index ab. Wenn du fertig bist, muxe die MKV in Sekunden verlustfrei und ohne Neu-Encodieren direkt in OBS zu MP4 um. Wenn es unbedingt direkt MP4 sein muss, nutze die Option Hybrid MP4 in OBS 30.2 und neuer, die eine absturzresistente Struktur beibehält.

Kann ich eine beschädigte OBS-MP4 durch Remuxing reparieren?

Nein, und das ist das Missverständnis hinter den meisten 'ist verloren'-Ratschlägen. Remuxing kopiert die Streams in einen frischen Container, aber dafür muss es zuerst den vorhandenen Index lesen, und eine nicht finalisierte MP4 hat keinen Index, den man lesen könnte. Remux scheitert bei diesen Dateien sofort. Das ist eine echte Grenze des Remuxings, kein Beweis, dass das Material weg ist. Den Index neu aufzubauen, ein anderer Vorgang, ist das, was eine nicht finalisierte Aufnahme tatsächlich rettet.

Was ist Hybrid MP4 in OBS?

Hybrid MP4 ist eine Aufnahmeoption, die in OBS 30.2 hinzukam und die MP4 in einer fragmentierten, absturzresistenten Weise schreibt, sodass eine von einem Absturz unterbrochene Aufnahme weitgehend nutzbar bleibt, statt ohne Index zu stranden. Sie gibt dir den Komfort einer MP4, die die meisten Editoren direkt akzeptieren, mit einem Großteil der Sicherheit, die MKV zum Standardrat für OBS-Aufnahmen gemacht hat.

Der fehlende Index im Kern des Ganzen, ausführlich: MP4-Anatomie und das moov-Atom.