Vielen Dank für eure Tipps!
Kurze Erklärung: bei 350 Clips sind die oben genannten Ideen, die ich (bis auf den vom Dienstag) schon probiert hatte, mir aber zu aufwändig. Claude hat mir den entscheidenen Tipp gegeben: ein kleines Python- Script, das mein Problem in ca 1 Min. gelöst hat.
Gruß, Andreas
PS: wen's interessiert:
Code: Alles auswählen
import os
# Verbindung zu Resolve herstellen
project_manager = resolve.GetProjectManager()
project = project_manager.GetCurrentProject()
timeline = project.GetCurrentTimeline()
if not timeline:
print("FEHLER: Keine aktive Timeline gefunden. Bitte öffne eine Timeline!")
else:
fps = float(timeline.GetSetting("timelineFrameRate"))
start_offset = timeline.GetStartFrame() # Erkennt automatisch 00:00 oder 01:00 Start
# Sicherer Pfad zum Desktop
desktop = os.path.expanduser("~/Desktop")
file_path = os.path.join(desktop, "subtitles.srt")
def frames_to_srt_time(frames, fps):
td = frames / fps
hh = int(td // 3600)
mm = int((td % 3600) // 60)
ss = int(td % 60)
ms = int((td % 1) * 1000)
return f"{hh:02}:{mm:02}:{ss:02},{ms:03}"
# Clips von Video-Spur 1 auslesen
items = timeline.GetItemListInTrack("video", 1)
try:
with open(file_path, "w", encoding="utf-8") as f:
for i, item in enumerate(items):
# Start und Ende relativ zum Timeline-Beginn berechnen
start = item.GetStart() - start_offset
end = item.GetEnd() - start_offset
f.write(f"{i+1}\n")
f.write(f"{frames_to_srt_time(start, fps)} --> {frames_to_srt_time(end, fps)}\n")
f.write(f"{i+1}\n\n") # Schreibt nur die Nummer als Text
print(f"ERFOLG: Datei liegt auf dem Desktop: {file_path}")
print("Importiere diese jetzt über: Media Pool -> Rechtsklick -> Import -> Subtitles")
except Exception as e:
print(f"Fehler beim Schreiben der Datei: {e}")
Dann einfach die srt- Datei vom Desktop importieren...