Questo documento è stato aggiornato.
La traduzione in Italiano non è ancora completa.
Aggiornamento inglese: 21 mag
Aggiornamento Italiano: 18 ott 2019

Support for Live Video API for Facebook

FAQ

Un software di streaming, o software di codifica RTMP, invia l'URL e la chiave del tuo streaming RTMP a Facebook. Noi non forniamo il software di streaming. Molte dirette streaming possono usare OSB (Open Broadcasting Software) o Player.me, entrambi mettono a disposizione versioni gratuite.

Puoi iniziare a usare l'API Live da subito. Tuttavia, se desideri realizzare uno streaming di qualità completo con diverse fotocamere e grafiche, possono essere necessarie 1-2 settimane o oltre in base all'analisi dell'app.

Si verifica un ritardo di circa 4-5 secondi da quando avvii la diretta a quando il video viene mostrato su Facebook. Saprai che la trasmissione è iniziata quando vedrai apparire il video sulla tua Pagina di test (o pubblica).

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.

Non necessariamente. Se desideri trasmettere in streaming su due (o più) pagine diverse, sono disponibili codificatori e API che ti consentono di farlo, come Wowza e Streamshark. Anche se è possibile trasmettere in streaming su diverse pagine da un unico codificatore, consigliamo di trasmettere in streaming su una pagina e condividere sulle altre pagine in modo che i commenti, le reazioni e il conteggio degli spettatori siano consolidati.

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

Puoi incorporare video in diretta usando il parametro embeddable attraverso l'API Live Video.

Invia una richiesta POST /{live_video_id} e imposta il parametro embeddable su true. Usa il token d'accesso di una Pagina o un utente con le autorizzazioni richieste in fase di creazione di un video in diretta.

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

Per ottenere l'HTML incorporato, invia una richiesta GET /{live_video_id}?fields=embed_html. Usa il token d'accesso di una Pagina o un utente con le autorizzazioni richieste in fase di creazione di un video in diretta.

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

Esempio di risposta

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

No, è normale. Al momento non supportiamo la visualizzazione di video in diretta su web mobile prima che siano convertiti in VOD (video on demand). Tuttavia, se desideri guardare su web mobile un video in diretta che è stato incorporato in un altro sito, sarai reindirizzato all'app Facebook.

Esistono diversi motivi per cui può essere scomparso. Qui riportiamo alcuni dei motivi più comuni:

  1. Se nel video in diretta era presente della musica di sottofondo, il video potrebbe essere stato rimosso per violazione del copyright. Questo può accadere durante la trasmissione in diretta o dopo, nella riproduzione VOD.
  2. Tu o un altro autore della tua Pagina potreste aver eliminato il video. Se un video in diretta viene eliminato manualmente, non può essere recuperato.
  3. Il video può essere stato automaticamente contrassegnato per violazione dell'IP. In questo caso, Facebook ti invierà un'e-mail contenente un link tramite cui potrai valutare la correttezza della rimozione del video e inviarlo al nostro team addetto alle normative per la revisione.

Questo accade quando la trasmissione in diretta non inizia il sealing o l'elaborazione dopo aver comunicato la conclusione del video in diretta. Assicurati di aver inviato una richiesta POST con il parametro end_live_video. Se si verifica ancora, segnala un bug con il nostro strumento per i bug e assicurati di includere l'ID del video.

Le distorsioni audio possono verificarsi quando Facebook riceve uno streaming video con audio alterato oppure dopo la ricezione dei frame ma prima di averli ricodificati per la trasmissione. Uno dei possibili motivi per questo tipo di errore è che il bitrate impiegato sia superiore a quanto la connessione tra l'endpoint di trasmissione e i server Facebook è in grado di sostenere. In questo caso, o se viene perso un pacchetto, una porzione del video o della traccia audio non viene ricevuta correttamente, causando una distorsione audio.

I problemi relativi alla sincronizzazione audio/video possono verificarsi quando viene avviata una trasmissione in diretta con larghezza di banda limitata al client o se questa non consente la visualizzazione in diretta. Inoltre, se lo streaming ricevuto dal server di Facebook non è sincronizzato, anche il video in diretta non sarà sincronizzato. Assicurati di verificare che lo strumento di registrazione e codifica non abbia causato in nessun punto un disallineamento tra audio e video.

L'API Live Video richiede l'audio. Se cerchi di trasmettere in streaming solo contenuto video, lo streaming si arresta.

Il feed in diretta potrebbe cadere a causa di un errore del codificatore o di una connettività di rete insufficiente. Se questo accade, hai 2-3 minuti per riconnetterti all'URL di streaming originale generato per il post in diretta. In caso contrario, dovrai generare una nuova chiave dello streaming e un nuovo URL per proseguire la diretta streaming.

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.

No. Purtroppo al momento non è possibile mettere in evidenza i video in diretta.

Al momento non è disponibile alcun endpoint per la creazione di didascalie chiuse. Tuttavia, puoi aggiungere didascalie chiuse alle trasmissioni in diretta di LiveVideo una volta terminate oppure puoi aggiungerle al tuo streaming in diretta mentre il video viene trasmesso ai nostri server usando lo standard per le didascalie chiuse CEA-608.

Per aggiungere didascalie a un LiveVideo terminato (ovvero con stato di VOD), fai riferimento al nostro argomento guida "Come faccio ad aggiungere didascalie ai video della mia Pagina?". Per aggiungere didascalie usando lo standard CEA-608, fai riferimento alla nostra guida sulle didascalie chiuse.

Includere inserzioni di terzi durante le dirette streaming è contrario alla normativa di Facebook sui video in diretta. Ad esempio, non includere annunci di apertura/chiusura, pre-roll, mid-roll o post-roll.

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.

Per apparire sulla Live Map, devi impostare la posizione del tuo video usando il parametro place in una richiesta POST /{live_video_id}.

Per reimpostare una chiave permanente, vai all'indirizzo www.facebook.com/live/create, clicca su Crea una diretta streaming, seleziona la casella Usa una chiave di streaming permanente e clicca sul pulsante Reimposta.

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