Ich schreibe ein Programm, das LTC-Zeitstempel von Audiokanälen in Videodateien interpretiert. Das Ziel besteht darin, die LTC-Spur zu entfernen und sie durch eine Art nativer Zeitstempel direkt in der Videodatei zu ersetzen – auf eine Weise, die nachgeschaltete NLEs korrekt interpretieren können, z. B. für Zeitleisten mit mehreren Kameras.
Ich habe das LTC-Parsing durchgeführt, sodass ich für jeden Frame des Videos den Zeitstempel erkennen kann. Wie kodiere ich das in Containern wie .MP4 und .MOV? Am einfachsten wäre es, wenn ich es mit machen könnte ffmpeg
.
@Gyan gibt die Antwort in Kommentaren:
MP4s und MOVs speichern nur den TC des ersten Frames als wörtliche Framezahl zusammen mit der Framerate. Die nutzende App wandelt diesen Frame-Zähler mithilfe der Framerate wieder in einen TC-String um. Für Drop-Frame-TC unterstützt ffmpeg nur 30 und 60 fps. Ich werde 24/48 hinzufügen, wenn ich Zeit habe, und eine SMPTE-Referenz, die ich konsultieren kann. Für Non-Drop-TC sind alle fps in Ordnung. Fügen Sie -timecode HH:MM:SS:FF zu Ihrem cmd hinzu. Verwenden ; für das letzte Trennzeichen, wenn TC ein Drop-Frame ist.
Gyan
iter
iter
Gyan
-timecode HH:MM:SS:FF
Sie Ihrem cmd hinzu. Verwenden Sie;
für das letzte Trennzeichen, wenn TC ein Drop-Frame ist.iter
iter
-timecode
? 5) Beim Lesen-timecode
im Handbuch sehe ich-timestamp
Parameter. Welche Beziehung besteht zwischen diesen? Bezieht-timestamp
sich auf das erste Bild oder das letzte (dh wenn die Datei fertig geschrieben ist)? Wenn diese beiden Parameter unterschiedliche Felder in eine Datei schreiben, interpretieren NLEs sie unterschiedlich?Michael Liebmann