Tes Kecepatan

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.

Langkah 1: Mulai Sesi Tes Baru

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

Langkah 2: Uji Setiap URL Destinasi

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.

ParameterDeskripsi

{destination-url}

URL destinasi yang Anda uji.

{opaque-string}

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

  • Jalankan setiap tes sesuai urutan penerimaannya. Menjalankan tes secara paralel dapat mengurangi keakuratan hasil.
  • Selalu gunakan jumlah bita yang ditentukan di setiap kasus uji. Beberapa kasus uji memerlukan jumlah bita yang berbeda. Contoh: kasus uji awal dapat menggunakan unggahan kecil untuk mempersempit set lokasi yang memenuhi syarat, sedangkan kasus uji selanjutnya dapat menggunakan unggahan yang lebih besar untuk membuat estimasi dengan tingkat kepercayaan yang lebih tinggi.
  • Selalu gunakan bita acak untuk memastikan permintaan tidak dapat dikompresi. Bita non-acak mungkin dapat dikompresi, dan permintaan yang dikompresi mengurangi keakuratan tes kecepatan.

Langkah 3: Minta Set URL Destinasi Lainnya

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

target_token

String untuk disertakan saat menggunakan Live Video API. Jika token target disertakan, Live Video API akan mengembalikan URL aliran yang dioptimalkan untuk koneksi Anda.

upload_bandwidth_estimate_bits_per_second

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.

Langkah 4: Dapatkan URL Aliran Optimal

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

Praktik Terbaik

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:

  • Konektivitas jaringan Anda berubah. Contoh: berpindah dari Wi-Fi ke koneksi kabel.
  • Aplikasi Anda menganggur selama beberapa waktu.
  • Aplikasi Anda mendeteksi kondisi jaringan telah berubah. Contoh: buffer pengiriman sedang penuh, atau Anda tidak dapat mengalirkan pada estimasi bandwidth.
  • Kualitas koneksi Anda berubah. Contoh: tautan antara dua ISP menjadi macet.

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.