Inicio rápido: Cree una transmisión en vivo utilizando Brightcove Live API

Este tutorial lo guiará a través de la creación de un trabajo de transmisión en vivo utilizando la API en vivo.

Que necesitas

Para completar este tutorial, necesita lo siguiente.

  • Una cuenta configurada para Live API
  • Una clave de API para Live API (que se le proporciona cuando se configura la cuenta)
  • Una cuenta de Video Cloud (no es necesaria para crear el trabajo de transmisión en vivo, pero es necesaria para configurar la reproducción en Brightcove Player)
  • Si va a utilizar el CMS API Para crear el video de Video Cloud en lugar de Studio, necesitará credenciales de cliente con permisos de video / lectura y video / escritura; si no está familiarizado con el proceso de obtención de credenciales de cliente, consulte la autenticación sección siguiente.
  • La capacidad de realizar solicitudes de API REST a través de rizo o un cliente REST como Insomnio o Cartero.

    Para ayudarlo, hemos preparado algunas importaciones de Insomnia y Postman que puede usar para el ejercicio (en Brightcove Learning Services, preferimos y usamos Insomnia, pero Postman también funcionará si eso es lo que tiene):

    En cada uno de los archivos zip, encontrará una página Léame para ayudarlo.

  • Para crear una transmisión en vivo real, necesitará un codificador de software o hardware para la transmisión en vivo. Las instrucciones a continuación incluirán los pasos para configurar la transmisión en vivo usando Wirecast ( Regístrese para una prueba). Si está utilizando un codificador diferente, el proceso será diferente pero debería ser similar en términos de la información que necesita de la respuesta de la API en vivo.

Obtenga credenciales para la API de CMS

Usar el CMS API necesitará las credenciales adecuadas.

La forma más sencilla de obtener credenciales en la mayoría de los casos es a través de la sección Autenticación de API de administración de Studio (requiere permisos de administrador en tu cuenta). Consulte Administración de credenciales de autenticación de API para obtener más información. En este caso, los permisos que necesita son para compartir relaciones - necesita permisos de lectura y escritura:

Compartir permisos de relación
Compartir permisos de relación

Si los permisos que necesita no están disponibles en Studio, o si prefiere obtenerlos directamente de la API de OAuth, utilice su elección de Obtener credenciales de cliente documentos que se enumeran a continuación. Sea cual sea la opción que elija, tendrá que solicitar los permisos de operación correctos. Lo siguiente se puede usar con cURL o Postman para obtener los permisos adecuados:

"operations": [
    "video-cloud/videos/read",
    "video-cloud/videos/create",
    "video-cloud/videos/update"]

Crear trabajo en vivo

