Overview

Live video broadcasts are represented by LiveVideo objects in the Graph API. To broadcast a live video, you first use the API to create a LiveVideo object on a User, Page, Group, or Event. Upon creation, the API will return a LiveVideo object ID and an ingest streaming URL. You can then use the streaming URL to stream live video data from your encoder to the LiveVideo object and use the object to manipulate the broadcast’s visibility.

Components

Broadcasts

Live video broadcasts are represented by LiveVideo objects. By manipulating a LiveVideo object's properties, you can control the live video broadcast. For example, you can change the live video broadcast's visibility, update its description or title, add labels, define audiences, add polls, or perform many other actions.

LiveVideo objects are associated with LiveVideoInputStream objects, which represent the broadcast’s ingest streaming data. LiveVideoInputStream objects are created and managed automatically for you.

Broadcasts can be created on User, Page, Group, or Event objects using their /live_videos edge.

Stream URLs

Stream URLs are ingest URLs that you can use to stream live video data from your encoder to a LiveVideo object. When you use the API to create a LiveVideo object, the API will respond with a LiveVideo object ID and a unique stream URL. The stream URL must be used within 24 hours before expiring. Once used, a stream URL can be streamed to for up to 8 hours.

Ingest Protocols

The Live Video API supports the RTMPS protocol.

RTMPS

Data streamed to an ingest stream URL must be encrypted using the RTMPS data transfer protocol. When you create a LiveVideo object, the API will return an RTMPS secure stream URL which you can use when streaming to our servers.

Here are examples of software and hardware providers that support RTMPS:

  • BeLive.tv
  • Boinx
  • BoxCast
  • Brightcove
  • DJI
  • EasyLive
  • Elemental
  • Epiphan
  • FFmpeg
  • Grabyo
  • Haivision
  • LiveStream
  • LiveU
  • Mevo
  • NewTek
  • OBS
  • Stage TEN
  • Switchboard Live
  • Switcher Studio
  • Telescope
  • Telestream
  • Teradek
  • Wowza
  • XSplit
  • Zixi

Live video streams on Pages and Workplace can use the non-encrypted standard RTMP protocol until November 1st, 2019, after which RTMP will no longer be supported. When starting a live stream, the API response will include an RTMP stream URL which can be used for non-encrypted streaming to our servers. Note that if you are using RTMP and using a persistent stream key, you should reset your persistent key and update any devices that use them or your streams will fail.

Polls

You can use the API to create polls on live video broadcasts and get real-time responses from your viewers. Polls are represented by VideoPoll objects in the Graph API, and can be created with the POST /{live-video-id}/polls endpoint on a LiveVideo object. Upon creation, the API will return a VideoPoll object ID, which you can use to manipulate the poll and query for viewer interactions.

Tools

Live Video Composer

If you are using streaming software that does not integrate with the Live Video API, you can use our Live Video Composer tool to get stream URLs and plug them into your preferred streaming software (e.g, OBS, XSplit, etc.) manually. The Live Video Composer allows you to create broadcasts on your own User profile, or on Pages, Groups, or Events that you manage.

Live Video Composer

Live Ingests

The quality of your live video broadcast starts with a reliable connection to our servers. Poor connections can result in low quality video, playback interruptions, and failed broadcasts. The Live Ingests tool allows you to test your ingestion quality so you can diagnose connection issues, identify the best video ingestion server for your broadcast, and provide high quality broadcasts with fewer playback issues.

Live Ingests

Video Specifications

Refer to our reference for a complete list of audio and video specifications.