Inicio rápido: Creación de un trabajo activo para la entrada MPEG2-TS

Este tutorial lo guía a través de la creación de un trabajo en vivo que aceptará la entrada MPEG2-TS. El trabajo se crea utilizando la API en vivo.

Resumen

diagrama de bloques generalDiagrama de bloques

Este tutorial explica a nivel de API cómo crear un trabajo de transmisión en vivo en Brightcove en vivo que aceptará la entrada MPEG2-TS. La clave para usar la entrada MPEG2-TS es seleccionar un protocol que admita MPEG2-TS y que su codificador pueda entregar. Los protocolos compatibles con TS admitidos por Live API son:

  • rtp
  • rtp-fec
  • srt

Uno de estos protocolos debe especificarse explícitamente para utilizar la entrada TS, porque el protocolo de entrada predeterminado es rtmp.

Para usar códigos de tiempo SMPTE para recortes, puntos de referencia SSAI o etiquetas ID3, deben insertarse en el video H.264 (AVC) en los mensajes SEI Picture Timing.

Recuerde que estos protocolos usan UDP (User Datagram Protocol) en lugar de TCP para la comunicación entre el codificador y Live, por lo que su firewall / enrutador debe configurarse correctamente y permitir salidas UDP a Internet desde la IP del codificador.

Si está utilizando rtp-fec, la información FEC se envía en un puerto distinto del medio, por lo que, por ejemplo, si utiliza el puerto 2000, también necesitará abrir los puertos 2002 y 2004 (si utiliza FEC 2D).

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. 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": "",
          "protocol": "",
          "cidr_whitelist": ["", ""],
          "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": 720,
              "video_bitrate": 4500,
              "segment_seconds": 6,
              "keyframe_interval": 60
         }]
      }'
  2. Realice los siguientes reemplazos:

    • con su clave API en vivo de Brightcove. Por ejemplo: abcdfeg-this-is-a-fake-api-key-FgJajjasd12hJHsZ
    • 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 el protocolo de entrada que entregará su codificador: rpt , rtp-fec , o srt
    • con el rango de IP que usará su codificador, en forma de 1.2.3.4/32
    • (si corresponde) con el rango de IP que usará su codificador de respaldo, en forma de 1.2.3.4/32
  3. 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.
  4. La respuesta debería ser algo como esto si está utilizando el rtp-fec protocolo:

      {
          "id": "42c913e5373844a99a6285367f2704ec",
          "outputs": [... removed for simplicity ...],
          "stream_url": "rtp://ec2-34-212-0-224.us-west-2.compute.amazonaws.com:12675",
          "stream_name": "42c913e5373844a99a6285367f2704ec.stream",
          "static": false,
          "encryption": {},
          "playback_url": "https://bcovlive-a.akamaihd.net/42c913e5373844a99a6285367f2704ec/us-west-2/NA/playlist.m3u8",
          "playback_url_dvr": "https://bcovlive-a.akamaihd.net/42c913e5373844a99a6285367f2704ec/us-west-2/NA/playlist_dvr.m3u8"
      }

    O así para srt:

      {
          "id": "cdb820f2d7764b91a79536dac799fb77",
          "outputs": [... removed for simplicity ...],
          "stream_url": "srt://ec2-34-212-0-224.us-west-2.compute.amazonaws.com:13820",
          "stream_name": "cdb820f2d7764b91a79536dac799fb77.stream",
          "static": false,
          "encryption": {},
          "playback_url": "https://bcovlive-a.akamaihd.net/cdb820f2d7764b91a79536dac799fb77/us-west-2/NA/playlist.m3u8",
          "playback_url_dvr": "https://bcovlive-a.akamaihd.net/cdb820f2d7764b91a79536dac799fb77/us-west-2/NA/playlist_dvr.m3u8"
      }

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

Configure su codificador (TS + FEC)

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 esto rtp-fec entrada son:

  • Configurar la fuente del código de tiempo como "reloj del sistema"
  • Establezca "Corrección de errores de reenvío" en "Columna y fila" y establezca los valores de "Profundidad de columna" y "Longitud de fila":
    • Profundidad de columna: 4 (se agregará 1 paquete FEC adicional a cada paquete TS de "profundidad de columna")
    • Longitud de la fila: 10 (se agregará 1 paquete FEC adicional por cada paquete TS de "Longitud de fila")
    • Los datos adicionales agregados se pueden calcular: TotalBitrate = MediaBitrate * (1 / (ColumnDepth + 1) + 1 / (RowLength + 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 esta muestra de TS + FEC:

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

Configura tu codificador (SRT)

La configuración que se muestra aquí se basa en un Haivision KB codificador, que se utilizó para probar los pasos de este tutorial. Si tiene un codificador diferente, la configuración debería ser similar.

Esta es la configuración que usamos para esta muestra de SRT:

Haivision-live-job-config
Configuración en vivo de Haivision

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