Hỗ trợ API Video trực tiếp cho Facebook

Câu hỏi thường gặp

Phần mềm phát trực tiếp hoặc phần mềm mã hóa RTMP lấy khóa và URL luồng RTMP của bạn rồi gửi thông tin này cho Facebook. Chúng tôi không cung cấp phần mềm phát trực tiếp. Nhiều video phát trực tiếp có thể sử dụng OBS (Phần mềm phát trực tiếp mở) hoặc Player.me, cả hai đều cung cấp phiên bản miễn phí.

Bạn có thể bắt đầu sử dụng Live API ngay lập tức. Tuy nhiên, nếu bạn muốn dùng nhiều camera và đồ họa để tạo luồng đầy đủ đạt chất lượng sản xuất, có thể mất tối thiểu từ 1-2 tuần, tùy vào quá trình Xét duyệt ứng dụng.

Bạn sẽ phải chờ khoảng 4-5 giây từ khi phát trực tiếp đến lúc video hiển thị trên Facebook. Bạn sẽ biết video hiển thị khi thấy video phát trên trang thử nghiệm (hoặc công khai) của mình.

Nếu bạn gặp vấn đề với buổi phát trực tiếp, hãy tham khảo hướng dẫn Khắc phục sự cố với video trực tiếp của chúng tôi. Bạn cũng nên xem hướng dẫn Thông số của chúng tôi để đảm bảo cài đặt của bạn phù hợp nhất với buổi phát trực tiếp có chất lượng. Nếu cho rằng bạn đã gặp lỗi, bạn có thể gửi ngay đến Công cụ báo cáo lỗi của chúng tôi và một kỹ sư sẽ liên hệ lại với bạn.

Có, bạn có thể! Luồng thứ hai có thể sẽ nhận được ít thông báo đến từ video phát trực tiếp đó hơn so với luồng thứ nhất. Vui lòng tham khảo tài liệu của chúng tôi để biết thêm thông tin về cách hoạt động của thông báo trực tiếp.

Không cần. Nếu muốn phát trực tiếp lên 2 (hoặc nhiều) trang khác nhau, bạn có thể dùng các bộ mã hóa và API hiện có, chẳng hạn như Wowza và Streamshark, để thực hiện việc này. Mặc dù có thể phát trực tiếp lên các trang khác nhau từ 1 bộ mã hóa, nhưng bạn nên phát trực tiếp lên một trang rồi chia sẻ với các trang khác. Như vậy, bình luận, lượt bày tỏ cảm xúc và số lượng người xem sẽ được hợp nhất.

Tỷ lệ khung hình mặc định của chúng tôi là 16 x 9. Tuy nhiên, chúng tôi lấy tỷ lệ khung hình từ luồng. Để biết thêm thông số kỹ thuật, vui lòng xem hướng dẫn về Thông số, Nội dung có thương hiệu và Bản quyền của chúng tôi.

Bạn có thể nhúng video trực tiếp bằng thông số embeddable thông qua API Video trực tiếp.

Gửi yêu cầu POST /{live_video_id} và đặt thông số embeddable thành true. Khi tạo video trực tiếp, bạn phải sử dụng mã truy cập Trang hoặc Người dùng với các quyền tương tự.