Primero crearemos el trabajo en vivo.

  1. Para este paso, enviará un POST solicitud de:
    https://api.bcovlive.io/v1/jobs

    Utilice lo siguiente como cuerpo de la solicitud:

    {
        "live_stream": true,
        "region": "us-west-2",
        "reconnect_time": 1800,
        "outputs": [
            {
                "label": "hls720p",
                "live_stream": true,
                "width": 1280,
                "height": 720,
                "video_codec": "h264",
                "h264_profile": "high",
                "video_bitrate": 2100,
                "segment_seconds": 4,
                "keyframe_interval": 60
            },
            {
                "label": "hls540p",
                "live_stream": true,
                "width": 960,
                "height": 540,
                "video_codec": "h264",
                "h264_profile": "main",
                "video_bitrate": 1500,
                "segment_seconds": 4,
                "keyframe_interval": 60
            },
            {
                "label": "hls360p",
                "live_stream": true,
                "width": 640,
                "height": 360,
                "video_codec": "h264",
                "h264_profile": "main",
                "video_bitrate": 800,
                "segment_seconds": 4,
                "keyframe_interval": 60
            }
        ]
    }
  2. Si utiliza un cliente REST como Insomnia o Postman, deberá agregar los siguientes encabezados para su solicitud:
    Clave Valor
    X-API-KEY TU CLAVE API
    Tipo de contenido aplicación / json

    Utilice el cuerpo de la solicitud que se muestra en el paso 1 anterior y asegúrese de enviar la solicitud mediante el método POST.

  3. La respuesta de la API debería ser similar a esta:
    Respuesta de muestra
    		{
    				"id": "15981d93877e490185e6ebc9af2c79a3",
    				"outputs": [
    						{
    								"id": "0-15981d93877e490185e6ebc9af2c79a3",
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_dvr.m3u8",
    								"playback_url_vod": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_vod.m3u8",
    								"label": "hls720p"
    						},
    						{
    								"id": "1-15981d93877e490185e6ebc9af2c79a3",
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_dvr.m3u8",
    								"playback_url_vod": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_vod.m3u8",
    								"label": "hls540p"
    						},
    						{
    								"id": "2-15981d93877e490185e6ebc9af2c79a3",
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_dvr.m3u8",
    								"playback_url_vod": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_vod.m3u8",
    								"label": "hls360p"
    						},
    						{
    								"id": "3-15981d93877e490185e6ebc9af2c79a3",
    								"playlist_type": "defaultS3",
    								"type": "playlist",
    								"filename": "playlist.m3u8",
    								"dvr_filename": "playlist_dvr.m3u8",
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8",
    								"ssai_playback_urls": {
    										"685b239f582c42fca49da33be4f2328e": {
    												"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8",
    												"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_dvr_ssaiM.m3u8",
    												"playback_added_cdns": [],
    												"description": "House Ads - a95ac581551b4478b27910e5675db1f8",
    												"type": "ads"
    										},
    										"c96e2d00d6744c65a3eddb15425e4a51": {
    												"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8",
    												"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8",
    												"playback_added_cdns": [],
    												"description": "House Counter - a95ac581551b4478b27910e5675db1f8",
    												"type": "counter"
    										}
    								}
    						}
    						],
    						"stream_url": "rtmp://ep1-apse2.bcovlive.io:1935/15981d93877e490185e6ebc9af2c79a3",
    						"stream_name": "alive",
    						"encryption": {},
    						"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8",
    						"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8",
    						"ssai_playback_urls": {
    								"685b239f582c42fca49da33be4f2328e": {
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_dvr_ssaiM.m3u8",
    								"playback_added_cdns": [],
    								"description": "House Ads - a95ac581551b4478b27910e5675db1f8",
    								"type": "ads"
    								},
    								"c96e2d00d6744c65a3eddb15425e4a51": {
    								"playback_url": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8",
    								"playback_url_dvr": "https://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8",
    								"playback_added_cdns": [],
    								"description": "House Counter - a95ac581551b4478b27910e5675db1f8",
    								"type": "counter"
    						}
    				}
    		}
    		
    		
  4. Para nuestros propósitos, los campos importantes en la respuesta son:
    • stream_url (línea 51)
    • stream_name (línea 52)
    • reproducción_url (línea 54)

    Necesitará los valores de estos campos, de su propia respuesta, en los pasos siguientes.

Configurar video de Video Cloud

Ahora que tenemos la información de la transmisión en vivo, configuraremos un video remoto en Video Cloud para que podamos reproducirlo en un Brightcove Player.

En estos pasos, configuramos el vídeo utilizando la API de CMS, pero esto también se puede hacer en Video Cloud Studio, si lo prefieres, consulta los pasos alternativos a continuación.

Si está utilizando Insomnia o Postman, deberá configurar la autenticación OAuth2 con sus credenciales de cliente. Consulte una de las siguientes guías si necesita ayuda:

  1. Primero, necesitará crear un nuevo video haciendo un POST solicitud de:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos
  2. El cuerpo de la solicitud puede incluir varios fragmentos de metadatos (consulte la referencia de la API para obtener más detalles), pero lo único que se requiere es un name:

    {
        "name": "some name for your live stream"
    }
  3. La respuesta contendrá todos los metadatos de vídeo, pero el campo importante es el id, al que necesitará agregar el activo remoto.

  4. Para agregar la secuencia HLS, creará otra POST solicitud de:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/hls_manifest
  5. Esta vez, el cuerpo de la solicitud será:

    {
        "remote_url": "playback_url for your live stream"
    }

Agregar video a un reproductor

Ahora crearemos una página HTML simple y le agregaremos un reproductor con el video que acabamos de crear.

  1. Cree una página HTML simple para probar el reproductor de transmisión en vivo. Puede incluir cualquier otro contenido que desee o ninguno.
  2. En Studio Media Module, seleccione el video creado en los pasos anteriores y haga clic en Publicar e insertar> Reproductor web:
    Publicar video
    Publicar video
  3. En el cuadro de diálogo Publicar, seleccione un reproductor (el reproductor predeterminado de Brightcove está bien):
    Seleccione jugador
    Seleccione jugador
  4. Desplácese hacia abajo, establezca el tamaño del reproductor que desee y luego haga clic en el bloque de código para seleccionar el código del reproductor estándar; copie este código y péguelo en el cuerpo de su página html:
    Obtener código de publicación
    Obtener código de publicación
  5. Guarde su página html en un servidor web local o remoto para que pueda navegar por ella.
  6. Abra la página en su navegador web. Como no hemos comenzado a vaporizar, verá un error de medios:
    Error de medios
    Error de medios

