繁体   English   中英

将元数据插入实时视频 stream

[英]Inserting meta data into a live video stream

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


当前场景:

有人正在通过 OBS 将带有音频的视频流式传输到媒体服务器,客户端通过网站连接。

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


想要的场景:

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

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


想法:

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

潜在的解决方案:

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

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

给定带有音频的传入视频 stream 是否可以这样做? 如果是这样,stream 的格式是什么,如何注入元数据?


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

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

至于客户端解码,您也许可以在服务工作者中使用 javascript 可读 stream 将服务器 output 拆分为您认为合适的元数据/视频和处理。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM