Ce document a été mis à jour.
La traduction en Français (France) n’est pas encore terminée.
Anglais mis à jour : 21 mai
Français (France) mis à jour : 3 déc. 2021

Support for Live Video API for Facebook

FAQ

Un logiciel de streaming, ou logiciel d’encodage RTMP, collecte votre URL de streaming et la clé RTMP et les envoie à Facebook. Nous ne fournissons aucun logiciel de streaming. Vous pouvez utiliser OBS (Open Broadcasting Software) ou Player.me, disponibles en version gratuite, pour streamer vos vidéos en direct.

Vous pouvez immédiatement commencer à utiliser l’API Live. Néanmoins, si vous cherchez à créer entièrement une diffusion de qualité avec plusieurs caméras et éléments graphiques, la mise en place peut durer 1 à 2 semaines au minimum, en fonction du contrôle app.

Il faut environ 4 à 5 secondes à partir du moment où vous lancez un direct pour que votre vidéo s’affiche sur Facebook. Vous saurez que la diffusion est en cours lorsque la vidéo apparaîtra sur votre page de test (ou votre page publique).

If you are having issues with your live streams, please refer to our guides to make sure that you are using our API correctly. We also recommend reviewing our video specifications to ensure that your settings are best suited for a quality live stream. If you believe you have run into a bug, you can send it directly to our Bug Tool and an engineer will get back to you.

Yes you can! The second stream will likely get fewer inferred notifications than the first. Please refer to our Best Practices documentation for more information on how notifications work.

Pas obligatoirement. Il existe des encodeurs et des API qui permettent de streamer sur deux pages différentes ou plus, comme Wowza et Streamshark. Même s’il est possible de streamer sur plusieurs pages avec un encodeur, nous vous recommandons plutôt de streamer sur une seule page et de partager le streaming sur d’autres pages afin que les commentaires, les réactions et le nombre de spectateurs soient regroupés.

Our default aspect ratio is 16x9, though we infer the aspect ratio from the stream. For complete specifications, see our reference.

Vous pouvez intégrer des vidéos en direct en utilisant le paramètre embeddable via l’API Live Video.

Envoyez une demande POST /{live_video_id} et définissez le paramètre embeddable sur true. Utilisez un token d’accès Page ou Utilisateur avec les mêmes autorisations que celles requises pour créer une vidéo en direct.

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();

Pour obtenir le code HTML intégré, envoyez une demande GET /{live_video_id}?fields=embed_html. Utilisez un token d’accès Page ou Utilisateur avec les mêmes autorisations que celles requises pour créer une vidéo en direct.

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();

Exemple de réponse

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

Non, c’est normal. Il n’est pour l’instant pas possible de regarder des vidéos en direct sur le web mobile avant qu’elles ne deviennent des VOD (vidéos à la demande). Toutefois, si vous souhaitez regarder une vidéo en direct qui a été intégrée à un autre site sur le web mobile, vous serez redirigé vers l’app Facebook pour la visionner.

Votre vidéo peut disparaître pour plusieurs raisons. Voici quelques-unes des causes les plus fréquentes :

  1. Si vous avez mis une musique en fond sonore, votre vidéo en direct a peut-être été supprimée pour violation des droits d’auteur. Cela peut se produire pendant la diffusion de la vidéo en direct ou après, lorsque la vidéo est rejouée.
  2. Vous, ou un autre auteur de votre page, pouvez avoir supprimé la vidéo en direct. Si quelqu’un a supprimé la vidéo en direct manuellement, il n’est pas possible de la récupérer.
  3. Votre vidéo a été automatiquement signalée pour violation de la propriété intellectuelle. Si cela se produit, Facebook vous envoie un e-mail avec un lien qui vous permet de vérifier la raison de la suppression et de soumettre à nouveau la vidéo afin qu’elle soit examinée par notre équipe chargée de la politique.

