API en vivo: Creación de un clip con precisión de marco

Este tutorial lo guía a través del uso de la API en vivo para crear un trabajo en vivo y luego crear un clip con precisión de cuadro a partir de él.

Resumen

Este tutorial explica a nivel de API cómo crear un trabajo de transmisión en vivo en Brightcove en vivo y luego cree un clip con precisión de fotograma a partir de él.

Tenga en cuenta que el recorte con precisión de fotograma requiere que su codificador envíe códigos de tiempo SMPTE.

Este tutorial usará curl para realizar las solicitudes de API, pero puede realizarlas fácilmente en Insomnia , Postman u otros clientes REST en su lugar.

Crea un trabajo en vivo

Primero, crearemos un trabajo en vivo. Necesitarás un API-KEY para la API en vivo. Si no lo hace y está interesado en obtener acceso, comuníquese con su Gerente de Éxito del Cliente.

  1. Asumimos que ya tiene una cuenta de Brightcove y ellos tienen su API-KEY, llamémosla bcov-live-api-key
  2. Copie y pegue lo siguiente curl comando en un editor de texto:

      curl -X POST \
        https://api.bcovlive.io/v1/jobs \
        -H 'Content-Type: application/json' \
        -H 'x-api-key: ' \
        -d '{
          "live_stream": true,
          "region": "",
          "outputs": [{
            "label": "hls360p",
            "live_stream": true,
            "height": 360,
            "video_bitrate": 365,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls432p",
            "live_stream": true,
            "height": 432,
            "video_bitrate": 730,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls540p",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 2000,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls720p3M",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 2000,
            "segment_seconds": 6,
            "keyframe_interval": 60
          },
          {
            "label": "hls720p4.5M",
            "live_stream": true,
            "height": 540,
            "video_bitrate": 4500,
            "segment_seconds": 6,
            "keyframe_interval": 60
          }]
        }'
      
  3. Reemplazar:

    • con la región disponible más cercana a su codificador, consulte regiones disponibles más cercanas a su codificador. Por ejemplo: us-west-2
    • con su clave API en vivo de Brightcove. Por ejemplo: abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
  4. Después de realizar esos cambios, copie y pegue el código en Terminal o en cualquier aplicación de línea de comandos que use y ejecútelo.
  5. La respuesta debería ser algo como esto:

      {
          "id": "3b6871bf2f344acaa6b397d09b476018",
          "outputs": [... removed for simplicity ...],
          "stream_url": "rtmp://ep1-usw2.bcovlive.io:1935/3b6871bf2f344acaa6b397d09b476018",
          "stream_name": "alive",
          "static": false,
          "encryption": {},
          "playback_url": "https://bcovlive-a.akamaihd.net/3b6871bf2f344acaa6b397d09b476018/us-west-2/NA/playlist.m3u8",
          "playback_url_dvr": "https://bcovlive-a.akamaihd.net/3b6871bf2f344acaa6b397d09b476018/us-west-2/NA/playlist_dvr.m3u8"
      }

Estos trabajos crearán 5 representaciones. basado en Recomendaciones de Apple.

Configura tu codificador

Los pasos que se muestran aquí supondrán una Caja viva elemental codificador, que se utilizó para probar los pasos de este tutorial. Si tiene un codificador diferente, la configuración debería ser similar.

Los ajustes más importantes para este caso son:

  • Configurar la fuente del código de tiempo como "reloj del sistema"
  • Establecer "Frecuencia de código de tiempo de OnFi" en 1
  • Marque "inserción de código de tiempo" dentro del video
  • Muy recomendado: Velocidad de fotogramas = seguir la fuente

Esta es la configuración que usamos para este experimento:

configuración-de-trabajo-en-vivo-elemental
Configuración elemental en vivo

Prueba de reproducción

Puedes usar esto Página de demostración de VideoJS HLS para probar la reproducción, simplemente pegue el valor playback_url devuelto en la respuesta del trabajo de creación:

