【发布时间】: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