Guía práctica: Registrar metraje tiempo real

Introducción

El registro en tiempo real permite que los dispositivos registren comentarios, estado de activos y otros datos mientras se graban medios en el set, antes de que se registre con Frame.io, para cualquier activo de C2C generado por cualquier dispositivo en el mismo proyecto.

Imagine a un director que está viendo su fuente en Video Village y puede pulsar un botón cada vez que el actor realiza una buena actuación, o una claqueta inteligente que puede marcar el punto de sincronización en todos los activos.

¿Qué necesitaré?

Si no ha leído la guía Implementar C2C: Configuración, échele un vistazo rápido antes de continuar. Necesitará el access_token que recibió durante la guía sobre la autenticación y autorización de dispositivos de hardware o aplicaciones de C2C.

Requisitos de código de tiempo

Para alinear los eventos de registro en tiempo real con los activos, esperamos que tanto el activo que se está capturando como el dispositivo utilizado para registrarlo estén sincronizados al vuelo o de manera externa. Entonces, tanto el dispositivo de grabación como el dispositivo de registro serán responsables de enviar el código de tiempo a nuestro backend, donde haremos una operación de sincronización de código de tiempo para alinear el evento de registro con el fotograma correcto.

Configurar sus ajustes de entrada

El registro en tiempo real opera según un nuevo concepto del modelo de datos: las entradas. Una entrada representa un botón físico en su dispositivo que puede configurarse para enviar datos a Frame.io. Lo primero que deberá decidir es el número de botones que permitirá para realizar este tipo de operación; después, deberá asignar un índice a cada botón, empezando desde 0. Este índice se usará para identificar qué botón se ha pulsado cuando el evento se envíe a nuestros servidores. Las entradas pertenecen directamente a los canales, por lo que cada mensaje de pulsación de botón deberá dirigirse al punto final de un canal específico. Para obtener más información sobre los canales, consulte la [guía sobre la administración de canales].

La configuración de lo que hace cada botón la gestiona el usuario a través de la interfaz de Frame.io, para que las integraciones sean lo más sencillas posible. No tendrá que añadir ninguna prestación especial a su interfaz de usuario, más allá de poder asignar un botón para que sea una “acción de Frame.io”, si sus botones, activadores, etc., se pueden configurar.

Trabajaremos con usted para determinar la siguiente configuración para cada una de las entradas de su dispositivo:

  • Índice: Un número entero indexado en 0 que se usará para identificar la entrada.
  • Nombre para mostrar: El nombre de la entrada que se mostrará al usuario en la pantalla de configuración de Frame.io.
  • Acciones admitidas: Ahora mismo el único tipo de acción es “pulsación única”, pero en el futuro podríamos permitir tipos de acción adicionales como “pulsación larga” o “pulsación doble” para permitir que cada entrada admita varias acciones, cada una con un resultado diferente.
  • Color del botón: Si su botón tiene un color asociado, podemos mostrarlo para ayudar a los usuarios a orientarse cuando configuren la configuración de entrada del dispositivo.
  • Tipo de evento predeterminado: El tipo de evento que genera de forma predeterminada esta entrada:

- Comentario: Esta entrada genera un comentario

- Estado: La entrada actualiza el estado del activo

  • Texto de comentario predeterminado: El texto predeterminado que debe utilizarse en los comentarios que genera esta entrada
  • Estado predeterminado: El estado predeterminado para actualizar los activos cuando esta entrada se utiliza para el estado. Puede ser:
  • in_progress - needs_review - approved

Al proporcionar esta información por adelantado, aliviamos lo máximo posible la carga sobre su dispositivo.

Enviar un evento de registro en tiempo real

Los eventos de registro en tiempo real se pueden enviar con la siguiente llamada:

${
>curl -X POST https://api.frame.io/v2/devices/channels/{channel_id}/inputs/{input_index}/trigger \
> --header 'Authorization: Bearer [access_token]' \
> --header 'Content-Type: application/json' \
> --header 'x-client-version: 2.0.0' \
> --data-binary @- <<'__JSON__'
> {
> "action_type": "single_press",
> "offset": 0,
> "start": {
> "smpte_timecode": "01:00:00:00",
> "rate": {
> "playback": [24_000, 1001],
> "ntsc": "non_drop"
> }
> },
> "duration": {
> "smpte_timecode": "00:00:00:01",
> "rate": {
> "playback": [24_000, 1001],
> "ntsc": "non_drop"
> }
> }
> }
>__JSON__
>} | python -m json.tool

En caso de éxito, recibirá un mensaje 204 con una carga útil en blanco. Parámetros de URL

  • channel_id: El UUID del canal en el que está registrada esta entrada. Este ID se habrá recibido con la llamada channel create o desde el punto final de identidad.
  • input_index: El índice de la entrada que realiza la llamada

Cuerpo JSON

  • action_type: El tipo de acción que se va a realizar. Actualmente, la única acción admitida es single_press.
  • offset: El desplazamiento desde el inicio del activo para registrar el evento.
  • start: Hora de inicio, representada por el código de tiempo SMPTE y la velocidad de fotogramas cuando se activó la entrada.

smpte_timecode: Código de tiempo representado como una cadena SMPTE. - rate: Velocidad de fotogramas del flujo de código de tiempo. - playback: Velocidad de reproducción de la velocidad de fotogramas, representada como un par [numerador, denominador] en una matriz. Opcionalmente, este campo también acepta fracciones en formato de cadena, &quot;numerador/denominador&quot;. Las velocidades de fotogramas NTSC como 23,98 deben enviarse como su valor racional completo: [24000, 1001]. - ntsc: El estándar NTSC del código de tiempo. Puede ser &quot;non_drop&quot; o null. Si es null, playback debe representar un valor de número entero, como [24, 1]. Si es &quot;non_drop&quot;, playback debe representar una velocidad de fotogramas NTSC válida, como [24000, 1001].

  • duration: Duración del evento, representada por un código de tiempo SMPTE y la velocidad de fotogramas cuando se activó la entrada. Se ajusta a la misma definición de objeto que start. Para eventos single_press, debe ser exactamente 1 fotograma (&quot;01:00:00:00&quot;).

Requisitos de fiabilidad

Los activadores de carga en tiempo real deben aplicar las mismas directrices de fiabilidad que las cargas y respetar el estado de pausa del dispositivo.

Próximos pasos

Si aún no lo ha hecho, le recomendamos que se ponga en contacto con nuestro equipo y que luego continúe con la siguiente guía. Quedamos a la espera de tener noticias suyas.