【问题标题】:Inserting meta data into a live video stream将元数据插入实时视频流
【发布时间】:2020-07-31 09:09:44
【问题描述】:

我想实现以下目标,但尚不清楚这是否可行。


目前的情况:

有人正在通过 OBS 到媒体服务器,客户端通过网站连接。

[OBS 流/视频流] -> [AWS/外部流服务] -> 客户端


想要的场景:

通过自定义媒体服务器捕获此流 并通过在某些时刻注入某些元数据来操纵它 直播期间。请注意直播的重要性。

[OBS Stream/Video Stream] -> [My Custom Node.js Server to insert metadata] -> [AWS/External Streaming Service] -> Clients


想法:

我的想法是我想将流同步到某个弹出窗口。默认协议流似乎是来自 OBS 的 RTMP,但也许可以更改。在直播期间的给定时间,网站上的 html5 视频播放器可以从直播中读取这些标签(通过一些额外的库,例如 video.js)并告诉 JS 应用程序显示一些文本。 最后,归结为将视频流同步到文本流(例如来自 websocket 连接)

可能的解决方案:

  • ID3 标签。我读到了 MP3 文件中的 ID3 标签,但这似乎不是我想要的,因为它需要一个完整的 .mp3 文件 upfront 并且不用于流 (Dynamically Inject ID3 in FFMPEG Live Stream)。我想要的是动态地将元数据注入到这个流中。例如,在任何时候(动态选择)注入一个引用数据库的 id 就足够了。

  • LTC/线性时间码/SMPTE 是否可以通过 node.js 以某种方式将其嵌入到视频流中?这将使我能够将时间与客户端上的 id 相匹配。

如果传入带有音频的视频流,这可能吗?如果是,流的格式是什么?如何注入元数据?


编辑:在浏览器中,如果没有 Flash,似乎不支持 RTMP。这是不行的,所以我需要使用另一种流格式,例如 HLS/FLV?

【问题讨论】:

  • what is the format of the stream 播放器期望的格式是什么?我假设你想读回元数据?
  • @szatmary 我想我并不在乎,HTML5 视频标签可以播放的任何体面的受支持格式。
  • MSE 不支持带内元数据格式。您将需要研究支持此类事情的玩家。我不确定 hls.js 是否支持频段 ID3,但可能。
  • MSE?此外,读取 ID3 也不是问题(如果这是解决方案)。然而,问题是将这些标签动态插入到视频直播中,因为从我收集的内容来看,这是预先完成的(而不是定时的?例如,我希望从某个点每 10 秒有 5 个 ID3 标签,似乎 ID3 标签只是一个元数据文件)。
  • @CaptainObvious 根据本站the comment dated the 15th March 2020 的说法,您想要的这个功能还没有在obs 中提供,但是正在进行中。您可以在创建剪辑时添加元数据,但目前,一旦视频播放,就无法对其进行编辑。这些功能仅适用于任何情况下的传出视频,即,您是发布者,而不是传入流

标签: javascript html node.js http-live-streaming


【解决方案1】:

听起来像使用Liquidsoap 之类的东西作为您的流媒体服务器可以将元数据插入流中。处理元数据的大量选项供您探索。

至于客户端解码,您或许可以在服务工作人员中使用 javascript 可读流将服务器输出拆分为元数据/视频并按照您认为合适的方式进行处理。

我做了类似的事情来处理无限 mp3 流上的带内元数据,这可能会给你一些关于从哪里开始的想法。你可以找到那个here的代码

【讨论】:

  • 你能提供更多细节吗?传入视频流的格式应该是什么?我可以插入什么样的元数据? ID3标签是什么形式的?您似乎为 mp3 文件提出了解决方案,但不适用于视频流?
  • Liquidsoap 可以处理多种格式。我无法为您提供特定于您的用例的示例,因为我不必实施一个示例,但该项目已被广泛记录。我的解析带元数据的服务工作者是为与 mp3 流一起使用而编写的,但它所做的只是消耗来自服务器的数据流,并根据以设置字节拼接到原始文件的元数据将其拆分为文件和元数据间隔。原始文件是 mp3 还是其他文件与它的工作方式无关。
  • 我已经用赏金奖励了你,因为这是唯一的答案。但是,我稍后会更深入地研究实现,因为我仍然不相信这是我问题的答案。
猜你喜欢
  • 2011-03-24
  • 2016-07-16
  • 1970-01-01
  • 2021-02-17
  • 2012-12-18
  • 2012-01-22
  • 2016-07-12
  • 2017-07-31
  • 1970-01-01
相关资源
最近更新 更多