curl -i -X POST \
 "https://graph.facebook.com/{your-live-video-id}
   ?embeddable=true&access_token={your-access-token}"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/{your-live-video-id}",
  new JSONObject("{}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{your-live-video-id}"
           parameters:@{ @"embeddable": @"true",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{your-live-video-id}',
  'POST',
  {"embeddable":"true"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->post(
    '/{your-live-video-id}',
    array (
      'embeddable' => 'true'
    ),
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Để tải HTML được nhúng, hãy gửi yêu cầu GET /{live_video_id}?fields=embed_html. Khi tạo video trực tiếp, bạn phải sử dụng mã truy cập Trang hoặc Người dùng với các quyền tương tự.

curl -i -X GET \
 "https://graph.facebook.com/{your-live_video_id}
   ?fields=embed_html
   &access_token={your-access-token}"
GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/{your-live_video_id}",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("fields", "embed_html");
request.setParameters(parameters);
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/{your-live_video_id}"
           parameters:@{ @"fields": @"embed_html",}
           HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/{your-live_video_id}',
  'GET',
  {"fields":"embed_html"},
  function(response) {
      // Insert your code here
  }
);
try {
  // Returns a `FacebookFacebookResponse` object
  $response = $fb->get(
    '/{your-live_video_id}',
    '{access-token}'
  );
} catch(FacebookExceptionsFacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(FacebookExceptionsFacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();

Phản hồi mẫu

{ "embed_html": "<iframe src=\"https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fyourpage%2Fvideos%2F{your-page-id}%2F&width=0\" width=\"0\" height=\"0\" style=\"border:none;overflow:hidden\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" allowFullScreen=\"true\"></iframe>", "id": "{your-live-video-id}" } 

Không, đây là hành vi dự tính. Chúng tôi hiện không hỗ trợ xem video trực tiếp trên web di động nếu đó không phải là VOD (Video theo yêu cầu). Tuy nhiên, nếu muốn xem video trực tiếp trên web di động đã được nhúng vào một trang web khác, bạn sẽ được chuyển hướng đến ứng dụng Facebook để xem.

Điều này có thể xảy ra vì một vài lý do. Sau đây là một vài lý do thường gặp nhất:

  1. Nếu video trực tiếp của bạn có nhạc đang phát trong nền, chúng tôi có thể gỡ video đó do vi phạm bản quyền. Điều này có thể xảy ra trong hoặc sau khi phát video trực tiếp, trong khi phát lại VOD.
  2. Bạn hoặc một tác giả khác của trang có thể đã xóa video trực tiếp. Nếu video trực tiếp đã bị xóa thủ công, bạn không thể khôi phục.
  3. Video của bạn có thể đã bị gắn cờ tự động do vi phạm quyền sở hữu trí tuệ. Nếu điều này xảy ra, Facebook sẽ gửi cho bạn một email cung cấp liên kết để bạn xem lại quyết định gỡ bỏ và gửi lại video để đội ngũ Chính sách của chúng tôi xem xét.

Điều này xảy ra khi nội dung phát không bắt đầu đóng lại hoặc xử lý sau khi báo hiệu kết thúc video trực tiếp. Hãy đảm bảo bạn đã gửi yêu cầu POST kèm thông số end_live_video. Nếu điều này tái diễn, vui lòng gửi lỗi trong công cụ báo cáo lỗi của chúng tôi và nhớ bao gồm ID video của bạn.

Hãy xem danh sách mã lỗi của chúng tôi để hiểu rõ nhất vấn đề của bạn.

Tình trạng méo tiếng có thể xảy ra khi Facebook nhận được luồng video với âm thanh bị méo hoặc sau khi chúng tôi nhận được khung hình nhưng trước khi mã hóa lại cho nội dung phát. Lý do có thể gây ra loại lỗi này đó là tốc độ bit đã sử dụng lớn hơn tốc độ mà kết nối giữa điểm cuối phát trực tiếp của bạn và máy chủ Facebook có thể duy trì. Nếu điều đó xảy ra hoặc nếu bị mất gói tin, một số đoạn video hoặc âm thanh sẽ không nhận được đúng cách và điều này có thể gây ra tình trạng méo tiếng.

Vấn đề đồng bộ Âm thanh/Hình ảnh có thể xảy ra khi nội dung phát trực tiếp được cung cấp cho khách hàng bằng băng thông hạn chế, hoặc khách hàng không có băng thông để xem trực tiếp. Ngoài ra, nếu luồng mà máy chủ Facebook nhận được không đồng bộ thì video trực tiếp cũng sẽ không đồng bộ. Hãy đảm bảo kiểm tra phần cứng ghi và mã hóa cho các vị trí tiềm ẩn mà âm thanh có thể không đồng bộ với video.

API Video trực tiếp đòi hỏi có âm thanh. Nếu bạn cố gắng chỉ phát trực tiếp video, luồng sẽ kết thúc.

Bảng tin trực tiếp của bạn có thể ngừng hoạt động do lỗi bộ mã hóa hoặc kết nối mạng kém. Nếu điều này xảy ra, bạn có 2-3 phút để kết nối lại với URL luồng gốc mà mình đã tạo cho bài viết trực tiếp. Nếu không, bạn phải tạo một URL và khóa luồng mới để tiếp tục buổi phát trực tiếp của mình.

Có, bạn có thể kiểm soát truy cập theo vị trí địa lý (hạn chế những người có thể xem video của bạn tùy vào vị trí của họ). Hãy xem Hướng dẫn sử dụng nâng cao tùy chọn Nhắm mục tiêu đối tượng của chúng tôi để tìm hiểu thêm về trường targeting của video trực tiếp.

Có, video bị gỡ do vi phạm bản quyền có thể được khôi phục. Bạn sẽ nhận được thông báo cung cấp cho bạn tùy chọn khôi phục video. Tuy nhiên, nếu bạn không thực hiện hành động này khi nhận thông báo, video có thể không khôi phục được nữa.

Không, rất tiếc là hiện bạn không thể quảng cáo video trực tiếp.

Hiện không có điểm cuối nào để tạo phụ đề. Tuy nhiên, bạn có thể thêm phụ đề vào nội dung phát LiveVideo sau khi video kết thúc. Ngoài ra, bạn có thể thêm phụ đề vào luồng video trực tiếp khi luồng này truyền sang các máy chủ của chúng tôi bằng tiêu chuẩn phụ đề CEA-608.

Để thêm phụ đề vào LiveVideo đã kết thúc (tức là có trạng thái VOD), hãy tham khảo chủ đề trợ giúp của chúng tôi là "Làm cách nào để thêm phụ đề vào video trên Trang?". Để thêm phụ đề bằng tiêu chuẩn CEA-608, hãy tham khảo hướng dẫn Phụ đề của chúng tôi.

Việc thêm quảng cáo của bên thứ ba vào buổi phát trực tiếp là vi phạm chính sách của Facebook về video trực tiếp. Chẳng hạn, vui lòng không bao gồm quảng cáo đệm, quảng cáo đầu video, quảng cáo giữa video hoặc quảng cáo cuối video.

Chúng tôi khuyến khích tất cả nội dung phát trực tiếp chỉ bao gồm nội dung trực tiếp để duy trì tính toàn vẹn cho trải nghiệm của người xem. Tuy nhiên, có những trường hợp riêng trong đó nên cắt thành clip quay sẵn, tương tự như cách chương trình tin tức có thể hiển thị nội dung quay trước đó trên TV trực tiếp. Vui lòng xem hướng dẫn về Thông số, Nội dung có thương hiệu và Bản quyền của chúng tôi.

Để hiển thị trên Bản đồ trực tiếp, bạn phải đặt vị trí của video bằng cách sử dụng thông số place trong yêu cầu POST /{live_video_id}.

Để đặt lại khóa cố định, hãy truy cập vào www.facebook.com/live/create, nhấp vào Tạo video phát trực tiếp, chọn ô để đánh dấu Sử dụng khóa luồng cố định rồi nhấp vào nút Đặt lại.

Báo cáo lỗi

Nếu bạn cho rằng mình đã phát hiện thấy lỗi trong API Live, vui lòng gửi báo cáo lỗi trong công cụ báo cáo lỗi của chúng tôi và một kỹ sư sẽ nhanh chóng xem xét lỗi. Bạn cũng có thể tìm kiếm các lỗi có sẵn bằng mã lỗi API, phương thức SDK và nhiều hình thức khác.

Báo cáo lỗi