Cela se produit lorsque la diffusion ne traite pas le signal de fin de la vidéo en direct et ne s’arrête pas. Assurez-vous d’avoir envoyé une requête POST avec le paramètre end_live_video. Si ce problème se reproduit, veuillez remplir un rapport de bug dans notre outil de bugs en indiquant l’ID de la vidéo.

Le son peut être déformé lorsque Facebook reçoit un stream vidéo avec du son déformé ou après que nous avons reçu les images, mais avant que nous ne les réencodions pour la diffusion. Ce type d’erreur peut se produire si le débit vidéo utilisé est plus élevé que ce que la connexion entre votre point de terminaison de diffusion et les serveurs Facebook peut supporter. Si cela se produit ou si un paquet est perdu, une partie de la piste vidéo ou audio ne sera pas correctement reçue, entraînant ainsi une déformation du son.

Les problèmes de synchronisation du son et la vidéo peuvent se produire lorsqu’une vidéo en direct est diffusée auprès du client avec une bande passante limitée, ou que le client ne dispose pas de la bande passante nécessaire pour la visionner en direct. De plus, si le streaming reçu par le serveur Facebook n’est pas synchronisé, la vidéo en direct ne sera pas non plus synchronisée. Assurez-vous de vérifier le matériel d’enregistrement et d’encodage afin d’identifier les éventuels problèmes qui pourraient causer une désynchronisation entre le son et la vidéo.

L’API Live Video nécessite du contenu audio. Si vous essayez de streamer du contenu vidéo uniquement, le streaming prend fin.

Votre diffusion en direct peut s’interrompre en raison d’un problème d’encodage ou d’une mauvaise connectivité au réseau. Si cela se produit, vous avez 2 à 3 minutes pour reconnecter l’URL de streaming d’origine que vous avez généré pour votre publication en direct. Sinon, vous devrez générer une nouvelle clé de streaming et une nouvelle URL de streaming pour poursuivre la diffusion en direct.

Yes, you can geo-gate (restrict who can see your video depending on the viewer's location). See Audience Targeting to learn how.

Yes, videos taken down for copyright violation can be restored. You should receive a notification that gives you the option to restore the video. However, if you do not take this action when you receive the notification, the video can no longer be restored.

Il n’est malheureusement pas encore possible de booster les vidéos en direct.

Actuellement, il n’existe pas de point de terminaison permettant de créer des sous-titres. Néanmoins, vous pouvez ajouter des sous-titres une fois la diffusion de la vidéo en direct terminée, ou vous pouvez ajouter des sous-titres à votre stream vidéo en direct pendant le streaming sur nos serveurs en utilisant le format CEA-608.

Pour ajouter des sous-titres à une vidéo en direct terminée (avec le statut « VOD »), veuillez consulter notre page d’aide Comment ajouter des sous-titres à une vidéo sur ma page ?. Pour ajouter des sous-titres en utilisant le format CEA-608, veuillez consulter notre guide sur les sous-titres.

Intégrer des publicités tierces aux diffusions en direct est contraire à la politique relative aux vidéos en direct de Facebook. Vous ne devez par exemple pas intégrer de bumpers, de pre-rolls, de mid-rolls ni de post-rolls.

We encourage all live broadcasts to exclusively contain live content so as to preserve the integrity of the viewer's experience. However, there are unique cases in which cutting to a pre-recorded clip makes sense, similar to how a news show might show previously recorded content on live TV.

Yes, refer to our Crossposting guide and How do I crosspost another Page's video? Help Center topic to learn how. Comments and reactions are shown only in the original Page.

Pour apparaître sur Live Map, vous devez définir le lieu de votre vidéo en utilisant le paramètre place dans une demande POST /{live_video_id}.

Pour réinitialiser une clé de diffusion persistante, rendez-vous sur www.facebook.com/live/create, cliquez sur Créer un stream en direct, cochez la case Utiliser une clé de diffusion persistante, puis cliquez sur le bouton Réinitialiser.

Reporting Bugs

If you believe you may have found a bug in the Live API, please file a bug report in our bug tool and an engineer will take a look at it shortly. You can also search for existing bugs by API error codes, SDK methods, and more.

Report a Bug