Guida pratica: Registrare i filmati in tempo reale
Guida pratica: Registrare i filmati in tempo reale
Introduzione
La registrazione in tempo reale consente ai dispositivi di registrare commenti, stato delle risorse e altri dati mentre un file multimediale viene girato sul set, prima che venga registrato con Frame.io, per qualsiasi risorsa C2C generata da qualsiasi dispositivo nello stesso progetto.
Immagina un regista che guarda il proprio feed in Video Village e che può premere un pulsante ogni volta che l’attore fa una buona performance oppure una Smart Slate che può contrassegnare il punto di battuta su tutte le risorse.
Cosa serve?
Se non hai letto la guida Implementazione C2C: configurazione, dalle un’occhiata veloce prima di continuare! Ti servirà l’access_token ricevuto durante l’autenticazione e l’autorizzazione del dispositivo hardware o dell’app C2C.
Requisiti del codice temporale
Per sincronizzare gli eventi di registrazione in tempo reale con le risorse, sia la risorsa acquisita che il dispositivo utilizzato per registrare devono avere i valori jam-syned o gen-locked. Sia il dispositivo di registrazione che quello di registrazione saranno quindi responsabili dell’invio del codice temporale al nostro backend, dove eseguiremo un’operazione di sincronizzazione del codice temporale per allineare l’evento di registrazione con il fotogramma corretto.
Configurazione degli input
La registrazione in tempo reale opera su un nuovo concetto nel modello dati: gli input. Un input rappresenta un pulsante fisico sul dispositivo che può essere configurato per inviare dati a Frame.io. La prima cosa da decidere è il numero di pulsanti che consentirai per questo tipo di operazione, quindi assegna a ciascun pulsante un indice, partendo da 0. Questo indice verrà utilizzato per identificare quale pulsante è stato premuto quando l’evento viene inviato ai nostri server. Gli input appartengono direttamente ai canali, quindi ogni messaggio di pressione del pulsante dovrà essere indirizzato a un endpoint specifico del canale. Per maggiori informazioni sui canali, consulta la [guida alla gestione dei canali].
La configurazione di ciò che fa ogni pulsante viene gestita dall’utente tramite l’interfaccia di Frame.io, così che le integrazioni possano essere il più semplice possibile. Non ti sarà richiesto alcun intervento speciale da parte tua per la UI, a parte la capacità di assegnare un pulsante come “azione Frame.io”, se i tuoi pulsanti, trigger ecc. sono configurabili.
Lavoreremo con te per determinare la seguente configurazione per ciascun input del dispositivo:
- Indice: un numero intero indicizzato a partire da 0 che serve a identificare l’input
- Nome visualizzato: il nome dell’input da visualizzare all’utente nella schermata di configurazione di Frame.io.
- Azioni supportate: al momento l’unico tipo di azione è “pressione singola”, ma in futuro potremmo consentire tipi di azione aggiuntivi come “pressione prolungata” o “doppia pressione” per permettere a ciascun input di supportare più azioni, ognuna con un significato diverso.
- Colore del pulsante: se al pulsante è associato un colore, possiamo visualizzarlo per aiutare gli utenti ad orientarsi durante la configurazione delle impostazioni di input del dispositivo.
- Tipo di evento predefinito: il tipo di evento generato per impostazione predefinita da questo input:
-
Commento: questo input genera un commento
-
Stato: l’input aggiorna lo stato della risorsa
- Testo commento predefinito: il testo predefinito da utilizzare per i commenti generati da questo input
- Stato predefinito: lo stato predefinito per aggiornare le risorse quando questo input viene utilizzato per lo stato. Può essere:
in_progress-needs_review-approved
Fornendo queste informazioni in anticipo, manteniamo al minimo le richieste sul dispositivo effettivo.
Invio di un evento di registrazione in tempo reale
Gli eventi di registrazione in tempo reale possono essere inviati con la seguente chiamata
In caso di successo, riceverai un messaggio 204 con un payload vuoto. Parametri URL
channel_id: UUID del canale in cui è registrato questo input. Questo ID sarà stato ricevuto dalla chiamata channel create o dall’endpoint identity.input_index: indice dell’input che effettua la chiamata
Corpo JSON
action_type: tipo di azione da eseguire. Attualmente l’unica azione supportata èsingle_press.offset: scostamento dall’inizio della risorsa per registrare l’evento.start: ora di inizio, rappresentata dal codice orario SMPTE e dal framerate di quando l’input è stato attivato.
smpte_timecode: codice orario rappresentato come stringa SMPTE. -rate: framerate del flusso del codice orario. -playback: velocità di riproduzione del framerate, rappresentata come coppia[numeratore, denominatore]in un array. Facoltativamente, questo campo accetta anche frazioni in formato stringa,"numeratore/denominatore". I framerate NTSC (ad esempio 23,98) dovrebbero essere inviati come valore razionale completamente qualificato: [24000, 1001]. -ntsc: lo standard NTSC del codice orario. Può essere “non_drop"onull. Senull,playbackdeve rappresentare un valore intero, come[24, 1]. Se"non_drop",playbackdeve rappresentare un framerate NTSC valido, come[24000, 1001].
duration: durata dell’evento, rappresentata da un codice orario SMPTE e dal framerate di quando è stato attivato l’input. Segui la stessa definizione dell’oggetto distart. Per gli eventisingle_press, deve essere esattamente 1 fotogramma ("01:00:00:00").
Requisiti di affidabilità
I trigger di caricamento in tempo reale devono applicare le stesse linee guida per l’affidabilità dei caricamenti e rispettare lo stato di pausa del dispositivo.
Avanti
Se non l’hai già fatto, ti incoraggiamo a contattare il nostro team, poi continua con la prossima guida. A presto!