使用 YouTube 直播设置摄取设置 API

Setting Ingestion Settings Using the YouTube Live Streaming API

我正在 JavaScript 中使用 YouTube 直播 API 创建直播活动。当我创建 liveStream 资源时,我设置了以下设置:

"cdn":
  {
   "format":"1080p",
   "ingestionType":"rtmp"
  }

但是,每当我在我的 YouTube 帐户上查看我的活动时,摄取设置都没有选择比特率 - [3000 Kbps-6000 Kbps (1080p)]。相反,我看到以下内容:

[] 基本摄取
[X] 自定义摄取
[Select 流 v]

已选择自定义摄取设置,但未设置流。是什么阻止了 liveStream 设置其比特率(在自定义摄取下选择了 1080p)?

P.S。对于任何错误,或者如果我需要更清楚,我深表歉意。这是我在 SO 上发布的第一个问题。如果我能解决任何问题,请告诉我。

https://github.com/youtube/api-samples/blob/master/python/create_broadcast.py可以给你说清楚

无法以编程方式设置默认流之一。

因此,您创建了一个新流,设置了它的摄取属性,然后将该流绑定到您的事件中。

我解决了我的问题。这与我创建 liveBroadcastliveStream 资源无关,而是我没有正确调用 liveBroadcasts.bind()。我正在创建两个不同的对象,我将它们作为参数传递——一个包含 liveBroadcast 的 ID 和一部分,另一个包含我想绑定广播的 liveStream 的 ID。 我是这样做的:

liveBroadcasts.bind({id: broadcastId, part: 'snippet,status'}, {streamId: streamId});

这为我的请求提供了一个包含 streamId 的正文。但是,绑定方法没有请求主体。我需要将 streamId 包含在其余参数中,如下所示:

liveBroadcasts.bind({id: broadcastId, part: 'snippet,status',streamId: streamId});