
Der Moment wenn der Picture Lock schon greifbar ist und dann das DaVinci Resolve Projekt kaputt geht. Alle Projekte lassen sich öffnen, nur das eine nicht. Kein Fehlerdialog oder andere Hinweise, nur der Fortschrittsbalken, der beim laden immer genau bis 61% ging und dann stürzte Resolve ohne weitere Meldung einfach ab.
Natürlich, zu erst ein Projekt Backup wiederherstellen, das hatte ich letzte Woche auch schon gemacht. Damals ist Resolve Abgestürzt als ich an einer kleinen Fusion Composition gearbeitet hab. Danach stürzte Resolve ab, sobald ich das Projekt öffnen wollte. Das Backup lies sich letzte Woche einwandfrei wiederherstellen und ich hatte nur die letzten Arbeitsschritte verloren, da das Backup nur eine Stunde alt war.
Eine Woche später, ich will eigentlich nur kurz ins Projekt um eine Kleinigkeit nachzusehen, genau das gleiche Problem. Resolve stürzt ab wenn ich das Projekt laden will. Diesmal konnte ich aber auch kein Backup wiederherstellen, dabei stürzte Resolve auch ab. Selbst beim Export des Projekts stürzt Resolve ab.
Ein exportiertes Resolve Projekt lässt sich von „.drp“ zu „.zip“ umbenennen und dann entpacken. Auf diese weise hätte ich vermutlich relativ einfach den Fusion Clip aus dem Projekt löschen können, von dem ich vermutete nach wie vor der Übeltäter zu sein. Aber an eine .drp-Datei kam ich also nicht.
Bleibt also nur die die Datenbank Datei um das Projekt zu retten. Also, los gehts…

Zugriff auf die Datenbank
Resolve speichert jedes Projekt als SQLite-Datei. Diese liegt im Datenbank Ordner, dort wo deine Lokale Datenbank eben gespeichert ist. Meine liegt hier:
/Users/username/Movies/ResolveDatabase
Darin sind die Datenbanken für jedes Projekt in Ordnern abgelegt:
Resolve Projects
├── MeineLib.db
├── Settings
│ ├── DeliverPresetList.xml
│ ├── ...
├── SoundLib.db
└── Users
└── └── guest
├── Configs
│ └── User Default Config.xml
├── ProjectMetadataCache
│ ├── ...
│ └── Metadata.db
├── Projects
│ │ ├── Filmprojekt ABC
│ │ │ └── Project.db
│ │ ├── Anderes Video ABC
│ │ │ ├── Batch Renders
│ │ │ │ ├── 753bd6d9-f3b0-49b7-8ef7-162a784424c9.xml
│ │ │ │ └── a3e992a3-3d88-4bb5-8cbe-22b5148a32bd.xml
│ │ │ └── Project.db
Ich öffnete die Datei sowohl mit dem SQLite-Terminal als auch mit der grafischen Oberfläche DB Browser for SQLite. Über die CLI ließ sich das Projekt so starten:
sqlite3 Project.db
In DB Browser nutzte ich die Tabellenansicht, um mir einen Überblick zu verschaffen.

Der erste Versuch: Suche nach den Timelines
Mein erster Gedanke war, dass der Fusion Clip in der Timeline das Laden verhindert. Ich suchte also in der Tabelle Sm2Sequence nach Timelines:
SELECT rowid, Sm2Sequence_id, LastChangedTime
FROM Sm2Sequence
ORDER BY LastChangedTime DESC
LIMIT 5;
Das Ergebnis sah zunächst vielversprechend aus:
1|a722796f-ac81-4c6f-8a16-218ebb5bb086|0
2|a700e332-b482-4752-be05-f7adce19569f|0
3|ca38f051-de9a-44ba-b11b-e99c2281650c|0
Doch das half nicht weiter – keine dieser Timelines zeigte Auffälligkeiten, und alle Versuche, die Inhalte auszulesen, führten ins Leere. Wie sich später rausstellte, weil dort zwar Timelines referenziert werden, aber keine echten Informationen sind, wie welche Clips in der Timeline liegen.
Der Durchbruch: Die Medien-Datenbank (Sm2MpMedia)
Beim Durchsehen der Tabellen fiel Sm2MpMedia auf.

