Inicio rápido: Cree una transmisión en vivo con la API en vivo de Brightcove
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 que aparecen a continuación incluirán pasos para configurar la transmisión en directo mediante Wirecast ( regístrate 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
Crear trabajo en vivo
Primero crearemos el trabajo en vivo.
- 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 } ] }
- 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.
- La respuesta de la API debería ser similar a esta:
{ "id": "15981d93877e490185e6ebc9af2c79a3", "outputs": [ { "id": "0-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_vod.m3u8", "label": "hls720p" }, { "id": "1-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_vod.m3u8", "label": "hls540p" }, { "id": "2-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_dvr.m3u8", "playback_url_vod": "http://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": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8", "ssai_playback_urls": { "685b239f582c42fca49da33be4f2328e": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8", "playback_url_dvr": "http://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": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8", "playback_url_dvr": "http://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": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8", "ssai_playback_urls": { "685b239f582c42fca49da33be4f2328e": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8", "playback_url_dvr": "http://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": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Counter - a95ac581551b4478b27910e5675db1f8", "type": "counter" } } }
- 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.
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:
-
Primero, necesitará crear un nuevo video haciendo un
POST
solicitud de:https://cms.api.brightcove.com/v1/accounts/account_id/videos
-
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" }
-
La respuesta contendrá todos los metadatos de vídeo, pero el campo importante es el
id
, al que necesitará agregar el activo remoto. -
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
-
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.
- Cree una página HTML simple para probar el reproductor de transmisión en vivo. Puede incluir cualquier otro contenido que desee o ninguno.
- En Studio Media Module, seleccione el video creado en los pasos anteriores y haga clic en Publicar e insertar> Reproductor web:
- En el cuadro de diálogo Publicar, seleccione un reproductor (el reproductor predeterminado de Brightcove está bien):
- 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:
- Guarde su página html en un servidor web local o remoto para que pueda navegar por ella.
- Abra la página en su navegador web. Como no hemos comenzado a vaporizar, verá un 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 este 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.
- Inicie sesión en Video Cloud Studio .
- Vaya al Módulo de medios.
- En las opciones de la izquierda, haga clic en Agregar video remoto:
- 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 en Agregar reproducción , y Ahorrar:
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.
- Abra Wirecast.
- Coloca el cursor sobre el +, hacer clic Dispositivos de captura y luego seleccione su cámara.
- Haga clic en el botón de flecha ( ) para hacer que la cámara capture la toma en vivo.
- Haga clic en el Arroyo botón ( ). Se le pedirá que configure los ajustes de salida.
- Selecciona el Destino a Servidor RTMP. Hacer clic OK.
- Para la dirección, usa la stream_url devuelta desde la Live API (paso 3).
- Para el Stream, úsalo vivo.
- (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.
- Hacer clic OK para guardar la configuración de salida.
- 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 elstream_url
de tu trabajo (elrtmp
habla a)stream_name
: el nombre de la transmisión debe seralive
Una vez que inicie la transmisión en vivo, debería verla aparecer en el reproductor Brightcove que creó en los pasos anteriores.