Facebook memiliki server penyerapan video siaran langsung di seluruh dunia yang digunakan untuk menyiarkan video siaran langsung Anda. Gunakan tes kecepatan untuk memilih server penyerapan video terbaik untuk siaran Anda.
Melakukan tes kecepatan melibatkan pengiriman file biner ke set URL destinasi sesuai urutan penerimaannya. Setiap tes mengevaluasi konektivitas Anda ke server penyerapan video Facebook tertentu. Server menanggapi dengan detail tentang kecepatan koneksi yang diukur, waktu yang diperlukan untuk mengirim dan menerima, serta faktor penting lainnya. Menyertakan hasil ini di setiap tes berturut-turut memungkinkan Facebook memilih set URL destinasi berikutnya sampai server penyerapan terbaik ditentukan. API kemudian menanggapi dengan token target. Setelah Anda memiliki token target, sertakan setiap kali Anda membuat video siaran langsung dan API menanggapi dengan URL aliran yang dioptimalkan untuk koneksi Anda.
Anda juga dapat menggunakan Fitur Penyerapan Siaran Langsung Facebook alih-alih API Tes Kecepatan untuk menentukan server penyerapan yang optimal bagi video siaran langsung Anda.
Untuk memulai sesi tes baru, kirimkan permintaan ke:
GET /traffic_speedtest?fields=target_token,next_tests,upload_bandwidth_estimate_bits_per_second
Endpoint menanggapi dengan objek JSON berisi daftar kasus uji. Setiap kasus uji berisi URL destinasi dan jumlah bita.
Contoh Permintaan
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}"
Contoh Tanggapan
{ //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" } ] }
Untuk menguji setiap kasus, unggah file biner dari ukuran yang ditentukan byte_count ke URL destinasi yang sesuai.
POST /{destination-url}/upload-speed-test
Contoh Permintaan
Dalam contoh ini, {binary-file}
adalah file berisi 3145728 bita acak yang cocok dengan jumlah bita tanggapan.
curl --data-binary @{binary-file} https://edge-star-kut.xx.fbcdn.net/upload-speed-test-api
Contoh Tanggapan
String buram dikembalikan.
eyJzdGFydFRpbWVNUyI6IjE1NjIxMDk4NDg3ODAiLCJydHQiO... //Truncated for brevity
Buat array bernama previous_results
berisi objek JSON yang terdiri dari properti dan nilai berikut:
previous_results=[ { "test_url": "{destination-url}", "result_string": "{opaque-string}" } ]
Catatan: Perlakukan result_string
sebagai string buram. Jangan mencoba menafsirkan tanggapan dari endpoint uji. Jika encoder tidak dapat mencapai URL destinasi, hilangkan satu entri itu di daftar previous_results
.
Parameter | Deskripsi |
---|---|
| URL destinasi yang Anda uji. |
| String hasil tes dikembalikan oleh URL. |
Contoh Array dengan Tanggapan Tes Tunggal
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 } ]
Tambahkan setiap URL destinasi dan tanggapan tes ke array previous_results
.
Caveat
Setelah menguji set URL pertama, minta set lain, dan sertakan hasil sebelumnya.
GET /traffic_speedtest?fields=target_token,next_tests,upload_bandwidth_estimate_bits_per_second&previous_results={previous-results}
Ganti {previous-results}
dengan array hasil tes yang telah Anda simpan.
Contoh Permintaan
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 ]'
Endpoint mengembalikan daftar baru kasus uji atau token target. Jika dibalas dengan lebih banyak kasus, ujilah setiap kasus, lalu minta set lain. Terus lakukan ini sampai dibalas dengan token. Jika dibalas dengan token, ini menunjukkan sesi tes selesai.
Contoh Tanggapan dengan Token
{ "target_token": "atl", //Testing is complete "upload_bandwidth_estimate_bits_per_second": 173557406 //Suggested bps }
Properti | Deskripsi |
---|---|
| String untuk disertakan saat menggunakan Live Video API. Jika token target disertakan, Live Video API akan mengembalikan URL aliran yang dioptimalkan untuk koneksi Anda. |
| Estimasi bandwidth hulu dari perangkat ke Facebook. Anda dapat menggunakan ini untuk mengonfigurasi laju bita maksimum untuk encoder video Anda. Contoh: jika nilainya 10000000, Anda dapat mengonfigurasi encoder untuk menghasilkan streaming video 8 Mbps. |
Catatan: Bandwidth unggahan merupakan estimasi dan dapat berubah secara dramatis seiring dengan perubahan kondisi jaringan. Contoh: jika aliran dikirim ke lokasi yang berbeda untuk mengelola kapasitas atau untuk menghindari titik kegagalan bersama antara aliran input, bandwidth unggahan dapat berubah.
Buat siaran langsung seperti biasa, lalu buat kueri ID video siaran langsung dan sertakan token target Anda:
GET /{broadcast-id}?fields=secure_stream_url&target_token={target-token}
Endpoint menanggapi dengan URL aliran aman yang dioptimalkan untuk koneksi Anda.
Contoh Permintaan
Dalam contoh ini, target_token yang dikembalikan oleh tes kecepatan adalah atl.
curl -i -X GET \ "https://graph.facebook.com/v3.3/{broadcast-id} \ ?fields=secure_stream_url&target_token=atl \ &access_token={access-token}"
Contoh Tanggapan
{ “secure_stream_url”: “rtmps://...”, //Optimized stream URL “id”: “{broadcast-id}” }
Jalankan setiap kasus tes kecepatan sesuai urutan penerimaannya, secara berurutan, bukan secara paralel. Menjalankan beberapa kasus tes kecepatan secara bersamaan akan memberi Anda hasil yang tidak akurat.
Saat menggunakan token target untuk mendapatkan URL aliran, mulailah sesi tes kecepatan baru untuk setiap siaran langsung. Jangan gunakan kembali hasil tes lama. URL uji, tanggapan URL uji, dan token target dapat berubah.
Kami rekomendasikan untuk menjalankan ulang tes kecepatan ketika salah satu dari kondisi berikut terjadi:
Saat token target baru dikembalikan, hentikan penggunaan URL aliran saat ini, dan mulai gunakan URL aliran baru yang dikembalikan oleh token baru.
Jika kondisi jaringan terlalu buruk untuk menyediakan aliran yang andal, aplikasi Anda harus memperingatkan penerbit video bahwa mereka dapat meningkatkan konektivitas jaringan mereka. Contoh: pastikan tidak ada aplikasi lain yang menggunakan bandwidth, beralih dari koneksi nirkabel ke koneksi kabel, tingkatkan bandwidth Internet Anda, atau minta penyedia Internet Anda untuk menghubungkan langsung ke Facebook.