Se actualizó este documento.
La traducción en español no está disponible todavía.
Actualización del documento en inglés: 5 oct. 2020

Streams de copia de seguridad

Puedes realizar el stream de copia de seguridad de los datos de un video en vivo simultáneamente a una transmisión de video en vivo. Si tu stream principal falla, cambiaremos automáticamente a tu stream de copia de seguridad para que tu transmisión de video en vivo pueda continuar sin interrupciones. Tu transmisión seguirá usando el stream de copia de seguridad a menos que manualmente hagas el cambio a tu stream principal o que tu stream principal se haya reanudado y tu stream de copia de seguridad falle.

Par usar un stream de copia de seguridad con una transmisión de video en vivo, debes activar el streaming de copia de seguridad durante la creación del objeto de video en vivo de la transmisión o activarlo en el objeto de video en vivo antes de que reciba los datos del streaming.

Activar el streaming de copia de seguridad durante la creación de un video en vivo

Para activar el streaming de copia de seguridad durante la creación del objeto de video en vivo de tu transmisión, incluye el parámetro de cadena de consulta enable_backup_ingest=true en tu consulta.

Por ejemplo, para crear un video en vivo con el streaming de copia de seguridad activado en un usuario:

POST /{user-id}/live_videos ?status=LIVE_NOW &enable_backup_ingest=true &access_token={access-token}

Esto devolverá dos URL, una para tu stream principal y otra para tu stream de copia de seguridad (secundario):

{ "id": "{live-video-id}", "stream_url": "{stream-url}", "secure_stream_url": "{secure-stream-url}", "stream_secondary_urls": [ "{stream-secondary-urls}" ], "secure_stream_secondary_urls": [ "{secure-stream-secondary-urls}" ] }

Usa secure_stream_url para tu stream de introducción principal y secure_stream_secondary_urls para tu stream de introducción de copia de seguridad. Puedes realizar el stream de copia de seguridad de los datos a tu objeto de video en vivo en cualquier momento durante la transmisión.

Ejemplo de solicitud de cURL

curl -i -X POST \ "https://graph.facebook.com/362629830945302/live_videos ?enable_backup_ingest=true &access_token=EAAI4b..."

Ejemplo de respuesta

{ "id": "10215840463339953", "stream_url": "rtmps://rtmp.facebook.com/rtmp/10215840463339953?s_bl=1&s_l=1&s_sml=3&s_sw=0&s_vt=api&a=AbxMhT-cq73GTdpuPLo", "secure_stream_url": "rtmps://rtmp.facebook.com/rtmp/10215840463339953?s_bl=1&s_l=1&s_sml=3&s_sw=0&s_vt=api&a=AbxMhT-cq73GTdpuPLo", "stream_secondary_urls": [ "rtmp://rtmps.facebook.com/rtmp/10215840463339953?s_bl=1&s_l=1&s_sml=3&s_sw=1&s_vt=api&a=AbzhD2fKJw1Uw7JQjFc" ], "secure_stream_secondary_urls": [ "rtmps://rtmps.facebook.com/rtmp/10215840463339953?s_bl=1&s_l=1&s_sml=3&s_sw=1&s_vt=api&a=AbzhD2fKJw1Uw7JQF80" ] }

Activar el streaming de copia de seguridad en un video en vivo existente

Puedes activar el streaming de copia de seguridad en un objeto de video en vivo existente, siempre que este no haya recibido los datos del streaming del video en vivo, enviando una solicitud POST al perímetro /input_streams del video en vivo. Por ejemplo:

POST /{live-video-id}/input_streams &access_token={access-token}

Esto devolverá el identificador del video en vivo:

{ "id": "{live-video-id}" }

Una vez que se active el streaming, podrás [obtener las URL de stream principal y de copia de seguridad] del objeto de video en vivo.

Ejemplo de solicitud de cURL

curl -i -X POST \ "https://graph.facebook.com/10215840463339953/input_streams &access_token=EAAI4b..."

Ejemplo de respuesta

{ "id": "10215840463339953" }

Cambiar de stream manualmente

Para cambiar manualmente del stream principal al stream de copia de seguridad de un video en vivo, y viceversa, puedes enviar una solicitud a:

POST /{live-video-id} ?master_ingest_stream_id={master-ingest-stream-id} &access_token={access-token}

El valor {master-ingest-stream-id} es booleano; 0 representa el stream de introducción principal y 1 representa el stream de introducción de copia de seguridad.

Ejemplo de solicitud de cURL

curl -i -X POST \ "https://graph.facebook.com/10215840463339953 ?master_ingest_stream_id=1 &access_token=EAAI4b..."

Obtener las URL de stream principal y de copia de seguridad

Puedes leer el campo ingest_streams de un video en vivo para obtener sus URL de stream principal y de copia de seguridad:

GET /{live-video-id} ?fields=ingest_streams &acess_token={access-token}

Esto devolverá las URL de stream y estado de stream de introducción para los streams principal y de copia de seguridad (si existen) de un video en vivo.

{ "ingest_streams": [ { "stream_id": "{stream-id}", "stream_url": "{stream-url}", "secure_stream_url": "{secure-stream-url}", "is_master": {is-master}, "stream_health": {stream-health}, "id": "{id}" }, { "stream_id": "{stream-id}", "stream_url": "{stream-url}", "secure_stream_url": "{secure-stream-url}", "is_master": {is-master}, "stream_health": {stream-health}, "id": "{id}" } ], "id": "10215840874550233" }

Ejemplo de solicitud de cURL

curl -i -X GET \ "https://graph.facebook.com/10215840463339953 ?fields=ingest_streams &access_token=EAAI4b..."

Ejemplo de respuesta

{ "ingest_streams": [ { "stream_id": "0", "stream_url": "rtmps://live-api.facebook.com/rtmp/10215840874550233?s_bl=1&s_l=1&s_sml=3&s_sw=0&s_vt=api&a=AbyvsHKGRrur_sZOeuo", "secure_stream_url": "rtmps://live-api.facebook.com/rtmp/10215840874550233?s_bl=1&s_l=1&s_sml=3&s_sw=0&s_vt=api&a=AbyvsHKGRrur_sZOF08", "is_master": true, "stream_health": { "video_bitrate": 2304481.75, "video_framerate": 27.586206436157, "video_gop_size": 2000, "video_height": 700, "video_width": 1120, "audio_bitrate": 118149.8828125 }, "id": "10215840874630235" }, { "stream_id": "1", "stream_url": "rtmps://live-api.facebook.com/rtmp/10215840874550233?s_bl=1&s_l=1&s_sml=3&s_sw=1&s_vt=api_dev&a=AbySai39Wr08FKpUYw0", "secure_stream_url": "rtmps://live-api.facebook.com/rtmp/10215840874550233?s_bl=1&s_l=1&s_sml=3&s_sw=1&s_vt=api_dev&a=AbySai39Wr08FKpUv3M", "is_master": false, "stream_health": { "video_bitrate": 1866942.625, "video_framerate": 22.338048934937, "video_gop_size": 2000, "video_height": 700, "video_width": 1120, "audio_bitrate": 95675.3515625 }, "id": "10215840874670236" } ], "id": "10215840874550233" }