跳转到内容
搜索文档

观看直播

最后更新 查看 MarkdownAgent 设置

Live Input 开始接收广播时,如果输入的 mode 属性设为 automatic,将自动创建新视频。

要观看,Stream 提供内置 Player,或使用 HLS 和 DASH 清单的自定义播放器。

通过 Live Input ID 或 Video ID 观看

无论您使用 Stream Player 还是带清单的自定义播放器,都可以引用 Live Input ID 或特定 Video ID。主要区别在于广播结束时的行为。

在播放器应始终显示活动广播(如有)或输入空闲时显示「Stream has not started」消息的情况下,使用 Live Input ID。此选项最适合专用于创作者、频道或定期节目的页面。Live Input ID 在您创建输入时为您配置;它不会更改。

在播放器应用于显示单次广播或其录制(广播结束后)的情况下,使用 Video ID。此选项最适合专用于一次性活动、特定集/场次或日期的页面。每次广播 开始时 都会生成 新的 Video ID。

使用 DVR 模式(如下所述)时,还有额外考虑因素。

Stream 的 URL 均为模板化格式,便于生成:

Stream 内置 Player URL 格式:

https://customer-<CODE>.cloudflarestream.com/<INPUT_ID|VIDEO_ID>/iframe

完整嵌入代码可在 Dash 或通过 API 生成。

HLS Manifest URL 格式:

https://customer-<CODE>.cloudflarestream.com/<INPUT_ID|VIDEO_ID>/manifest/video.m3u8

您也可以从 Dash 或 API 检索嵌入代码或 manifest URL。

使用仪表板

要获取 Stream 内置播放器嵌入代码或自定义播放器的 HLS Manifest URL:

  1. 在 Cloudflare 仪表板中,前往 Live inputs(直播输入) 页面。

    Go to Live inputs ↗
  2. 从列表中选择一个直播输入。

  3. 在视频下方找到 Embed(嵌入)HLS Manifest URL(HLS 清单 URL)

  4. 确定要使用的选项,然后在您的选择下选择 Click to copy(点击复制)

在 Dash 中检索的嵌入代码或 manifest URL 将引用 Live Input ID。

使用 API

要通过 API 检索播放器代码或 manifest URL,获取 Live Input 的视频列表:

Requestbash
curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/live_inputs/<LIVE_INPUT_UID>/videos

一个直播输入将关联多个视频,每次广播一个。如果有活动广播,响应中的第一个视频将具有 live-inprogress 状态。响应中的其他视频代表可按需播放的录制。

响应中的每个视频(包括活动广播(如有))包含 HLS 和 DASH URL 以及 Stream 播放器链接。值得注意的属性包括:

  • preview -- 观看 Stream 播放器的链接
  • playback.hls -- HLS Manifest
  • playback.dash -- DASH Manifest

在下面的示例中,直播视频的状态为 live-inprogress,先前录制的视频状态为 ready

Responsejson
{
  "result": [
    {
      "uid": "6b9e68b07dfee8cc2d116e4c51d6a957",
      "thumbnail": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/thumbnails/thumbnail.jpg",

      "status": {
        "state": "live-inprogress",
        "errorReasonCode": "",
        "errorReasonText": ""
      },
      "meta": {
        "name": "Stream Live Test 23 Sep 21 05:44 UTC"
      },
      "created": "2021-09-23T05:44:30.453838Z",
      "modified": "2021-09-23T05:44:30.453838Z",
      "size": 0,
      "preview": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/watch",
      ...

      "playback": {
        "hls": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.m3u8",
        "dash": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.mpd"
      },
      ...
    },
    {
      "uid": "6b9e68b07dfee8cc2d116e4c51d6a957",
      "thumbnail": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/thumbnails/thumbnail.jpg",
      "thumbnailTimestampPct": 0,
      "readyToStream": true,
      "status": {
        "state": "ready",
        "pctComplete": "100.000000",
        "errorReasonCode": "",
        "errorReasonText": ""
      },
      "meta": {
        "name": "CFTV Staging 22 Sep 21 22:12 UTC"
      },
      "created": "2021-09-22T22:12:53.587306Z",
      "modified": "2021-09-23T00:14:05.591333Z",
      "size": 0,
      "preview": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/watch",
      ...
      "playback": {
        "hls": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.m3u8",
        "dash": "https://customer-f33zs165nr7gyfy4.cloudflarestream.com/6b9e68b07dfee8cc2d116e4c51d6a957/manifest/video.mpd"
      },
    }
  ],
}

这些将引用 Video ID。

直播输入状态

您可以通过向 lifecycle 端点发送请求来检查直播输入是否正在流式传输及其活动 video ID。Stream 播放器会自动执行此操作以在输入空闲时显示提示。自定义播放器可能需要额外支持。

curl -X GET \
-H "Authorization: Bearer <API_TOKEN>" \
https://customer-<CODE>.cloudflarestream.com/<INPUT_ID>/lifecycle

在下面的示例中,响应表明 ID 属于具有活动 videoUID 的输入。live 状态值表明输入正在积极流式传输。

{
	"isInput": true,
	"videoUID": "55b9b5ce48c3968c6b514c458959d6a",
	"live": true
}
{
	"isInput": true,
	"videoUID": null,
	"live": false
}

通过直播输入 ID 观看直播时,将使用直播输入录制设置中的 requireSignedURLsallowedOrigins 选项。这些设置独立于视频级别设置。

直播录制播放

直播结束后,将自动生成录制内容并在 60 秒内可用。为确保成功的视频观看和播放,请注意以下事项:

  • 如果直播在观众观看时结束,使用 Stream 播放器的观众应等待 60 秒,然后重新加载播放器以观看直播录制。
  • 直播结束后,您可以通过 API 检查录制状态。当视频状态为 ready 时,您可以使用 manifest URL 之一流式传输录制。

在直播录制生成期间,视频可能报告为 not-foundnot-started

如果您未使用 Stream 播放器播放直播录制,请参阅 录制和重播直播 了解更多关于如何重播直播录制的信息。

这篇文档对您有帮助吗?