يمكنك بث بيانات النسخ الاحتياطي لفيديو البث المباشر في وقت واحد إلى عملية بث فيديو البث المباشر. وإذا فشل البث الأساسي لديك، فسيتم التبديل تلقائيًا إلى البث الاحتياطي بحيث تستمر عملية بث فيديو البث المباشر دون انقطاع. وستستمر عملية البث لديك باستخدام البث الاحتياطي إلا إذا قررت التبديل مرة أخرى إلى البث الأساسي يدويًا، أو إذا تم استئناف البث الأساسي لديك وفشل البث الاحتياطي.
لاستخدام بث احتياطي مع عملية بث فيديو البث المباشر، يجب تمكين البث الاحتياطي عند إنشاء كائن البث 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 -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 الحالي، ما لم يتلق أي بيانات بث لفيديو البث المباشر، من خلال إرسال طلب POST
إلى عنصر ربط /input_streams
التابع لكائن LiveVideo. فعلى سبيل المثال:
POST /{live-video-id}/input_streams &access_token={access-token}
سيؤدي ذلك إلى إرجاع معرف LiveVideo:
{ "id": "{live-video-id}" }
وبمجرد التمكين، يمكنك [الحصول على عناوين URL للبث الأساسي والبث الاحتياطي] من كائن LiveVideo.
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 -i -X POST \ "https://graph.facebook.com/10215840463339953 ?master_ingest_stream_id=1 &access_token=EAAI4b..."
يمكنك الاطلاع على حقل 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 -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" }