Incluye y excluye públicos específicos de la visualización del vídeo en directo.
Para los vídeos en directo de una página, necesitarás lo siguiente:
CREATE_CONTENT
en la página;Para los vídeos en directo de un grupo, necesitarás lo siguiente:
Envía una solicitud POST /id
, donde id
es el identificador de LiveVideo, y define el campo targeting
y sus parámetros.
curl -i -X POST \
"https://graph.facebook.com/LIVE_VIDEO_ID
?targeting={age_min:17, geo_locations:{countries:["US","CA","MX"]}}
&access_token=ACCESS_TOKEN"
{ "targeting": { "age_max": 65, "age_min": 17, "geo_locations": { "countries": [ "US", "CA", "MX" ] } }, "id": "LIVE_VIDEO_ID" }
Para los vídeos en directo de una página, necesitarás lo siguiente:
CREATE_CONTENT
en la página;Para los vídeos en directo de un grupo, necesitarás lo siguiente:
Envía una solicitud GET /id
, donde id
es el identificador de LiveVideo, con el campo targeting
.
curl -i -X GET \
"https://graph.facebook.com/LIVE_VIDEO_ID
?fields=targeting&access_token=ACCESS_TOKEN"
{ "targeting": { "age_max": 65, "age_min": 17, "geo_locations": { "countries": [ "US" "CA", "MX" ] } }, "id": "LIVE_VIDEO_ID" }
Puede que se produzca un pequeño retraso antes de que se inicie la transmisión en directo mientras se descodifican los datos de transmisión iniciales y se procesan las solicitudes de la API asociadas. Por este motivo, es posible que para los presentadores resulte complicado saber el momento exacto en el que empieza una transmisión. Para evitar que esto ocurra, los objetos LiveVideo se pueden configurar para que acepten los datos de transmisión, pero que no transmitan nada para la audiencia hasta que se detecte en dichos datos un mensaje RTMP de transmisión en directo. De esta forma, cualquier persona que obtenga la vista previa de una transmisión podrá verla, al mismo tiempo que el codificador de la transmisión controla de forma precisa tanto el momento en el que empieza la transmisión en directo para la audiencia como el primer fotograma que se ve.
Para activar la transmisión en directo con precisión a nivel de fotograma, primero crea un objeto LiveVideo tal y como lo harías habitualmente y define su estado como VISTA PREVIA. Una vez lo hayas creado, consulta el objeto LiveVideo y solicita el campo secure_stream_url con los siguientes campos anidados:
secure_stream_url.inband_go_live(require_inband_signal)
Así, se activará la transmisión en directo con precisión a nivel de fotograma en el objeto LiveVideo, y la API responderá con una nueva URL de transmisión segura en la que podrás realizar la transmisión. Por lo tanto, podrás descartar la URL inicial de transmisión segura que habías recibido al crear el objeto LiveVideo por primera vez.
La transmisión en directo se iniciará y estará visible para la audiencia tras (1) definir el estado como EN DIRECTO (mediante una llamada a la API Graph o una publicación de usuario desde Live Producer) y (2) el envío del mensaje RTMP de transmisión en directo por parte del codificador.
Un paquete AMF0 (tipo 0x12) con los siguientes elementos:
onGoLive
timestamp
;Para obtener más información, consulta las especificaciones de RTMP y AMF0.
Ejemplo de solicitud para activar la transmisión en directo con precisión a nivel de fotograma en un objeto LiveVideo.
curl -i -X GET \ "https://graph.facebook.com/v19.0
/LIVE_VIDEO_ID?fields=secure_stream_url.inband_go_live(require_inband_signal)&access_token=12345..."
URL de transmisión segura de un objeto LiveVideo con la transmisión en directo con precisión de fotograma activada.
{ "secure_stream_url": "rtmps://rtmp-pc.facebook.com:443/rtmp/LIVE_VIDEO_ID?s_bl=1&s_gl=1&...", "id": "LIVE_VIDEO_ID" }
A partir del 25 de mayo de 2021, se retirará el cuadro de diálogo "Transmitir". Para obtener más información, consulta nuestra publicación en el blog.
Hemos creado un plugin que simplifica lo máximo posible el proceso de integración con Live API y permite la autenticación con Facebook, obtener la vista previa de la transmisión en directo y describirla mediante una ventana emergente antes de empezar. Este cuadro de diálogo está optimizado para las transmisiones que se realizan desde el lado del cliente. Las integraciones de back-end deben seguir usando la API directamente.
Para inicializar una ventana emergente con controles que determinen a dónde dirigir tu respuesta POST
, inserta el código siguiente.
<button id="liveButton">Create Live Stream To Facebook</button> <script> document.getElementById('liveButton').onclick = function() { FB.ui({ display: 'popup', method: 'live_broadcast', phase: 'create', }, function(response) { if (!response.id) { alert('dialog canceled'); return; } alert('{your-stream-url}:' + response.secure_stream_url); FB.ui({ display: 'popup', method: 'live_broadcast', phase: 'publish', broadcast_data: response, }, function(response) { alert("video status: \n" + response.status); }); }); }; </script>
Parámetros | Valor | Descripción |
---|---|---|
|
| Modo en el que se abre el cuadro de diálogo en tu página web. |
|
| El cuadro de diálogo de la fase "create" permite obtener "stream_url" para subir el vídeo. El cuadro de diálogo de la fase "publish" ofrecerá una vista previa y el botón "Transmitir". |
| Elemento | Este parámetro es |
En la ventana emergente de la fase create, elige el destino de la transmisión en directo, que puede ser cualquier página o grupo que administres. La respuesta POST
incluirá los campos stream_url
y secure_stream_url
. Cualquiera de ellos se puede dividir en una URL de servidor y una clave de transmisión.
La URL del servidor es la primera mitad de "stream_url": rtmp://rtmp-api.facebook.com:80/rtmp/
.
La clave de transmisión es la segunda mitad de "stream_url": 10153307708286557?ds=1&a=AdrRKk4mOaqPbQdxDuk
.
Campo de respuesta | Fase | Descripción |
---|---|---|
|
| Identificador del vídeo transmitido. |
|
| URL RTMP que contiene un servidor y una clave de transmisión que se utilizan para subir la transmisión en directo. |
|
| URL RTMPS (la URL de transmisión con protocolo seguro). |
|
| Valor de cadena que indica el estado de la transmisión. |
En nuestro fragmento de código, tenemos una llamada alert
con el objeto stream_url
. El cliente debería comenzar la transmisión mediante stream_url
. Poco después de que comience la transmisión, observarás que aparece la vista previa correspondiente en la ventana emergente de la fase publish. El cuadro de diálogo permite a los usuarios elegir la configuración de privacidad sin ajustar el parámetro de privacidad de la solicitud, así como establecer las etiquetas de descripción, título y tema del vídeo en directo.
Nota: Si la ventana emergente de la fase publish está sin conexión, comprueba que tu firewall no esté bloqueando el RTMP y que tienes desactivado cualquier software de bloqueo de anuncios que esté instalado en tu navegador.
Al hacer clic en Transmitir, el cuadro de diálogo se cerrará y, en cuestión de segundos, la transmisión en directo se reproducirá en la página o el grupo, según el destino elegido.
Los metadatos se insertan en el primer fotograma de un vídeo en directo con horas de inicio con precisión de fotograma. Esto permite a los codificadores implementar una cuenta atrás para indicar a los editores el momento exacto del inicio del vídeo. Asimismo, también puedes iniciar y detener el vídeo desde la interfaz de Facebook.