videojs-hls-reproducción
Página de demostración de reproducción de VideoJS HLS

Crea un clip con precisión de fotograma

En este tutorial, asumiremos que está enviando el clip a su biblioteca de Video Cloud. Si está enviando el clip a un depósito de S3 o alguna otra ubicación, el proceso es el mismo: solo hay algunas diferencias menores en el cuerpo de la solicitud para las solicitudes de API.

Cartas credenciales

Si no ha creado credenciales para Video Cloud en su cuenta Live, puede seguir los pasos aquí para hacerlo. Esta es una operación de una sola vez.

Si aún no tiene las credenciales de cliente para la ingesta dinámica de videos en Video Cloud, deberá crearlas. Ver Administrar las credenciales de autenticación de API para obtener instrucciones sobre cómo hacer esto en Studio.

  1. Copia el rizo comando a continuación en un editor de texto:
    curl -X POST \ https://api.bcovlive.io/v1/credentials \ -H 'Content-Type: application/json' \ -H 'x-api-key: ' \ -d '{ "credential_default_for_type": true, "credential_label": "Video_Cloud_Uploads", "credential_private": "", "credential_public": "", "credential_type": "videocloud" }' 
  2. Reemplazar:

    • con su clave de API en vivo
    • con tu secreto de cliente
    • con su identificación de cliente
  3. Copie y pegue el comando editado en Terminal o su aplicación de línea de comando, y ejecútelo.
  4. La respuesta debería tener un aspecto similar a esto:
      {
        "credential_id": "1e0180330b724dfbbcaf6b28b6c5d517",
        "user_id": "c2691d4d039040be96c190a949d754a7",
        "credential_label": "Video_Cloud_Uploads"
      }

Crea el clip

Una vez que tenga sus credenciales de Video Cloud, estará listo para crear un clip.

  1. Copie la solicitud de curl a continuación y péguela en un editor de texto:
      curl -X POST \
        https://api.bcovlive.io/v1/vods \
        -H 'Content-Type: application/json' \
        -H 'x-api-key: ' \
        -d '{
          "live_job_id":"",
          "outputs":[{
              "label": "Trim by SMPTE TC 17:33:11:12 to 17:34:00:00",
            "stream_start_timecode": "",
            "stream_end_timecode": "",
              "videocloud":{"ingest":{"capture-images":true},"video":{"name":"test-frame-accurate-clip"}},
              "credentials": ""
          }]
      }'
  2. Reemplazar:

    • con su clave API en vivo de Brightcove. Por ejemplo: abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
    • con la identificación del trabajo en la respuesta a su solicitud para crear el trabajo en vivo. En nuestro ejemplo, este valor sería 3b6871bf2f344acaa6b397d09b476018 - el tuyo será diferente.
    • y deben ser valores que tengan sentido (estén presentes) en su transmisión en vivo. En nuestro ejemplo hemos utilizado: 17:33:11:12 y 17:34:00:00
    • con la etiqueta de sus credenciales de Video Cloud. Si aún no los tenía y los creó siguiendo los pasos anteriores, esto sería Video_Cloud_Uploads
  3. Copie y pegue el código editado en Terminal o su aplicación de línea de comando, y ejecútelo.
  4. La respuesta debería tener un aspecto similar a esto:
      {
          "vod_jobs": [
              {
                  "jvod_id": "0b14a4ba326d4dd08f15053ca2a403b7",
                  "label": "Trim by SMPTE Timecodes"
              }
          ],
          "live_job_id": "3b6871bf2f344acaa6b397d09b476018"
      }

Probamos la precisión del experimento, descargamos el clip y lo usamos. Adobe Premiere para verificar el primer y último cuadro, dado que el código de tiempo está superpuesto, una simple verificación visual es suficiente para confirmar la precisión en los puntos de entrada y salida:

precisión de clip
Prueba de precisión de clip visual - en
clip-precisión-out
Prueba de precisión de clip visual - out