Backup-Streams

Du kannst Backup-Live-Video-Daten gleichzeitig an einen Live-Video-Broadcast streamen. Sollte dein primärer Stream fehlschlagen, wechseln wir deinen Backup-Stream automatisch, damit dein Live-Video-Broadcast störungsfrei weiterlaufen kann. Dein Broadcast verwendet weiterhin den Backup-Stream, es sei denn, du wechselst manuell zum primären Stream zurück oder dein primärer Stream wurde fortgesetzt und dein Backup-Stream schlägt fehl.

Damit du einen Backup-Stream mit einem Live-Video-Broadcast verwenden kannst, musst du Backup-Streaming bei der Erstellung des LiveVideo-Objekts des Broadcasts aktivieren. Alternativ kannst du es für das LiveVideo-Objekt aktivieren, bevor es Streaming-Daten erhält.

Aktivieren von Backup-Streaming bei der LiveVideo-Erstellung

Nimm den enable_backup_ingest=true-Parameter für den Abfrage-String in deine Abfrage auf, wenn du beimErstellen des LiveVideo-Objekts deines Broadcasts Backup-Streaming aktivieren möchtest.

Hier ein Beispiel zum Erstellen eines LiveVideo-Objekts mit aktiviertem Backup-Streaming für einen Nutzer:

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

Hiermit werden zwei URLs zurückgegeben, eine für deinen primären Stream und eine für deinen Backup-Stream (sekundär):

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

Verwende secure_stream_url für deinen primären Erfassung-Stream und secure_stream_secondary_urls für deinen Backup-Erfassungs-Stream. Du kannst Backup-Daten während des Broadcasts jederzeit an dein LiveVideo-Objekt streamen.

Beispiel-cURL-Anfrage

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

Beispielantwort

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

Aktivieren von Backup-Streaming für vorhandenes LiveVideo-Objekt

Du kannst Backup-Streaming für ein vorhandenes LiveVideo-Objekt aktivieren, solange es noch keine Live-Video-Streaming-Daten erhalten hat. Sende hierzu eine POST-Anfrage an die /input_streams-Edge des LiveVideo-Objekts. Beispiel:

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

Hiermit wird die ID des Live-Videos zurückgegeben:

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

Nach der Aktivierung kannst du [die URLs des primären und des Backup-Streams] vom LiveVideo-Objekt abrufen.

Beispiel-cURL-Anfrage

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

Beispielantwort

{ "id": "10215840463339953" }

Manuelles Wechseln von Streams

Du kannst manuell zwischen dem primären Stream und dem Backup-Stream eines LiveVideos wechseln, indem du eine Anfrage sendest an:

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

Der {master-ingest-stream-id}-Wert ist ein boolescher Wert. 0 steht für den primären Erfassungs-Stream und 1 für den Backup-Erfassungs-Stream.

Beispiel-cURL-Anfrage

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

Abrufen der URLs des primären und des Backup-Streams

Du kannst ein ingest_streams-Feld des Live-Videos abrufen, um die URLs seines primären und seines Backup-Streams abzurufen

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

Hiermit werden die Erfassungs-Stream-Integrität und die Stream-URLs für den primären und den Backup-Stream (gegebenenfalls) für das LiveVideo zurückgegeben:

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

Beispiel-cURL-Anfrage

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

Beispielantwort

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