comandos cURL

Esta sección proporciona comandos de cURL alternativos para aquellos que no utilizan un cliente REST como Insomnia o Postman.

cURL para crear un trabajo en vivo

## Create Job - Simple
	curl -X "POST" "https://api.bcovlive.io/v1/jobs" \
	-H "X-API-KEY: YOUR_API_KEY_HERE" \
	-H "Content-Type: application/json" \
	-d $'{
	"outputs": [
	{
	"height": 720,
	"video_bitrate": 2100,
	"segment_seconds": 4,
	"keyframe_interval": 60,
	"width": 1280,
	"video_codec": "h264",
	"label": "hls720p",
	"h264_profile": "high",
	"live_stream": true
	},
	{
	"height": 540,
	"video_bitrate": 1500,
	"segment_seconds": 4,
	"keyframe_interval": 60,
	"width": 960,
	"video_codec": "h264",
	"label": "hls540p",
	"h264_profile": "main",
	"live_stream": true
	},
	{
	"height": 360,
	"video_bitrate": 800,
	"segment_seconds": 4,
	"keyframe_interval": 60,
	"width": 640,
	"video_codec": "h264",
	"label": "hls360p",
	"h264_profile": "main",
	"live_stream": true
	}
	],
	"region": "us-west-2",
	"reconnect_time": 1800,
	"live_stream": true
	}'

Copie el código en un editor de texto y reemplace YOUR_API_KEY_HERE con su propia clave de API. Luego copie y pegue el código en una línea de comando y ejecútelo.

Usa Studio para crear el video

Aquí hay pasos alternativos para crear el video en Studio.

  1. Inicie sesión en Video Cloud Studio.
  2. Vaya al Módulo de medios.
  3. En las opciones de la izquierda, haga clic en Agregar video remoto:
    Agregar elemento de menú de video remoto
    Agregar elemento de menú de video remoto
  4. En el Agregar video remoto cuadro de diálogo, agregue un nombre de video y copie y pegue el valor para el playback_url de la respuesta de la API en vivo en el campo URL. Luego haga clic Agregar representación , y Ahorrar:
    Cuadro de diálogo Agregar representación
    Cuadro de diálogo Agregar representación

Use Wirecast para transmitir un evento

En esta sección, configuraremos y usaremos el codificador Telestream Wirecast para admitir un evento de transmisión en vivo. El software Telestream Wirecast es una aplicación de escritorio que captura la entrada de su cámara y produce una transmisión que puede ser entregada por un CDN. Tenga en cuenta que existen soluciones de codificación basadas en hardware y otro software disponibles que pueden ser más adecuadas para ofrecer su evento de transmisión en vivo. Puede descargar una versión de prueba del software Wirecast desde el Sitio web de Telestream.

Nota: Debe tener instalado el software Wirecast y tener una cámara conectada al equipo antes de continuar.

Para configurar Wirecast para un evento en vivo, siga estos pasos.

  1. Abra Wirecast.
  2. Coloca el cursor sobre el +, hacer clic Dispositivos de captura y luego seleccione su cámara.
    Seleccionar cámara
    Seleccionar una cámara
  3. Haga clic en el botón de flecha ( ) para que la cámara tome la toma en vivo.
    Configuración de la cámara
    Configuración de la cámara Wirecast
  4. Haga clic en el Arroyo botón ( ). Se le pedirá que configure los ajustes de salida.
  5. Selecciona el Destino a Servidor RTMP. Hacer clic OK.
  6. Para la dirección, usa la stream_url devuelta desde la Live API (paso 3).
  7. Para el Stream, úsalo vivo.
    Ajustes de salida
    Configuración de salida Wirecast
  8. (Opcional) Para crear flujos de salida adicionales, haga clic en Agregar... Al crear flujos de salida adicionales, es posible que desee crear su propio perfil de codificación personalizado para controlar la tasa de bits de salida. Asegúrese de que el Arroyo el nombre refleja la nueva tasa de bits.
  9. Hacer clic OK para guardar la configuración de salida.
  10. Haga clic en el Arroyo botón ( ). La transmisión en vivo debería comenzar.

Conclusión

Ahora está listo para crear una sesión de transmisión en vivo. Debe agregar lo siguiente a la configuración de su codificador:

  • stream_url: añade el stream_url de tu trabajo (el rtmp habla a)
  • stream_name: el nombre de la transmisión debe ser alive

Una vez que inicie la transmisión en vivo, debería verla aparecer en el reproductor Brightcove que creó en los pasos anteriores.