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.
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.
curl -i -X POST \ "https://graph.facebook.com/362629830945302/live_videos ?enable_backup_ingest=true &access_token=EAAI4b..."
{ "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" ] }
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.
curl -i -X POST \ "https://graph.facebook.com/10215840463339953/input_streams &access_token=EAAI4b..."
{ "id": "10215840463339953" }
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.
curl -i -X POST \ "https://graph.facebook.com/10215840463339953 ?master_ingest_stream_id=1 &access_token=EAAI4b..."
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" }
curl -i -X GET \ "https://graph.facebook.com/10215840463339953 ?fields=ingest_streams &access_token=EAAI4b..."
{ "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" }