Leitfaden: Filmmaterial in Echtzeit protokollieren
Leitfaden: Filmmaterial in Echtzeit protokollieren
Einführung
Mit der Echtzeitprotokollierung können Geräte Kommentare, den Asset-Status und andere Daten erfassen, während ein Medium auf dem Gerät aufgezeichnet wird, bevor es mit Frame.io registriert wird, und zwar für alle C2C-Assets, die von einem beliebigen Gerät im selben Projekt generiert werden.
Stellen Sie sich vor, ein Regisseur schaut sich seinen Feed im Video Village an, kann einen Knopf drücken, wenn die Schauspielerin eine gute Leistung liefert, oder ein Smart Slate, der den Klapppunkt auf allen Assets markieren kann.
Was benötige ich?
Falls Sie den Leitfaden C2C implementieren: Einrichtung noch nicht gelesen haben, werfen Sie bitte einen kurzen Blick darauf, bevor Sie fortfahren!Sie benötigen den access_token, den Sie mit dem Leitfaden zur Authentifizierung und Autorisierung für die C2C-Hardware oder C2C-Anwendung erhalten haben.
Timecode-Anforderungen
Um Echtzeitprotokollierungsereignisse mit den Assets abzustimmen, erwarten wir, dass sowohl das erfasste Asset als auch das zur Protokollierung verwendete Gerät jam-synchronisiert oder gen-locked sind.Sowohl das Aufnahmegerät als auch das Protokollierungsgerät senden dann den Timecode an unser Backend, wo wir eine Timecode-Synchronisierung durchführen, um das Protokollierungsereignis mit dem richtigen Frame abzugleichen.
Eingabekonfigurationen einrichten
Die Echtzeitprotokollierung basiert auf einem neuen Konzept im Datenmodell: Eingaben.Eine Eingabe stellt eine physische Taste auf Ihrem Gerät dar, die so konfiguriert werden kann, dass sie Daten an Frame.io sendet.Zunächst müssen Sie festlegen, wie viele Schaltflächen für diese Art von Vorgang vorgesehen sind, und dann jeder Schaltfläche einen Index zuweisen, beginnend bei 0.Mit diesem Index wird angegeben, welche Taste beim Senden des Ereignisses an unsere Server gedrückt wurde.Eingaben sind direkt mit Kanälen verknüpft, daher muss jede Meldung über einen Tastendruck an einen bestimmten Kanal-Endpunkt gerichtet sein.Weitere Informationen zu Kanälen finden Sie im [Leitfaden zum Kanalmanagement].
Die Konfiguration der einzelnen Schaltflächen erfolgt durch den Benutzenden über die Frame.io-Benutzeroberfläche, sodass Integrationen so einfach wie möglich sind.Sie müssen auf Ihrer Seite keine besonderen UI-Elemente bereitstellen, außer dass Sie eine Taste als „Frame.io-Aktion“ zuweisen können, sofern Ihre Tasten, Trigger usw. konfigurierbar sind.
Wir arbeiten mit Ihnen zusammen, um die folgende Konfiguration für jeden der Eingänge Ihres Geräts festzulegen:
- Index: Eine 0-indizierte Ganzzahl, die zum Identifizieren der Eingabe verwendet wird.
- Anzeigename: Der Name der Eingabe, die dem Benutzenden im Konfigurationsbildschirm von Frame.io angezeigt werden soll.
- Unterstützte Aktionen: Derzeit ist der einzige Aktionstyp „Einmaliges Drücken“, doch in Zukunft werden wir möglicherweise weitere Aktionstypen wie „Langes Drücken“ oder „Doppeltes Drücken“ zulassen, damit jede Eingabe mehrere Aktionen mit jeweils unterschiedlicher Bedeutung unterstützen kann.
- Schaltflächenfarbe: Wenn der Schaltfläche eine Farbe zugeordnet ist, können wir diese anzeigen, damit sich Benutzende bei der Konfiguration der Eingabeeinstellungen des Geräts besser orientieren können.
- Standardereignistyp: Der Ereignistyp, den diese Eingabe standardmäßig generiert:
-
Kommentar: Bei dieser Eingabe wird ein Kommentar erstellt
-
Status: Der Asset-Status wird durch die Eingabe aktualisiert
- Standardkommentartext: Der Standardtext, der für Kommentare verwendet werden soll, die durch diese Eingabe generiert werden
- Standardstatus: Der Standardstatus zur Aktualisierung von Assets, wenn diese Eingabe für den Status verwendet wird.Kann folgendermaßen lauten:
in_progress-needs_review-approved
Indem wir diese Informationen im Voraus bereitstellen, halten wir die Anforderungen an Ihr tatsächliches Gerät so gering wie möglich.
Echtzeitprotokollierungsereignis senden
Mit dem folgenden Aufruf können Echtzeitprotokollierungsereignisse gesendet werden
Bei Erfolg wird eine 204 ausgegeben mit einer leeren Payload.URL-Parameter
channel_id: Die UUID des Kanals, in dem dieser Eingang registriert ist.Diese ID wurde vom channel create-Aufruf oder vom identity endpoint empfangen.input_index: Der Index der aufrufenden Eingabe
JSON Body
action_type: Der Typ der auszuführenden Aktion.Derzeit wird nursingle_pressunterstützt.offset: Der Versatz vom Beginn des Assets, an dem das Ereignis protokolliert werden soll.start: Startzeitpunkt, dargestellt als SMPTE-Timecode plus Bildfrequenz zum Zeitpunkt der Auslösung des Eingangs.
smpte_timecode: Timecode wird als SMPTE-Zeichenfolge dargestellt.-rate: Bildrate des Timecode-Streams.-playback: Wiedergabegeschwindigkeit der Framerate, dargestellt als[numerator, denominator]-Paar in einem Array.Optional kann dieses Feld auch Bruchteile im Zeichenfolgenformat"numerator/denominator"annehmen.NTSC-Framerates wie 23,98 sollten als vollständig qualifizierte rationale Werte gesendet werden: [24000, 1001].-ntsc: NTSC-Standard des Timecodes.Kann"non_drop"odernullsein.Beinullmussplaybackeinen ganzzahligen Wert darstellen, z. B.[24, 1].Bei"non_drop"mussplaybackeine gültige NTSC-Framerate darstellen, z. B.[24000, 1001].
duration: Dauer des Ereignisses, dargestellt durch SMPTE-Timecode plus Framerate, als die Eingabe ausgelöst wurde.Entspricht derselben Objektdefinition wiestart.Beisingle_press-Ereignissen muss der Wert genau 1 Frame ("01:00:00:00") sein.
Zuverlässigkeitsanforderungen
Echtzeit-Upload-Trigger müssen dieselben Zuverlässigkeitsrichtlinien wie Uploads anwenden und den Status „Gerät angehalten“ berücksichtigen.
Als Nächstes
Falls Sie dies noch nicht getan haben, empfehlen wir Ihnen, sich an unser Team zu wenden und anschließend mit dem nächsten Leitfaden fortzufahren.Wir freuen uns darauf, von Ihnen zu hören!