Facebook มีเซิร์ฟเวอร์การนำเข้าวิดีโอถ่ายทอดสดทั่วโลก ซึ่งใช้ในการแพร่ภาพวิดีโอถ่ายทอดสดของคุณ โปรดใช้การทดสอบความเร็วเพื่อเลือกเซิร์ฟเวอร์การนำเข้าวิดีโอที่ดีที่สุดสำหรับการแพร่ภาพของคุณ
การทดสอบความเร็วจะเป็นการส่งไฟล์ไบนารีไปยังชุด URL ปลายทางตามลำดับที่ได้รับ การทดสอบแต่ละครั้งจะประเมินการเชื่อมต่อของคุณกับเซิร์ฟเวอร์การนำเข้าวิดีโอของ Facebook ที่เฉพาะเจาะจง โดยเซิร์ฟเวอร์จะตอบกลับพร้อมรายละเอียดเกี่ยวกับความเร็วในการเชื่อมต่อที่วัดได้ เวลาที่ใช้ในการรับส่งข้อมูล และปัจจัยสำคัญอื่นๆ การรวบรวมผลลัพธ์ดังกล่าวในแต่ละการทดสอบที่ต่อเนื่องกันช่วยให้ Facebook สามารถเลือกชุด URL ปลายทางถัดไปได้จนกว่าจะมีการกำหนดเซิร์ฟเวอร์การนำเข้าที่ดีที่สุด จากนั้น API จะตอบกลับด้วยโทเค็นเป้าหมาย เมื่อคุณมีโทเค็นเป้าหมายแล้ว ให้ระบุโทเค็นไว้ทุกครั้งที่คุณสร้างการแพร่ภาพวิดีโอถ่ายทอดสด และ API จะตอบกลับด้วย URL ของสตรีมที่ได้ปรับให้เหมาะสมกับการเชื่อมต่อของคุณ
นอกจากนี้ คุณยังสามารถใช้เครื่องมือ Live Ingests ของ Facebook แทน API การทดสอบความเร็วเพื่อกำหนดเซิร์ฟเวอร์การนำเข้าที่เหมาะสมสำหรับการแพร่ภาพวิดีโอถ่ายทอดสดของคุณได้อีกด้วย
ในการเริ่มเซสชั่นการทดสอบใหม่ ให้ส่งคำขอไปที่:
GET /traffic_speedtest?fields=target_token,next_tests,upload_bandwidth_estimate_bits_per_second
ปลายทางจะตอบกลับด้วยอ็อบเจ็กต์ JSON ที่มีรายการกรณีทดสอบ โดยแต่ละกรณีทดสอบจะมี URL ปลายทางและจำนวนไบต์
ตัวอย่างคำขอ
curl -i -X GET "https://graph.facebook.com/v3.3/traffic_speedtest \ ?fields=target_token,next_tests,upload_bandwidth_estimate_bits_per_second \ &access_token={access-token}"
ตัวอย่างการตอบกลับ
{ //Formatted for clarity "next_tests": [ { "byte_count": 3145728, "url": "https://edge-star-kut.xx.fbcdn.net/upload-speed-test-api" }, { "byte_count": 3145728, "url": "https://edge-star-mad.xx.fbcdn.net/upload-speed-test-api" }, { "byte_count": 3145728, "url": "https://edge-star-ort.xx.fbcdn.net/upload-speed-test-api" }, { "byte_count": 3145728, "url": "https://edge-star-eze.xx.fbcdn.net/upload-speed-test-api" } ] }
ในการทดสอบแต่ละกรณี ให้อัพโหลดไฟล์ไบนารีที่มีขนาดตาม byte_count ที่กำหนดไปยัง URL ปลายทางที่เกี่ยวข้อง
POST /{destination-url}/upload-speed-test
ตัวอย่างคำขอ
ในตัวอย่างนี้ {binary-file}
เป็นไฟล์ที่มีไบต์แบบสุ่ม 3145728 ไบต์ ซึ่งแมตช์กับจำนวนไบต์จากการตอบกลับ
curl --data-binary @{binary-file} https://edge-star-kut.xx.fbcdn.net/upload-speed-test-api
ตัวอย่างการตอบกลับ
สตริงแบบทึบจะถูกส่งกลับ
eyJzdGFydFRpbWVNUyI6IjE1NjIxMDk4NDg3ODAiLCJydHQiO... //Truncated for brevity
ให้สร้างอาร์เรย์ชื่อ previous_results
ที่มีอ็อบเจ็กต์ JSON ซึ่งประกอบด้วยคุณสมบัติและค่าต่อไปนี้:
previous_results=[ { "test_url": "{destination-url}", "result_string": "{opaque-string}" } ]
หมายเหตุ: ให้ถือว่า result_string
เป็นสตริงแบบทึบ และไม่ต้องพยายามแปลการตอบกลับจากปลายทางของการทดสอบ หากตัวเข้ารหัสไม่สามารถเข้าถึง URL ปลายทางได้ ให้เว้นรายการเดียวนั้นไว้ในรายการ previous_results
พารามิเตอร์ | คำอธิบาย |
---|---|
| URL ปลายทางที่ทำการทดสอบ |
| สตริงผลการทดสอบที่ URL ส่งกลับมา |
ตัวอย่างอาร์เรย์ที่มีการตอบกลับการทดสอบรายการเดียว
previous_results=[ // JSON formatted for clarity { "test_url": "https://edge-star-kut.xx.fbcdn.net/upload-speed-test-api", "result_string": "eyJzdGFydFRpbWVNUyI6IjE1NjIxMDk4NDg3ODAiLCJydHQiO..." //Truncated for brevity } ]
ให้เพิ่มแต่ละ URL ปลายทางและการตอบกลับการทดสอบต่อท้ายอาร์เรย์ previous_results
คำเตือน
หลังการทดสอบ URL ชุดแรก ให้ส่งคำขอ URL อีกชุดหนึ่งและให้ระบุผลลัพธ์ก่อนหน้านี้เอาไว้ด้วย
GET /traffic_speedtest?fields=target_token,next_tests,upload_bandwidth_estimate_bits_per_second&previous_results={previous-results}
แทนที่ {previous-results}
ด้วยอาร์เรย์ผลการทดสอบที่คุณได้เก็บเอาไว้
ตัวอย่างคำขอ
curl -i -X GET 'https://graph.facebook.com/v3.3/traffic_speedtest \ ?fields=target_token,next_tests,upload_bandwidth_estimate_bits_per_second \ &access_token={access-token} \ &previous_results=[ // JSON formatted for clarity { "test_url":"https://edge-star-kut.xx.fbcdn.net/upload-speed-test-api", "result_string": { "eyJzdGFydFRpbWVNUyI6IjE1NjIxMDk4NDg3ODAiLCJydHQiO..." //Truncated for brevity } }, { "test_url":"https://edge-star-bru.xx.fbcdn.net/upload-speed-test-api", "result_string": { "eyJzdGFydFRpbWVNUyI6IjE1NjIxMDk4NDg3ODAiLCJydHQiO..." //Truncated for brevity } }, ... //Truncated for brevity ]'
ปลายทางจะส่งกลับรายการกรณีทดสอบใหม่หรือโทเค็นเป้าหมาย หากปลายทางตอบกลับมาพร้อมกับหลายกรณี ให้ทำการทดสอบแต่ละกรณีแล้วส่งคำขออีกชุดหนึ่ง ให้ทำต่อไปจนกว่าปลายทางจะตอบกลับด้วยโทเค็น หากมีการตอบกลับด้วยโทเค็นแสดงว่าเซสชั่นการทดสอบเสร็จสมบูรณ์แล้ว
ตัวอย่างการตอบกลับด้วยโทเค็น
{ "target_token": "atl", //Testing is complete "upload_bandwidth_estimate_bits_per_second": 173557406 //Suggested bps }
คุณสมบัติ | คำอธิบาย |
---|---|
| สตริงที่จะต้องระบุเมื่อมีการใช้ API วิดีโอถ่ายทอดสด เมื่อระบุโทเค็นเป้าหมายแล้ว API วิดีโอถ่ายทอดสดจะส่ง URL ของสตรีมที่มีการปรับให้เหมาะสมกับการเชื่อมต่อของคุณกลับมา |
| แบนด์วิธในการอัพโหลดโดยประมาณจากอุปกรณ์ไปยัง Facebook ซึ่งคุณสามารถใช้กำหนดอัตราบิตสูงสุดสำหรับตัวเข้ารหัสวิดีโอของคุณได้ ตัวอย่างเช่น หากค่านี้เป็น 10000000 คุณสามารถกำหนดตัวเข้ารหัสให้แสดงเอาต์พุตสตรีมวิดีโอ 8Mbps ได้ |
หมายเหตุ: แบนด์วิธอัพโหลดเป็นการประมาณค่า และอาจเปลี่ยนแปลงอย่างมากเมื่อสภาวะเครือข่ายเปลี่ยนไป ตัวอย่างเช่น หากมีการส่งสตรีมไปยังตำแหน่งที่ตั้งต่างๆ เพื่อจัดการความจุ หรือหลีกเลี่ยงจุดบกพร่องร่วมกันระหว่างสตรีมอินพุต แบนด์วิธอัพโหลดอาจมีการเปลี่ยนแปลง
สร้างการแพร่ภาพวิดีโอถ่ายทอดสดตามปกติ จากนั้นสืบค้น ID วิดีโอถ่ายทอดสด และระบุโทเค็นเป้าหมายของคุณ:
GET /{broadcast-id}?fields=secure_stream_url&target_token={target-token}
ปลายทางจะตอบกลับด้วย URL ของสตรีมที่ปลอดภัยซึ่งมีการปรับให้เหมาะสมกับการเชื่อมต่อของคุณ
ตัวอย่างคำขอ
ในตัวอย่างนี้ target_token ที่การทดสอบความเร็วส่งกลับมาคือ atl
curl -i -X GET \ "https://graph.facebook.com/v3.3/{broadcast-id} \ ?fields=secure_stream_url&target_token=atl \ &access_token={access-token}"
ตัวอย่างการตอบกลับ
{ “secure_stream_url”: “rtmps://...”, //Optimized stream URL “id”: “{broadcast-id}” }
ทำการทดสอบความเร็วในแต่ละกรณีตามลำดับที่ได้รับ ให้เป็นไปตามลำดับ โดยไม่ทำการทดสอบหลายกรณีพร้อมกัน การทดสอบความเร็วหลายกรณีในเวลาเดียวกันจะทำให้คุณได้ผลลัพธ์ที่ไม่แม่นยำ
เมื่อมีการใช้โทเค็นเป้าหมายเพื่อรับ URL ของสตรีม ให้เริ่มเซสชั่นการทดสอบความเร็วใหม่สำหรับการแพร่ภาพวิดีโอถ่ายทอดสดแต่ละรายการ ห้ามนำผลการทดสอบเก่ามาใช้ซ้ำ เนื่องจาก URL การทดสอบ URL การตอบกลับ และโทเค็นเป้าหมายอาจมีการเปลี่ยนแปลง
เราขอแนะนำให้ทำการทดสอบความเร็วอีกครั้งเมื่อเกิดสภาวะใดๆ ต่อไปนี้:
เมื่อมีการส่งโทเค็นใหม่กลับมา ให้หยุดการใช้งาน URL ของสตรีมปัจจุบัน และเริ่มการใช้งาน URL ของสตรีมใหม่ที่ส่งกลับมาทางโทเค็นใหม่ดังกล่าว
หากสภาวะเครือข่ายไม่ดีพอทำให้เกิดการสตรีมที่ไม่เสถียร แอพของคุณควรเตือนผู้เผยแพร่วิดีโอให้ปรับปรุงการเชื่อมต่อเครือข่าย เช่น โปรดตรวจสอบให้แน่ใจว่าไม่มีแอพอื่นๆ กำลังใช้งานแบนด์วิธอยู่, โปรดเปลี่ยนการเชื่อมต่อแบบไร้สายเป็นแบบใช้สาย, โปรดเพิ่มแบนด์วิธอินเทอร์เน็ตของคุณ หรือโปรดขอผู้ให้บริการอินเทอร์เน็ตของคุณเชื่อมต่อกับ Facebook โดยตรง