عمليات البث الاحتياطية

يمكنك بث بيانات النسخ الاحتياطي لفيديو البث المباشر في وقت واحد إلى عملية بث فيديو البث المباشر. وإذا فشل البث الأساسي لديك، فسيتم التبديل تلقائيًا إلى البث الاحتياطي بحيث تستمر عملية بث فيديو البث المباشر دون انقطاع. وستستمر عملية البث لديك باستخدام البث الاحتياطي إلا إذا قررت التبديل مرة أخرى إلى البث الأساسي يدويًا، أو إذا تم استئناف البث الأساسي لديك وفشل البث الاحتياطي.

لاستخدام بث احتياطي مع عملية بث فيديو البث المباشر، يجب تمكين البث الاحتياطي عند إنشاء كائن البث LiveVideo أو تمكينه على كائن LiveVideo قبل أن يتلقى بيانات البث.

تمكين البث الاحتياطي عند إنشاء كائن LiveVideo

لتمكين البث الاحتياطي عند إنشاء كائن البث LiveVideo لديك، يجب تضمين معلمة سلسلة الاستعلام enable_backup_ingest=true في استعلامك.

على سبيل المثال، لإنشاء كائن LiveVideo مع تمكين البث الاحتياطي لدى مستخدم:

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

سيؤدي ذلك إلى إرجاع عنواني URL، أحدهما للبث الأساسي لديك، والآخر للبث الاحتياطي (الثانوي) الذي أجريته:

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

استخدم عنوان secure_stream_url بالنسبة لبث الاستيعاب الأساسي لديك وعنوان secure_stream_secondary_urls لبث الاستيعاب الاحتياطي الذي أجريته. يمكنك بث بيانات النسخ الاحتياطي إلى كائن LiveVideo الذي أنشأته في أي وقت أثناء عملية البث.

عينة من طلب cURL

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

تمكين البث الاحتياطي على كائن LiveVideo الحالي

يمكنك تمكين البث الاحتياطي على كائن LiveVideo الحالي، ما لم يتلق أي بيانات بث لفيديو البث المباشر، من خلال إرسال طلب POST إلى عنصر ربط /input_streams التابع لكائن LiveVideo. فعلى سبيل المثال:

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

سيؤدي ذلك إلى إرجاع معرف LiveVideo:

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

وبمجرد التمكين، يمكنك [الحصول على عناوين URL للبث الأساسي والبث الاحتياطي] من كائن LiveVideo.

عينة من طلب cURL

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

عينة من الاستجابة

{ "id": "10215840463339953" }

التبديل بين عمليات البث يدويًا

يمكنك التبديل يدويًا بين البث الأساسي والبث الاحتياطي لكائن LiveVideo عن طريق إرسال طلب إلى:

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

القيمة {master-ingest-stream-id} هي قيمة منطقية؛ حيث يمثل 0 بث الاستيعاب الأساسي، ويمثل 1 بث الاستيعاب الاحتياطي.

عينة من طلب cURL

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

الحصول على عناوين URL للبث الأساسي والبث الاحتياطي

يمكنك الاطلاع على حقل ingest_streams لكائن LiveVideo للحصول على عناوين URL للبث الأساسي والبث الاحتياطي التابعة له:

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

سيؤدي ذلك إلى إرجاع حالة سلامة أداء بث الاستيعاب وعناوين URL للبث لكل من البث الأساسي والبث الاحتياطي (إن وجد) على كائن 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

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