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

当前方案:



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

所需方案:



[OBS流/视频流]-> [用于插入元数据的我的自定义Node.js服务器]-> [AWS/外部流服务]->客户端

这个想法:

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

潜在的解决方案:

  • ID3标签。我阅读了有关MP3文件中的ID3标签的信息,但这似乎不是我正在寻找的内容,因为它需要一个完整的.mp3文件前期,并且不用于流(Dynamically Inject ID3 in FFMPEG Live Stream)。我想要的是将元数据动态注入(inject)到此流中。例如,在任何时候(动态选择)插入一个ID(例如,对数据库的引用)就足够了。
  • LTC/线性时间码/SMPTE 是否可以通过node.js将其嵌入视频流中?这将使我能够将时间与客户端上的ID相匹配。

  • 给定带有音频的视频流,是否可以做到这一点?如果是这样,流的格式是什么?如何注入(inject)元数据?

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

    最佳答案

    听起来像使用Liquidsoap之类的内容作为流服务器可以解决将元数据插入流中的问题。有很多用于处理元数据的选项供您探索。

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

    我在无限的mp3流上处理带内元数据时也做过类似的事情,这可能会给您一些关于从哪里开始的想法。您可以找到该here的代码

    关于javascript - 将元数据插入实时视频流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61278858/

    10-10 09:00
    查看更多