Ihr Aufbau (über PRAGMA table_info(Sm2MpMedia)) zeigte, dass sie sämtliche Medienobjekte enthält – also Clips, Audio, Stills und auch Fusion Compositions:
sqlite> PRAGMA table_info(Sm2MpMedia);
0|Sm2MpMedia_id|uuid|1||1
1|DbType|character varying(128)|1||0
2|Name|character varying|0||0
...
38|FieldsBlob|BLOB|0||0
40|CompositionTable|uuid|0||0
Das deutet darauf hin, dass diese Tabelle der eigentliche Medienpool des Projekts sien muss.
Wie ich auf die richtige Spur kam
Die Struktur der Resolve-Datenbank ist nicht dokumentiert. Ich habe mich Schritt für Schritt herangetastet – mit Ausprobieren und Quervergleichen und der Hilfe einer KI-gestützten Interpretation der Tabellenbeziehungen. Dabei kristallisierte sich folgende (vereinfachte, aber funktionierende) Struktur heraus:
Sm2Sequence (Timeline)
→ Sm2TiTrack (Tracks innerhalb der Timeline)
→ Sm2TiItem (Clip-Items auf dem Track)
→ Sm2MpMedia (Objekte im Media Pool)
Das lässt sich mit einem ersten Test überprüfen:
SELECT
TL.Name AS TimelineName,
S.Sm2Sequence_id AS TimelineUUID,
T.Sm2TiTrack_id AS TrackUUID,
I.Sm2TiItem_id AS ItemUUID,
M.Sm2MpMedia_id AS MediaUUID,
M.Name AS MediaName
FROM Sm2MpMedia M
JOIN Sm2TiItem I ON I.MediaRef = M.Sm2MpMedia_id
JOIN Sm2TiTrack T ON T.Sm2TiTrack_id = I.Sm2TiTrack_id
JOIN Sm2Sequence S ON S.Sm2Sequence_id = T.Sequence
JOIN Sm2Timeline TL ON TL.Sequence = S.Sm2Sequence_id
WHERE M.Name='760370__froey__message-sent.wav';
Die Verknüpfung funktioniert, hier ist das Ergebnis des Befehls oben.
Das sind zwar ein haufen UUID’s, aber sie verweisen jeweils auf die nächste Tabelle um in die eine oder andere Richtung ein referenzierten Clip oder die TImelines zu finden.
Edit C - v9 251001|14581d31-3eee-4b29-896c-c083604374a4|772c0cc6-1bbf-4340-a67a-5ea7b551c51f|1395f0c9-3c7c-48e5-a7f4-f28ea53468d2|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C - v9 251001|14581d31-3eee-4b29-896c-c083604374a4|772c0cc6-1bbf-4340-a67a-5ea7b551c51f|9ef1b78a-eb68-4b39-ba0f-68a27333eadb|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C - v9 251001|14581d31-3eee-4b29-896c-c083604374a4|772c0cc6-1bbf-4340-a67a-5ea7b551c51f|f04ae261-88aa-4411-b202-400d255c1a76|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C kurz v8 textanimation 250829|2c8c91b6-e38e-4d9e-9fa3-7502af71b670|3a3e53bc-edc3-4ff4-9235-b41e61eb3631|bf2a41d6-1c24-4dde-b40f-8f64ed9f8dbe|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C kurz v8 textanimation 250829|2c8c91b6-e38e-4d9e-9fa3-7502af71b670|3a3e53bc-edc3-4ff4-9235-b41e61eb3631|7738053e-7765-4958-81f6-0ab71c486627|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C kurz v8 textanimation 250829|2c8c91b6-e38e-4d9e-9fa3-7502af71b670|3a3e53bc-edc3-4ff4-9235-b41e61eb3631|09207e31-c90b-4a82-9bbb-93f2d47eb98f|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C kurz v8 textanimation 250829|2c8c91b6-e38e-4d9e-9fa3-7502af71b670|3a3e53bc-edc3-4ff4-9235-b41e61eb3631|b10327fd-92c6-4542-bdc8-702101449ed3|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C kurz textanimation v9 250929|e0e7ef2a-0c78-432d-8720-0f69d0a401a7|b6ac5158-e1c8-46df-add0-190af69ecc4c|3abfbc70-ddc3-406a-955c-7a14f79ee7e7|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C kurz textanimation v9 250929|e0e7ef2a-0c78-432d-8720-0f69d0a401a7|b6ac5158-e1c8-46df-add0-190af69ecc4c|ce033a76-53bc-4e42-a12e-8c9e329727f0|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Edit C kurz textanimation v9 250929|e0e7ef2a-0c78-432d-8720-0f69d0a401a7|b6ac5158-e1c8-46df-add0-190af69ecc4c|06a210a9-ac4c-4da5-80cb-967e1cf09066|6df760c0-bacc-45eb-ba5f-4bd53065aba1|760370__froey__message-sent.wav
Die Defekten Fusion Compositions
Als nächstes suchte ich gezielt nach Fusion Compositions im Media Pool, denn schließlich war das meine einzige Spur um das Projekt zum laufen zu bringen.
SELECT rowid, Name, length(FieldsBlob) AS BlobLength, length(CompositionTable) AS CompLength
FROM Sm2MpMedia
WHERE Name='Fusion Composition';
Das Ergebnis:
15|Fusion Composition|105|36
613|Fusion Composition|87|36
Zwei Einträge, beide standen im Verdacht, das Projekt zu blockieren.
Die Reparatur: Entfernen der fehlerhaften Einträge
Zuerst habe ich die IDs der Clips geholt:
SELECT Sm2MpMedia_id, rowid FROM Sm2MpMedia WHERE Name='Fusion Composition';
Das Ergebnis Ergebnis, die zwei UUID’s und deren Zeilennummer:
b2eb0d61-0c5f-4dbf-a5bc-7622ab92314c|15
0d5da355-283b-4f31-84fa-ef176b0225d8|613
Dann noch die problematischen Einträge entfernen:
DELETE FROM Sm2MpMedia WHERE Sm2MpMedia_id IN (
'b2eb0d61-0c5f-4dbf-a5bc-7622ab92314c',
'0d5da355-283b-4f31-84fa-ef176b0225d8'
);
Ein abschließender Check bestätigte die Löschung:
SELECT * FROM Sm2MpMedia WHERE Name='Fusion Composition';
Jetzt gibts Keine Treffer mehr. Also die Datenbank Datei jetzt zurück an ihren Platz in der Resolve Datenbank legen. Bzw. genauer gesagt, ich hab die Datenbank natürlich vorher kopiert und damit die original Datenbank an Ort und Stelle gelassen. Beim zurück legen hab ich auch ein neues Projekt erstellt, indem ich den entsprechenden Ordner dupliziert habe, mit einem neuen passenden Namen versehen und die Datenbank-Projektdatei mit meiner modifizierten ersetzt habe.
Resolve öffnete das neue Projekt sofort – ohne Probleme. Die defekten Fusion Compositions waren tatsächlich die Ursache. Crazy!
Das beste daran ist, dass die Effekte weiterhin in der Timeline liegen, dort machen sie anscheinen keine Probleme. Aber die beiden VFX Clips sind auch keine Referenced VFX Composition Connect Clips, sondern nur einfache Fusion Clips.
Blackmagic Design hat bisher auf meine Support Anfrage nicht reagiert. Mal schauen ob sie sich noch melden.
Erkenntnisse aus dem Prozess
- Resolve speichert sämtliche Projektinhalte in einer relationalen Struktur mit klaren Zuordnungen zwischen Timeline, Track, Clip und Media.
- Eine beschädigte Fusion Composition im Media Pool kann das Öffnen des gesamten Projekts verhindern.
Schlussgedanke
Das Projekt ließ sich nur durch präzises Verständnis der Datenbank wieder öffnen. Kein Trick, nur logisches Denken, SQL und etwas Geduld. Zwei fehlerhafte Fusion Compositions im Media Pool hatten gereicht, um das gesamte Projekt lahmzulegen. Nach deren Entfernung funktionierte alles wieder reibungslos.

Schreibe einen Kommentar