Trasmissione in streaming di backup

Ora puoi eseguire lo streaming simultaneo di dati di backup video in diretta su una trasmissione video in diretta. Se lo streaming principale ha dei problemi, passeremo automaticamente allo streaming di backup in modo che la tua trasmissione di video in diretta possa continuare senza interruzioni. La trasmissione continuerà a utilizzare lo streaming di backup a meno che tu non torni manualmente allo streaming principale oppure nel caso in cui lo streaming principale si sia ripreso e quello di backup mostri dei problemi.

Per utilizzare uno streaming di backup con una trasmissione video in diretta, è necessario abilitare lo streaming di backup quando crei l'oggetto LiveVideo della trasmissione o lo abiliti sull'oggetto LiveVideo prima che riceva i dati di streaming.

Abilitare lo streaming di backup alla creazione di LiveVideo

Per abilitare lo streaming di backup quando crei l'oggetto LiveVideo della tua trasmissione, includi il parametro della stringa di query enable_backup_ingest=true nella query.

Ad esempio, per creare un LiveVideo con streaming di backup abilitato su un Utente:

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

Questo restituirà due URL, uno per lo streaming principale e uno per quello di backup (secondario):

{ "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 per lo streaming principale e secure_stream_secondary_urls per lo streaming di backup. Puoi eseguire lo streaming di dati di backup sul tuo oggetto LiveVideo in qualsiasi momento durante la trasmissione.

Esempio di richiesta cURL

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

Esempio di risposta

{ "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" ] }

Abilitare lo streaming di backup su un LiveVideo esistente

Puoi abilitare lo streaming di backup su un oggetto LiveVideo esistente purché non abbia ricevuto dati di streaming video in diretta inviando una richiesta POST al segmento /input_streams di LiveVideo. Ad esempio:

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

Questo restituirà l'ID del LiveVideo:

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

Una volta abilitato, puoi [ottenere gli URL dello streaming principale e di backup] dall'oggetto LiveVideo.

Esempio di richiesta cURL

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

Esempio di risposta

{ "id": "10215840463339953" }

Passaggio manuale da uno streaming all'altro

Puoi passare manualmente dallo streaming principale LiveVideo a quello di backup inviando una richiesta a:

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

Il valore {master-ingest-stream-id} è un booleano; 0 rappresenta lo streaming principale e 1 rappresenta lo streaming di backup.

Esempio di richiesta cURL

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

Ottenere gli URL di streaming principale e di backup

Puoi leggere il campo di un LiveVideoingest_streams per ottenere gli URL dello streaming principale e di backup:

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

Questa operazione restituirà lo stato dello streaming e gli URL dello streaming principale e di backup (se presente) sul LiveVideo:

{ "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" }

Esempio di richiesta cURL

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

Esempio di risposta

{ "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" }