Facebook có các máy chủ xử lý video trực tiếp trên khắp thế giới nhằm hỗ trợ bạn phát video trực tiếp. Hãy dùng tính năng thử nghiệm tốc độ để chọn máy chủ xử lý video tốt nhất cho buổi phát trực tiếp của bạn.
Quá trình thử nghiệm tốc độ bao gồm việc gửi file nhị phân đến một nhóm URL đích theo thứ tự nhận được. Mỗi thử nghiệm sẽ đánh giá khả năng kết nối với máy chủ xử lý video cụ thể của Facebook. Máy chủ sẽ trả về thông tin chi tiết liên quan đến tốc độ kết nối đo được, thời gian cần để gửi và nhận cũng như các yếu tố quan trọng khác. Khi thêm những kết quả này vào từng thử nghiệm liên tiếp, Facebook có thể chọn nhóm URL đích tiếp theo cho đến khi xác định được máy chủ xử lý tốt nhất. Sau đó, API sẽ trả về mã đích. Sau khi bạn có mã đích, hãy thêm mã này mỗi khi bạn tạo buổi phát video trực tiếp và API sẽ trả về URL của video đang phát được tối ưu hóa cho kết nối của bạn.
Bạn cũng có thể sử dụng Công cụ xử lý Facebook Live thay cho API Thử nghiệm tốc độ để xác định máy chủ xử lý tối ưu cho buổi phát video trực tiếp của bạn.
Để bắt đầu buổi phát thử nghiệm mới, hãy gửi yêu cầu đến:
GET /traffic_speedtest?fields=target_token,next_tests,upload_bandwidth_estimate_bits_per_second
Điểm cuối sẽ trả về đối tượng JSON có chứa danh sách các trường hợp thử nghiệm. Mỗi trường hợp thử nghiệm sẽ có URL đích và số byte.
Ví dụ về yêu cầu
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}"
Ví dụ về phản hồi
{ //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" } ] }
Để thử nghiệm từng trường hợp, hãy tải file nhị phân có kích thước được chỉ định theo byte_count lên URL đích tương ứng.
POST /{destination-url}/upload-speed-test
Ví dụ về yêu cầu
Trong ví dụ này, {binary-file}
là một file chứa 3145728 byte ngẫu nhiên khớp với số byte trong phần phản hồi.
curl --data-binary @{binary-file} https://edge-star-kut.xx.fbcdn.net/upload-speed-test-api
Ví dụ về phản hồi
Một chuỗi mờ sẽ được trả về.
eyJzdGFydFRpbWVNUyI6IjE1NjIxMDk4NDg3ODAiLCJydHQiO... //Truncated for brevity
Tạo mảng có tên previous_results
chứa đối tượng JSON bao gồm các thuộc tính và giá trị sau đây:
previous_results=[ { "test_url": "{destination-url}", "result_string": "{opaque-string}" } ]
Lưu ý: Hãy xem result_string
là một chuỗi mờ. Không cố diễn giải thông tin phản hồi từ điểm cuối thử nghiệm. Nếu bộ mã hóa không thể truy cập vào URL đích, hãy loại bỏ mục duy nhất đó trong danh sách previous_results
.
Thông số | Mô tả |
---|---|
| URL đích bạn đã thử nghiệm. |
| Chuỗi kết quả thử nghiệm do URL trả về. |
Ví dụ về mảng có thông tin phản hồi thử nghiệm duy nhất
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 } ]
Thêm từng URL đích và thông tin phản hồi thử nghiệm vào mảng previous_results
.
Cảnh báo
Sau khi thử nghiệm nhóm URL đầu tiên, hãy yêu cầu một nhóm khác và thêm các kết quả trước đó.
GET /traffic_speedtest?fields=target_token,next_tests,upload_bandwidth_estimate_bits_per_second&previous_results={previous-results}
Thay thế {previous-results}
bằng mảng kết quả thử nghiệm mà bạn đã lưu trữ.
Ví dụ về yêu cầu
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 ]'
Điểm cuối sẽ trả về danh sách các trường hợp thử nghiệm mới hoặc mã đích. Nếu điểm cuối trả về nhiều trường hợp khác, hãy thử nghiệm từng trường hợp, sau đó yêu cầu một nhóm khác. Hãy tiếp tục việc này cho đến khi điểm cuối trả về mã. Nếu điểm cuối trả về mã, tức là buổi phát thử nghiệm đã hoàn tất.
Ví dụ về phản hồi có mã
{ "target_token": "atl", //Testing is complete "upload_bandwidth_estimate_bits_per_second": 173557406 //Suggested bps }
Thuộc tính | Mô tả |
---|---|
| Một chuỗi sẽ thêm khi sử dụng API Video trực tiếp. Khi một mã đích được thêm, API Video trực tiếp sẽ trả về URL của video đang phát được tối ưu hóa cho kết nối của bạn. |
| Băng thông tải từ thiết bị lên Facebook theo ước tính. Bạn có thể sử dụng thuộc tính này để đặt cấu hình tốc độ bit tối đa cho bộ mã hóa video của mình. Ví dụ: nếu giá trị này là 10.000.000, bạn có thể đặt cấu hình bộ mã hóa để phát video trực tiếp ở tốc độ 8Mb/giây. |
Lưu ý: Băng thông tải lên là số liệu ước tính và có thể thay đổi đáng kể khi điều kiện mạng thay đổi. Ví dụ: nếu video đang phát được gửi đến vị trí khác để kiểm soát công suất hoặc để tránh điểm tới hạn chung giữa các video đang phát ở đầu vào, băng thông tải lên có thể thay đổi.
Tạo buổi phát video trực tiếp như bình thường, sau đó truy vấn ID video trực tiếp và thêm mã đích của bạn:
GET /{broadcast-id}?fields=secure_stream_url&target_token={target-token}
Điểm cuối sẽ trả về URL bảo mật của video đang phát được tối ưu hóa cho kết nối của bạn.
Ví dụ về yêu cầu
Trong ví dụ này, target_token mà quá trình thử nghiệm tốc độ trả về là atl.
curl -i -X GET \ "https://graph.facebook.com/v3.3/{broadcast-id} \ ?fields=secure_stream_url&target_token=atl \ &access_token={access-token}"
Ví dụ về phản hồi
{ “secure_stream_url”: “rtmps://...”, //Optimized stream URL “id”: “{broadcast-id}” }
Tiến hành lần lượt từng trường hợp thử nghiệm tốc độ theo thứ tự nhận được chứ không phải đồng thời. Việc tiến hành đồng thời nhiều trường hợp thử nghiệm tốc độ sẽ dẫn đến kết quả không chính xác.
Khi sử dụng mã đích để lấy URL của video đang phát, hãy bắt đầu buổi phát thử nghiệm tốc độ mới cho từng buổi phát video trực tiếp. Không sử dụng lại kết quả thử nghiệm cũ. URL thử nghiệm, thông tin phản hồi URL thử nghiệm và mã đích có thể thay đổi.
Bạn nên tiến hành lại quá trình thử nghiệm tốc độ trong bất kỳ điều kiện nào sau đây:
Khi mã đích mới được trả về, hãy ngừng sử dụng URL hiện tại của video đang phát và bắt đầu dùng URL mới của video đang phát do mã mới trả về.
Nếu điều kiện mạng quá kém để phát trực tiếp một cách ổn định, ứng dụng của bạn sẽ cảnh báo cho người đăng video để họ cải thiện khả năng kết nối mạng. Ví dụ: đảm bảo không có ứng dụng nào khác đang sử dụng băng thông, chuyển từ kết nối không dây sang kết nối có dây, tăng băng thông Internet hoặc yêu cầu nhà cung cấp dịch vụ Internet kết nối trực tiếp với Facebook.